mirror of
https://github.com/S4mpsa/InfOS.git
synced 2025-08-03 18:06:04 -04:00
Merge pull request #5 from gordominossi/feature/multiblock-statuses
Feature/multiblock statuses
This commit is contained in:
commit
c1e47f4e61
@ -2,7 +2,7 @@
|
||||
parser = require("utils.parser")
|
||||
inherits = require("utils.inherits")
|
||||
SingleBlock = require("data.datasource.single-block")
|
||||
local mock = require("data.mock.mock-multi-block")
|
||||
local mock = require("data.mock.mock-miner")
|
||||
--
|
||||
|
||||
local Miner =
|
||||
@ -16,10 +16,10 @@ local Miner =
|
||||
|
||||
function Miner:getName()
|
||||
local sensorInformation = self:getSensorInformation()
|
||||
return parser.parseProblems(sensorInformation[1])
|
||||
return parser.parseName(sensorInformation[1])
|
||||
end
|
||||
|
||||
function Miner:getWoarkArea()
|
||||
function Miner:getWorkArea()
|
||||
local sensorInformation = self:getSensorInformation()
|
||||
return parser.parseWorkArea(sensorInformation[2])
|
||||
end
|
||||
|
@ -0,0 +1,5 @@
|
||||
local function exec(miner)
|
||||
return miner.isMachineActive() and miner.hasWork() -- TODO: differenciate cases
|
||||
end
|
||||
|
||||
return exec
|
25
Programs/monitor-system/domain/miner/list-miners-usecase.lua
Normal file
25
Programs/monitor-system/domain/miner/list-miners-usecase.lua
Normal file
@ -0,0 +1,25 @@
|
||||
-- Import section
|
||||
event = require("event")
|
||||
local minerDatasource = require("data.datasource.miner")
|
||||
--
|
||||
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
|
||||
end
|
||||
end
|
||||
|
||||
event.listen("component_added", addToMinerList)
|
||||
|
||||
local function exec()
|
||||
return minerList, newMiners
|
||||
end
|
||||
|
||||
return exec
|
12
Programs/monitor-system/domain/multiblock/get-multiblock-status-usecase.lua
Executable file
12
Programs/monitor-system/domain/multiblock/get-multiblock-status-usecase.lua
Executable file
@ -0,0 +1,12 @@
|
||||
local function exec(multiblocks)
|
||||
local statuses = {}
|
||||
for _, multiblock in ipairs(multiblocks) do
|
||||
statuses[multiblock.name] = {
|
||||
problems = multiblock:getNumberOfProblems(),
|
||||
efficiencyPercentage = multiblock:getEfficiencyPercentage()
|
||||
}
|
||||
end
|
||||
return statuses
|
||||
end
|
||||
|
||||
return exec
|
@ -15,25 +15,34 @@ local getEnergyStatus = require("domain.energy.get-energy-status-usecase")
|
||||
--
|
||||
|
||||
local cleanroom = MultiBlock:new(multiBlockAddresses.cleanroom)
|
||||
cleanroom.name = "cleanroom"
|
||||
local cleanroomMachines = {}
|
||||
for _, address in pairs(cleanroomAddresses) do
|
||||
table.insert(cleanroomMachines, SingleBlock:new(address))
|
||||
end
|
||||
|
||||
local EBF11 = MultiBlock:new(multiBlockAddresses.EBF11)
|
||||
EBF11.name = "EBF11"
|
||||
|
||||
local multiblocks = {cleanroom, EBF11}
|
||||
|
||||
local energyBuffer = EnergyProvider:new(energyBufferAddress.batteryBuffer1)
|
||||
|
||||
local energyProducers = {}
|
||||
local multiblockStatuses = {}
|
||||
|
||||
for i = 0, 100 do
|
||||
print(i)
|
||||
protectCleanroomRecipes(cleanroom, cleanroomMachines)
|
||||
-- local multiblockStatuses = getMultiblockStatuses(multiblocks)
|
||||
multiblockStatuses = getMultiblockStatuses(multiblocks)
|
||||
local energyStatus = getEnergyStatus(energyProducers, energyBuffer)
|
||||
os.sleep(0)
|
||||
i = i + 1
|
||||
end
|
||||
require('resources.sound.zelda-secret')()
|
||||
|
||||
for multiblock, status in pairs(multiblockStatuses) do
|
||||
print(multiblock .. ": \
|
||||
problems: " .. status.problems .. "\
|
||||
efficiency: " .. status.efficiencyPercentage)
|
||||
end
|
||||
require("resources.sound.zelda-secret")()
|
||||
|
Loading…
x
Reference in New Issue
Block a user