mirror of
https://github.com/S4mpsa/InfOS.git
synced 2025-08-04 02:16:05 -04:00
Adding miner statuses to init.
usecase now gets multiple miners
This commit is contained in:
parent
ee70e0b4a8
commit
d1d7a7a448
@ -1,5 +1,14 @@
|
||||
local function exec(miner)
|
||||
return miner.isMachineActive() and miner.hasWork() -- TODO: differenciate cases
|
||||
local function exec(miners)
|
||||
local statuses = {}
|
||||
if #miners > 0 then
|
||||
for address, miner in ipairs(miners) do
|
||||
statuses[address] = {
|
||||
active = miner:isMachineActive(),
|
||||
hasWork = miner:hasWork()
|
||||
}
|
||||
end
|
||||
end
|
||||
return statuses
|
||||
end
|
||||
|
||||
return exec
|
||||
|
@ -1,25 +1,29 @@
|
||||
-- Import section
|
||||
event = require("event")
|
||||
local minerDatasource = require("data.datasource.miner")
|
||||
local oneUp = require("resources.sound.mario-one-up")
|
||||
--
|
||||
local minerList = {}
|
||||
local newMiners = {}
|
||||
|
||||
local function addToMinerList(_, address, machine)
|
||||
if minerDatasource.getName(machine.getSensorInformation()) == "Multiblock Miner" then
|
||||
if minerList[address] == nil then
|
||||
newMiners[address] = machine
|
||||
else
|
||||
newMiners[address] = nil
|
||||
end
|
||||
minerList[address] = machine
|
||||
oneUp()
|
||||
end
|
||||
end
|
||||
|
||||
local function removeMinerFromList(_, address, machine)
|
||||
if minerDatasource.getName(machine.getSensorInformation()) == "Multiblock Miner" then
|
||||
minerList[address] = nil
|
||||
end
|
||||
end
|
||||
|
||||
event.listen("touch", require("resources.sound.mario-one-up"))
|
||||
event.listen("component_added", addToMinerList)
|
||||
event.listen("component_removed", removeMinerFromList)
|
||||
|
||||
local function exec()
|
||||
return minerList, newMiners
|
||||
return minerList
|
||||
end
|
||||
|
||||
return exec
|
||||
|
@ -12,6 +12,8 @@ local energyBufferAddress = require("config.addresses.energy-buffers")
|
||||
local protectCleanroomRecipes = require("domain.cleanroom.protect-recipes-usecase")
|
||||
local getMultiblockStatuses = require("domain.multiblock.get-multiblock-status-usecase")
|
||||
local getEnergyStatus = require("domain.energy.get-energy-status-usecase")
|
||||
local listMiners = require("domain.miner.list-miners-usecase")
|
||||
local getMinersStatuses = require("domain.miner.get-miner-status-usecase")
|
||||
--
|
||||
|
||||
local cleanroom = MultiBlock:new(multiBlockAddresses.cleanroom)
|
||||
@ -29,18 +31,23 @@ local multiblocks = {cleanroom, EBF11}
|
||||
local energyBuffer = EnergyProvider:new(energyBufferAddress.batteryBuffer1)
|
||||
|
||||
local energyProducers = {}
|
||||
local multiblockStatuses = {}
|
||||
local multiblocksStatuses = {}
|
||||
|
||||
for i = 0, 100 do
|
||||
for i = 1, 100 do
|
||||
print(i)
|
||||
|
||||
protectCleanroomRecipes(cleanroom, cleanroomMachines)
|
||||
multiblockStatuses = getMultiblockStatuses(multiblocks)
|
||||
multiblocksStatuses = getMultiblockStatuses(multiblocks)
|
||||
local energyStatus = getEnergyStatus(energyProducers, energyBuffer)
|
||||
|
||||
local minersList = listMiners()
|
||||
local minersStatuses = getMinersStatuses(minersList)
|
||||
|
||||
os.sleep(0)
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
for multiblock, status in pairs(multiblockStatuses) do
|
||||
for multiblock, status in pairs(multiblocksStatuses) do
|
||||
print(multiblock .. ": \
|
||||
problems: " .. status.problems .. "\
|
||||
efficiency: " .. status.efficiencyPercentage)
|
||||
|
Loading…
x
Reference in New Issue
Block a user