-- peripheral setup local core = peripheral.find("draconic_rf_storage") local modem = peripheral.find("modem") modem.open(1) -- variables setup local function getCoreTier(max) local tier = 0 if max < 50000000 then tier = 1 elseif max < 300000000 then tier = 2 elseif max < 2000000000 then tier = 3 elseif max < 10000000000 then tier = 4 elseif max < 50000000000 then tier = 5 elseif max < 400000000000 then tier = 6 elseif max < 3000000000000 then tier = 7 else tier = 8 end return tier end function getRequest() local event, side, channel, replyChannel, message, distance = os.pullEvent("modem_message") if message == "provideCoreData" then local now = core.getEnergyStored() local max = core.getMaxEnergyStored() local energyRate = core.getTransferPerTick() local core_data = { now = now, max = max, rate = energyRate, tier = getCoreTier(max) } modem.transmit(replyChannel, channel, core_data) end end local function waitForRequest() parallel.waitForAny(wait, getRequest) end function wait() sleep(0.5) end while true do waitForRequest() end