[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Computer Craft & Open Computers » Computer Craft » Информация об энергии в реакторе (Big Reactor)
Информация об энергии в реакторе
Aleksey2093Дата: Вторник, 24.02.2015, 00:53 | Сообщение # 1
Подполковник
Группа: Администраторы
Сообщений: 116
Репутация: 0
Статус: Offline

Наблюдение за состоянием реактора


Часть кода была взята у одного из разработчиков подобной программы по считываю энергии из батареек. Взял потому что не очень хочется писать код длинной в несколько сотен строчек (слишком мало времени).
Если честно половина кода написано для красоты вывода так, что писать или не писать такую кучу букв зависит только от того насколько вы любите, чтобы все было красиво


Прикрепления: 1621872.png(257.6 Kb)
 
Aleksey2093Дата: Воскресенье, 03.05.2015, 17:25 | Сообщение # 2
Подполковник
Группа: Администраторы
Сообщений: 116
Репутация: 0
Статус: Offline
Статистика для Big Reactor

Код
local function program()
         function lineX(y, x1, x2, w)
                 for i = x1, x2 do
                         term.setCursorPos(i,y)
                         if not w == nil then
                    write(w)
                         else
                    write('-')
                         end
                 end
         end
   
         function lineY(x, y1, y2, w)
                 for i = y1, y2 do
                         term.setCursorPos(x, i)
                         if not w == nil then
                    write(w)
                         else
                    write('|')
                         end
                 end
         end
         local rc = peripheral.wrap("back")
         iTime = 3
         reactor_max_RF = 10000000
   
         function buleanToString(arg)
                 if arg == nil then
                 print('need boolean in buleanToString')
                 error()
                 end
                 if arg == true then
                         return 'enabled'
                 else
                         return 'disabled'
                 end
         end
   
         function integerToProcent(count1, count2)
                 if count1 == nil or count2 == nil then
                         print('integerToProcent need integer')
                         error()
                 end
                 local result = (count1 * 100 ) / count2
                 return tostring(result .. '%')
         end
   
         function iPrint(text)
                 local x, y = term.getCursorPos()
                 term.setCursorPos(x+1, y)
                 print(text)
         end
         function ramp()
                 term.clear()
                 lineX(1, 2, 50)
                 lineX(19, 2, 50)
                 lineY(1, 2, 18)
                 lineY(51, 2, 18)
         end
   
         function rc_processor()
                 if rc.getEnergyStored() >= reactor_max_RF - 100000 then
                         rc.setActive(false)
                 end
                 if rc.getEnergyStored() <= 100000 then
                         rc.setActive(true)
                 end
         end
   
         function rc_monitor()
                         term.setCursorPos(1,2)
                         iPrint('Reactor status: ' .. buleanToString(rc.getActive()))
                         iPrint('Energy level: ' .. integerToProcent(rc.getEnergyStored(), reactor_max_RF))
                         iPrint('Fuel in reactor: '.. tostring(rc.getFuelAmount()) ..' mB')
                         iPrint('Waste in reactor: '.. tostring(rc.getWasteAmount()) ..' mB')
                         u1,u2 = rc.getEnergyProducedLastTick()
                         iPrint('Energy produced: ' .. tostring(u1).. ' of ' .. tostring(u2) .. ' RF/t')
                         iPrint('Waste produced: ' .. tostring(rc.getFuelConsumedLastTick()) .. ' mB/t' )
         end
   
         ramp()
         while true do
                 rc_processor()
                 sleep(1)
                 rc_monitor()
                 sleep(iTime)
         end
end
program()
Прикрепления: 6471339.png(41.3 Kb)
 
Форум » Computer Craft & Open Computers » Computer Craft » Информация об энергии в реакторе (Big Reactor)
  • Страница 1 из 1
  • 1
Поиск: