diff --git a/config/inferium-plan.lua b/config/inferium-plan.lua new file mode 100644 index 0000000..af70e0a --- /dev/null +++ b/config/inferium-plan.lua @@ -0,0 +1,14 @@ +local function mystical(essenceName) + return 'mysticalagriculture:' .. essenceName .. '_seeds' +end + +return { + mystical('coal'), + mystical('coal'), + mystical('coal'), + mystical('coal'), + mystical('experience'), + mystical('experience'), + mystical('experience'), + mystical('inferium') +} diff --git a/inferium-server.lua b/inferium-server.lua new file mode 100644 index 0000000..20e2b75 --- /dev/null +++ b/inferium-server.lua @@ -0,0 +1,44 @@ +local inferiumPlan = require('config/inferium-plan') -- temporary default plan + +local INFERIUM_QUERY_PORT = 111 +local INFERIUM_REPLY_PORT = 112 + +local modem = peripheral.find("modem") or error("No modem attached", 0) + +modem.open(INFERIUM_QUERY_PORT) + +local function getPlanForComputer(computerId) + return inferiumPlan +end + +local function messageReceived(message) + if message.type == 'getplan' then + local payload = message.payload or {} + + if payload.computerId == nil then + print('Error: no computerId found in payload') + return nil + end + + return { + type = "getplan/response", + payload = getPlanForComputer(payload.computerId) + } + end +end + +while true do + local _, _, channel, replyChannel, rawMessage, _ = os.pullEvent("modem_message") + + if channel == INFERIUM_QUERY_PORT and replyChannel == INFERIUM_REPLY_PORT then + local message = textutils.unserialize(rawMessage) + local replyMessage = messageReceived(message) + + if replyMessage then + local rawReplyMessage = textutils.serialize(replyMessage) + modem.transmit(INFERIUM_REPLY_PORT, INFERIUM_QUERY_PORT, rawReplyMessage) + else + print('warning: unknown message') + end + end +end \ No newline at end of file diff --git a/install.lua b/install.lua index cd4eae3..ea28b60 100644 --- a/install.lua +++ b/install.lua @@ -3,7 +3,8 @@ local LIST_FILES = { 'miner.lua', 'coal-crafter.lua', 'inferium-upgrader.lua', - 'inferium-harvester.lua' + 'inferium-harvester.lua', + 'inferium-server.lua' }; local LIST_LIBS_FILES = { @@ -16,7 +17,8 @@ local LIST_CONFIG_FILES = { 'startup.lua', 'upgrade.lua', 'config/mining.lua', - 'config/harvesting.lua' + 'config/harvesting.lua', + 'config/inferium-plan.lua' }