Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local confMainPort = 1000
- local confMyPort = 1001
- local confModemSide = "right"
- local confTankModemSide = "back"
- local tankData = {}
- local nameFix = {
- ["item.fuel"] = "Fuel",
- ["tile.oilStill"] = "Oil" }
- if(not os.loadAPI("hydraApi")) then
- error("Could not load hydraApi")
- end
- function getLiquidName(tableInfo)
- if(tableInfo["name"] == nil) then
- return "Empty"
- elseif(nameFix[tableInfo["name"]] ~= nil) then
- return nameFix[tableInfo["name"]]
- else
- return tostring(tableInfo["name"])
- end
- end
- local modem = hydraApi.getModem(true)
- local net = hydraApi.getModem(false)
- local tankIds = net.getNamesRemote()
- -- Remove anything that's not a tank valve
- for k,v in pairs(tankIds) do
- if(string.find(v, "tank_valve") == nil) then
- tankIds[k] = nil
- end
- end
- local tank = {}
- for k,v in pairs(tankIds) do
- tank[k] = peripheral.wrap(v)
- print("Connected to: " .. v)
- end
- while true do
- local data = ""
- local dataTable = {}
- for key, t in pairs(tank) do
- local tableInfo = t.getTanks("back")[1]
- if(tableInfo["amount"] == nil) then tableInfo["amount"] = 0 end
- tableInfo["name"] = getLiquidName(tableInfo)
- tableInfo["fraction"] = tableInfo["amount"] / tableInfo["capacity"]
- if(tankData[key] ~= nil) then
- if(tankData[key]["amount"] > tableInfo["amount"]) then
- tableInfo["dir"] = "-"
- elseif(tankData[key]["amount"] < tableInfo["amount"]) then
- tableInfo["dir"] = "+"
- else
- tableInfo["dir"] = "="
- end
- end
- print(tableInfo["name"] .. ": " .. hydraApi.formatLargeNumber(tableInfo["amount"]) .. " " .. hydraApi.formatPercent(tableInfo["fraction"]))
- dataTable[key] = tableInfo
- end
- tankData = dataTable
- modem.transmit(confMainPort, confMyPort, tankData)
- os.sleep(2)
- end
Advertisement
Add Comment
Please, Sign In to add comment