local hostname = "pocket_computer" .. os.getComputerID() redstone_toggle_id = 50 de_store_mon_id = 45 function dump(o) if o == nil then return "" end if type(o) == 'table' then local s = '{ ' for k,v in pairs(o) do if type(k) ~= 'number' then k = '"'..k..'"' end s = s .. '['..k..'] = ' .. dump(v) .. ',' end return s .. '} ' end return tostring(o) end function poll() while true do if redstone_toggle_id ~= nil then rednet.send(redstone_toggle_id, "get_state") end if de_store_mon_id ~= nil then rednet.send(de_store_mon_id, "get_stats") end sleep(1) end end function recv() local redstone_toggle_state = nil local updated = false while true do local id, data = rednet.receive() if id == redstone_toggle_id then if type(data) == 'table' then if data[1] == 'output_state' then redstone_toggle_state = data[2] updated = true end end elseif id == de_store_mon_id then if type(data) == 'table' then if data[1] == 'energyStored' then de_store_energy_stored = data[2] end if data[3] == 'maxEnergyStored' then de_store_max_energy_stored = data[4] end if data[5] == 'transferPerTick' then de_store_transfer_per_tick = data[6] end updated = true end end if updated == true then term.clear() term.setCursorPos(1, 1) term.setTextColor(colors.white) term.setBackgroundColor(colors.black) write('Press "T" to toggle the rainbows.\n') term.write('Rainbows state: ') if redstone_toggle_state == true then term.setBackgroundColor(colors.green) write('On\n') elseif redstone_toggle_state == false then term.setBackgroundColor(colors.red) write('Off\n') elseif redstone_toggle_state == nil then term.setBackgroundColor(colors.purple) write('Unknown\n') end term.setBackgroundColor(colors.black) print('Draconic Storage') print('Current: ' .. de_store_energy_stored) print('Max: ' .. de_store_max_energy_stored) print('Transfer per Tick: ' .. de_store_transfer_per_tick) end end end function key_watcher() while true do local event, param = os.pullEvent("key") if event == "key" then -- print("Got key: " .. param) if param == keys.backspace then break elseif param == keys.t then rednet.send(redstone_toggle_id, 'toggle') end end end end local sides = peripheral.getNames() for i = 1, #sides do if peripheral.getType(sides[i]) == "modem" then modemSide = sides[i] break end end rednet.open(modemSide) rednet.host("rmm", hostname) parallel.waitForAny(poll, recv, key_watcher) rednet.close(modemSide)