feat(inferium-gui): list available seeds and prepare initial countersMap
This commit is contained in:
parent
8687ec057b
commit
9b9b312a2e
@ -60,6 +60,20 @@ local function getCountersSelectorConfig(counterMax)
|
||||
return config
|
||||
end
|
||||
|
||||
local function fetchAvailableSeeds(serverName)
|
||||
local availableSeeds, errMessage = net.sendQuery(serverName, { type = 'list-seeds' })
|
||||
|
||||
if errMessage then
|
||||
error('fetchAvailableSeeds error: ' .. errMessage, 0)
|
||||
end
|
||||
|
||||
if not availableSeeds then
|
||||
error('no available seeds', 0)
|
||||
end
|
||||
|
||||
return availableSeeds
|
||||
end
|
||||
|
||||
local function fetchAllHarvesters(serverName)
|
||||
local harvesters, listErrMessage = net.sendQuery(serverName, { type = 'list-harvesters' })
|
||||
|
||||
@ -116,6 +130,31 @@ local function getCountersMapFromIndexed(countersMapIndexed)
|
||||
return countersMap
|
||||
end
|
||||
|
||||
local function mergeCountersMap(countersMapLeft, countersMapRight)
|
||||
local indexed = {}
|
||||
|
||||
for _, counterPayload in pairs(countersMapLeft) do
|
||||
indexed[counterPayload.name] = counterPayload.count
|
||||
end
|
||||
|
||||
for _, counterPayload in pairs(countersMapRight) do
|
||||
indexed[counterPayload.name] = counterPayload.count
|
||||
end
|
||||
|
||||
return getCountersMapFromIndexed(indexed)
|
||||
end
|
||||
|
||||
local function getInitialCountersMap(availableSeeds)
|
||||
local result = {}
|
||||
for k, seedName in pairs(availableSeeds) do
|
||||
result[k] = {
|
||||
name = parseSeedName(seedName),
|
||||
count = 0
|
||||
}
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
local function createCountersMap(harvesters)
|
||||
local countersMapIndexed = {}
|
||||
|
||||
@ -201,12 +240,17 @@ end
|
||||
|
||||
local function main(serverName)
|
||||
net.openRednet() -- TODO: handle closeRednet properly
|
||||
|
||||
print('> fetching available seeds from ' .. serverName)
|
||||
local availableSeeds = fetchAvailableSeeds(serverName)
|
||||
print('> ' .. utils.sizeof(availableSeeds) .. ' available seeds fetched')
|
||||
|
||||
print('> fetching all configs from ' .. serverName)
|
||||
local harvesters = fetchAllHarvesters(serverName)
|
||||
print('> ' .. utils.sizeof(harvesters) .. ' harvesters fetched')
|
||||
|
||||
local maxCounter = getMaxCounter(harvesters)
|
||||
local countersMap = createCountersMap(harvesters)
|
||||
local countersMap = mergeCountersMap(getInitialCountersMap(availableSeeds), createCountersMap(harvesters))
|
||||
local countersMapResult = CountersSelector(countersMap, getCountersSelectorConfig(maxCounter))
|
||||
|
||||
if not countersMapResult then
|
||||
|
||||
Loading…
Reference in New Issue
Block a user