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)
|
local function exec(miners)
|
||||||
return miner.isMachineActive() and miner.hasWork() -- TODO: differenciate cases
|
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
|
end
|
||||||
|
|
||||||
return exec
|
return exec
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
-- Import section
|
-- Import section
|
||||||
event = require("event")
|
event = require("event")
|
||||||
local minerDatasource = require("data.datasource.miner")
|
local minerDatasource = require("data.datasource.miner")
|
||||||
|
local oneUp = require("resources.sound.mario-one-up")
|
||||||
--
|
--
|
||||||
local minerList = {}
|
local minerList = {}
|
||||||
local newMiners = {}
|
|
||||||
|
|
||||||
local function addToMinerList(_, address, machine)
|
local function addToMinerList(_, address, machine)
|
||||||
if minerDatasource.getName(machine.getSensorInformation()) == "Multiblock Miner" then
|
if minerDatasource.getName(machine.getSensorInformation()) == "Multiblock Miner" then
|
||||||
if minerList[address] == nil then
|
|
||||||
newMiners[address] = machine
|
|
||||||
else
|
|
||||||
newMiners[address] = nil
|
|
||||||
end
|
|
||||||
minerList[address] = machine
|
minerList[address] = machine
|
||||||
|
oneUp()
|
||||||
end
|
end
|
||||||
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_added", addToMinerList)
|
||||||
|
event.listen("component_removed", removeMinerFromList)
|
||||||
|
|
||||||
local function exec()
|
local function exec()
|
||||||
return minerList, newMiners
|
return minerList
|
||||||
end
|
end
|
||||||
|
|
||||||
return exec
|
return exec
|
||||||
|
@ -12,6 +12,8 @@ local energyBufferAddress = require("config.addresses.energy-buffers")
|
|||||||
local protectCleanroomRecipes = require("domain.cleanroom.protect-recipes-usecase")
|
local protectCleanroomRecipes = require("domain.cleanroom.protect-recipes-usecase")
|
||||||
local getMultiblockStatuses = require("domain.multiblock.get-multiblock-status-usecase")
|
local getMultiblockStatuses = require("domain.multiblock.get-multiblock-status-usecase")
|
||||||
local getEnergyStatus = require("domain.energy.get-energy-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)
|
local cleanroom = MultiBlock:new(multiBlockAddresses.cleanroom)
|
||||||
@ -29,18 +31,23 @@ local multiblocks = {cleanroom, EBF11}
|
|||||||
local energyBuffer = EnergyProvider:new(energyBufferAddress.batteryBuffer1)
|
local energyBuffer = EnergyProvider:new(energyBufferAddress.batteryBuffer1)
|
||||||
|
|
||||||
local energyProducers = {}
|
local energyProducers = {}
|
||||||
local multiblockStatuses = {}
|
local multiblocksStatuses = {}
|
||||||
|
|
||||||
for i = 0, 100 do
|
for i = 1, 100 do
|
||||||
print(i)
|
print(i)
|
||||||
|
|
||||||
protectCleanroomRecipes(cleanroom, cleanroomMachines)
|
protectCleanroomRecipes(cleanroom, cleanroomMachines)
|
||||||
multiblockStatuses = getMultiblockStatuses(multiblocks)
|
multiblocksStatuses = getMultiblockStatuses(multiblocks)
|
||||||
local energyStatus = getEnergyStatus(energyProducers, energyBuffer)
|
local energyStatus = getEnergyStatus(energyProducers, energyBuffer)
|
||||||
|
|
||||||
|
local minersList = listMiners()
|
||||||
|
local minersStatuses = getMinersStatuses(minersList)
|
||||||
|
|
||||||
os.sleep(0)
|
os.sleep(0)
|
||||||
i = i + 1
|
i = i + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
for multiblock, status in pairs(multiblockStatuses) do
|
for multiblock, status in pairs(multiblocksStatuses) do
|
||||||
print(multiblock .. ": \
|
print(multiblock .. ": \
|
||||||
problems: " .. status.problems .. "\
|
problems: " .. status.problems .. "\
|
||||||
efficiency: " .. status.efficiencyPercentage)
|
efficiency: " .. status.efficiencyPercentage)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user