Milo: remote learn + remove logger
This commit is contained in:
57
milo/plugins/remoteCraft.lua
Normal file
57
milo/plugins/remoteCraft.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
local itemDB = require('itemDB')
|
||||
local Milo = require('milo')
|
||||
|
||||
local context = Milo:getContext()
|
||||
local device = _G.device
|
||||
|
||||
local function craftHandler(user, message, socket)
|
||||
local function makeNode()
|
||||
local devName = user .. ':inventory'
|
||||
local adapter = device[devName]
|
||||
if adapter then
|
||||
return {
|
||||
adapter = adapter,
|
||||
name = devName,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
local function craft()
|
||||
local slots = {
|
||||
[1] = 1, [2] = 2, [3] = 3,
|
||||
[5] = 10, [6] = 11, [7] = 12,
|
||||
[9] = 19, [10] = 20, [11] = 21,
|
||||
}
|
||||
local node = makeNode()
|
||||
if node then
|
||||
for k, v in pairs(slots) do
|
||||
node.adapter.pushItems(context.turtleInventory.name, v + message.slot - 1, 1, k)
|
||||
end
|
||||
local recipe, msg = Milo:learnRecipe()
|
||||
if recipe then
|
||||
socket:write({
|
||||
type = 'craft',
|
||||
msg = 'Learned: ' .. itemDB:getName(recipe),
|
||||
success = true,
|
||||
})
|
||||
for k,v in pairs(context.turtleInventory.adapter.list()) do
|
||||
node.adapter.pullItems(context.turtleInventory.name, k, v.count)
|
||||
end
|
||||
else
|
||||
socket:write({
|
||||
type = 'craft',
|
||||
msg = msg,
|
||||
})
|
||||
for k, v in pairs(slots) do
|
||||
node.adapter.pullItems(context.turtleInventory.name, k, 1, v + message.slot - 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Milo:queueRequest({ }, craft)
|
||||
end
|
||||
|
||||
return {
|
||||
remoteHandler = { callback = craftHandler, messages = { craft = true } }
|
||||
}
|
||||
Reference in New Issue
Block a user