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
|
return config
|
||||||
end
|
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 function fetchAllHarvesters(serverName)
|
||||||
local harvesters, listErrMessage = net.sendQuery(serverName, { type = 'list-harvesters' })
|
local harvesters, listErrMessage = net.sendQuery(serverName, { type = 'list-harvesters' })
|
||||||
|
|
||||||
@ -116,6 +130,31 @@ local function getCountersMapFromIndexed(countersMapIndexed)
|
|||||||
return countersMap
|
return countersMap
|
||||||
end
|
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 function createCountersMap(harvesters)
|
||||||
local countersMapIndexed = {}
|
local countersMapIndexed = {}
|
||||||
|
|
||||||
@ -201,12 +240,17 @@ end
|
|||||||
|
|
||||||
local function main(serverName)
|
local function main(serverName)
|
||||||
net.openRednet() -- TODO: handle closeRednet properly
|
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)
|
print('> fetching all configs from ' .. serverName)
|
||||||
local harvesters = fetchAllHarvesters(serverName)
|
local harvesters = fetchAllHarvesters(serverName)
|
||||||
print('> ' .. utils.sizeof(harvesters) .. ' harvesters fetched')
|
print('> ' .. utils.sizeof(harvesters) .. ' harvesters fetched')
|
||||||
|
|
||||||
local maxCounter = getMaxCounter(harvesters)
|
local maxCounter = getMaxCounter(harvesters)
|
||||||
local countersMap = createCountersMap(harvesters)
|
local countersMap = mergeCountersMap(getInitialCountersMap(availableSeeds), createCountersMap(harvesters))
|
||||||
local countersMapResult = CountersSelector(countersMap, getCountersSelectorConfig(maxCounter))
|
local countersMapResult = CountersSelector(countersMap, getCountersSelectorConfig(maxCounter))
|
||||||
|
|
||||||
if not countersMapResult then
|
if not countersMapResult then
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user