add new scripts, fix errors
This commit is contained in:
parent
15d1752602
commit
4d893a32a7
42
fabric_drawer_controller.lua
Normal file
42
fabric_drawer_controller.lua
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
if event.type == "program" then
|
||||
mem.drawerChannel = "maindrawer"
|
||||
mem.tubeChannel = "maindrawerout"
|
||||
mem.filterChannel = "drawercontroller"
|
||||
mem.count = 0
|
||||
mem.queue = {}
|
||||
mem.currentTask = nil
|
||||
mem.state = "idle"
|
||||
digiline_send("drawerindicator", "blue")
|
||||
end
|
||||
|
||||
if event.type == "digiline" and event.channel == "drawercontroller" then
|
||||
if event.msg.status then return end
|
||||
|
||||
table.insert(mem.queue, event.msg)
|
||||
interrupt(1)
|
||||
end
|
||||
|
||||
if event.type == "interrupt" then
|
||||
if #mem.queue == 0 and mem.currentTask == nill then
|
||||
mem.state = "idle"
|
||||
digiline_send("drawerindicator", "green")
|
||||
return
|
||||
end
|
||||
if mem.currentTask == nil then
|
||||
mem.currentTask = table.remove(mem.queue, 1)
|
||||
mem.count = mem.currentTask.count
|
||||
mem.state = "working on " .. mem.currentTask.name
|
||||
digiline_send("drawerindicator", "red")
|
||||
digiline_send(mem.tubeChannel, mem.currentTask.destination)
|
||||
end
|
||||
if mem.count == 0 then
|
||||
mem.state = "idle"
|
||||
digiline_send(mem.filterChannel, {name=mem.currentTask.name, status="finished"})
|
||||
digiline_send("drawerindicator", "green")
|
||||
mem.currentTask = nil
|
||||
else
|
||||
digiline_send(mem.drawerChannel, mem.currentTask.item .. " " .. tostring(mem.currentTask.stacksize))
|
||||
mem.count = mem.count - 1
|
||||
end
|
||||
interrupt(1)
|
||||
end
|
||||
196
fabric_order_controller.lua
Normal file
196
fabric_order_controller.lua
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
local function createui()
|
||||
if mem.controls then return end
|
||||
|
||||
mem.controls = {
|
||||
{
|
||||
command = "clear"
|
||||
},
|
||||
{
|
||||
command = "adddropdown",
|
||||
Y = 1.2,
|
||||
label = "Drawer Controller",
|
||||
selected_id = 1,
|
||||
W = 10,
|
||||
X = 0.4,
|
||||
H = 0.8,
|
||||
name = "ddController",
|
||||
choices = {
|
||||
"drawercontroller"
|
||||
}
|
||||
},
|
||||
{
|
||||
command = "adddropdown",
|
||||
Y = 3.2,
|
||||
label = "Item name",
|
||||
selected_id = 1,
|
||||
X = 0.4,
|
||||
W = 10,
|
||||
H = 0.8,
|
||||
name = "ddItem",
|
||||
choices = {
|
||||
"basic_materials:oil_extract",
|
||||
"default:cobble",
|
||||
"default:copper_ingot",
|
||||
"default:gold_ingot",
|
||||
"default:iron_lump",
|
||||
"default:mese_crystal",
|
||||
"default:stone",
|
||||
"flowers:tulip_black",
|
||||
"mesecons_materials:glue",
|
||||
"moreblocks:cobble_compressed",
|
||||
"moretrees:rubber_tree_trunk"
|
||||
}
|
||||
},
|
||||
{
|
||||
command = "adddropdown",
|
||||
Y = 5.2,
|
||||
label = "Destination",
|
||||
selected_id = 1,
|
||||
W = 10,
|
||||
X = 0.4,
|
||||
H = 0.8,
|
||||
name = "ddDestination",
|
||||
choices = {
|
||||
"Tacit:cobblecompress",
|
||||
"Tacit:extract",
|
||||
"Tacit:furnace",
|
||||
"Tacit:grinder",
|
||||
"Tacit:grindextract",
|
||||
"Tacit:grindfurnace",
|
||||
"Tacit:obsidian",
|
||||
"Tacit:plasticin",
|
||||
"Tacit:refab"
|
||||
}
|
||||
},
|
||||
{
|
||||
default = "99",
|
||||
label = "Stack size",
|
||||
X = 0.7,
|
||||
W = 1.2,
|
||||
command = "addfield",
|
||||
Y = 7.1,
|
||||
name = "fldStackSize",
|
||||
H = 0.8
|
||||
},
|
||||
{
|
||||
default = "1",
|
||||
label = "Stacks count",
|
||||
X = 1.9,
|
||||
W = 1.6,
|
||||
command = "addfield",
|
||||
Y = 7.1,
|
||||
name = "fldStacksCount",
|
||||
H = 0.8
|
||||
},
|
||||
{
|
||||
label = "Order",
|
||||
W = 1.6,
|
||||
X = 3.2,
|
||||
command = "addbutton",
|
||||
H = 0.8,
|
||||
name = "btnOrder",
|
||||
Y = 6.8
|
||||
},
|
||||
{
|
||||
default = "",
|
||||
label = "Enter drawer controller or select one",
|
||||
X = 0.7,
|
||||
W = 9.2,
|
||||
command = "addfield",
|
||||
Y = 0.7,
|
||||
name = "fldController",
|
||||
H = 0.8
|
||||
},
|
||||
{
|
||||
default = "",
|
||||
label = "Enter item id or select one",
|
||||
W = 9.2,
|
||||
X = 0.7,
|
||||
command = "addfield",
|
||||
Y = 2.7,
|
||||
name = "fldItem",
|
||||
H = 0.8
|
||||
},
|
||||
{
|
||||
default = "",
|
||||
label = "Enter destination name or select one",
|
||||
X = 0.7,
|
||||
W = 9.2,
|
||||
command = "addfield",
|
||||
H = 0.8,
|
||||
name = "fldDestination",
|
||||
Y = 4.7
|
||||
},
|
||||
{
|
||||
command = "addlabel",
|
||||
label = "Created with SX Digi labs Touch Designer",
|
||||
Y = 8.11,
|
||||
X = 7.18
|
||||
}
|
||||
}
|
||||
|
||||
end
|
||||
local function addvalues(control, value)
|
||||
local controls = mem.controls
|
||||
|
||||
for k,v in pairs(controls) do
|
||||
if v.name and v.name == control then
|
||||
table.insert(v.choices, value)
|
||||
table.sort(v.choices)
|
||||
end
|
||||
end
|
||||
|
||||
mem.controls = controls
|
||||
end
|
||||
|
||||
if event.type == "program" then
|
||||
mem = {}
|
||||
createui()
|
||||
digiline_send("touch", mem.controls)
|
||||
mem.orderNumber = 0
|
||||
|
||||
end
|
||||
|
||||
if event.type == "digiline" then
|
||||
if event.channel ~= "touch" then return end
|
||||
if event.msg.clicker ~= "Tacit" then return end
|
||||
if event.msg.quit then return end
|
||||
if event.msg.btnOrder ~= "Order" then return end
|
||||
|
||||
mem.event = event.msg
|
||||
|
||||
if event.channel == "touch" then
|
||||
local controller = event.msg.ddController
|
||||
local item = event.msg.ddItem
|
||||
local destination = event.msg.ddDestination
|
||||
if event.msg.fldItem ~= "" then
|
||||
item = event.msg.fldItem
|
||||
addvalues("ddItem", event.msg.fldItem)
|
||||
end
|
||||
|
||||
if event.msg.fldDestination ~= "" then
|
||||
destination = event.msg.fldDestination
|
||||
addvalues("ddDestination", event.msg.fldDestination)
|
||||
end
|
||||
|
||||
if event.msg.fldController ~= "" then
|
||||
controller = event.msg.fldController
|
||||
addvalues("ddController", event.msg.fldController)
|
||||
end
|
||||
|
||||
local order = {
|
||||
name="fc-" .. tostring(mem.orderNumber),
|
||||
destination=destination,
|
||||
item=item,
|
||||
stacksize=tonumber(event.msg.fldStackSize),
|
||||
count=tonumber(event.msg.fldStacksCount),
|
||||
}
|
||||
|
||||
mem.order = order
|
||||
|
||||
mem.orderNumber = mem.orderNumber + 1
|
||||
digiline_send("touch", mem.controls)
|
||||
digiline_send(controller, order)
|
||||
digiline_send("ordermon", order.name)
|
||||
end
|
||||
end
|
||||
|
|
@ -1,10 +1,13 @@
|
|||
if event.type == "program" then
|
||||
mem.events = {}
|
||||
mem.treecount = 0
|
||||
mem.inventory = {sapling = 0, fertiliser = 0}
|
||||
digiline_send("treedetector",{distance=0, command="get"})
|
||||
digiline_send("extender1", {a = false, b = false, c = false, d = false})
|
||||
digiline_send("extender2", {a = false, b = false, c = false, d = false})
|
||||
mem.state = "idle"
|
||||
mem.isSaplingOrdered = false
|
||||
mem.isFertiliserOrederd = false
|
||||
end
|
||||
|
||||
if event.type == "digiline" then
|
||||
|
|
@ -24,6 +27,18 @@ if event.type == "digiline" then
|
|||
mem.state = "prepare"
|
||||
interrupt(30)
|
||||
end
|
||||
|
||||
if event.channel == "drawercontroller" and event.msg.status then
|
||||
if event.msg.name == "treefarmingsapplingorder" then
|
||||
mem.isSaplingOrdered = false
|
||||
if mem.isFertiliserOrederd == false then mem.state = "prepare" interrupt(30) end
|
||||
end
|
||||
|
||||
if event.msg.name == "treefarmingfertilisedorder" then
|
||||
mem.isFertiliserOrederd = false
|
||||
if mem.isSaplingOrdered == false then mem.state = "prepare" interrupt(30) end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if event.type == "interrupt" then
|
||||
|
|
@ -54,9 +69,31 @@ if event.type == "interrupt" then
|
|||
local item = mem.currentItem
|
||||
if item ~= "air" then mem.state = "wait" interrupt(1) return end
|
||||
if mem.inventory["sapling"] == 0 or mem.inventory["fertiliser"] == 0 then
|
||||
--order from drawer default:sapling and bonemeal:fertiliser
|
||||
mem.state = "prepare"
|
||||
interrupt(20)
|
||||
--order from drawer default:sapling and pandorabox_custom:super_fertiliser
|
||||
if mem.inventory["sapling"] == 0 then
|
||||
local order = {
|
||||
name="treefarmingsapplingorder",
|
||||
destination="Tacit:treefarming",
|
||||
item="default:sapling",
|
||||
stacksize=1, count=1
|
||||
}
|
||||
digiline_send("drawercontroller", order)
|
||||
mem.isSaplingOrdered = true
|
||||
mem.state = "pause"
|
||||
digiline_send("treemon", "no sapling\nordering...")
|
||||
end
|
||||
if mem.inventory["fertiliser"] == 0 then
|
||||
local order = {
|
||||
name="treefarmingfertilisedorder",
|
||||
destination="Tacit:treefarming",
|
||||
item="pandorabox_custom:super_fertiliser",
|
||||
stacksize=99, count=1
|
||||
}
|
||||
mem.isFertiliserOrederd = true
|
||||
digiline_send("drawercontroller", order)
|
||||
digiline_send("treemon", "no\nfertiliser\nordering...")
|
||||
mem.state = "pause"
|
||||
end
|
||||
else
|
||||
mem.state = "planting"
|
||||
digiline_send("extender2", {c=false})
|
||||
|
|
@ -84,6 +121,14 @@ if event.type == "interrupt" then
|
|||
digiline_send("extender1", {c = true})
|
||||
mem.state = "wait"
|
||||
mem.currentItem = ""
|
||||
mem.treecount = mem.treecount + 1
|
||||
local str = "Trees done:\n" ..
|
||||
tostring(mem.treecount) .. "\n" ..
|
||||
"saplings:\n" ..
|
||||
tostring(mem.inventory["sapling"]) .. "\n" ..
|
||||
"fertiliser\n" ..
|
||||
tostring(mem.inventory["fertiliser"])
|
||||
digiline_send("treemon", str)
|
||||
interrupt(1)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,21 +2,14 @@ if event.type == "program" then
|
|||
mem.events = {}
|
||||
end
|
||||
|
||||
if event ~= nil then
|
||||
local e = mem.events
|
||||
table.insert(mem.events, event)
|
||||
|
||||
end
|
||||
|
||||
if event.type == "item" then
|
||||
local name = event.item.name
|
||||
mem.name = name
|
||||
if name:find("sapling", 1, true) ~= nil then
|
||||
if event.side == "white" then
|
||||
digiline_send("treesort",{name="sapling", count=-event.item.count})
|
||||
return "green"
|
||||
else
|
||||
digiline_send("treesort",{name="sapling", count=event.item.count})
|
||||
digiline_send("treesort",{name="sapling", count=event.item.count})
|
||||
return "white"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
241
scout_touchscreen.lua
Normal file
241
scout_touchscreen.lua
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
local function drawui()
|
||||
digiline_send("touch",{
|
||||
{
|
||||
command="clear",
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnxinc",
|
||||
label="x+",
|
||||
Y=0.8, X=0.8, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnxdec",
|
||||
label="x-",
|
||||
Y=0.8, X=2, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnydec",
|
||||
label="y-",
|
||||
Y=1.6, H=0.8, W=1.2, X=2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnyinc",
|
||||
label="y+",
|
||||
Y=1.6, X=0.8, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnzinc",
|
||||
label="z+",
|
||||
Y=2.4, X=0.8, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnzdec",
|
||||
label="z-",
|
||||
Y=2.4, X=2, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnstepinc",
|
||||
label="step+",
|
||||
Y=3.2, H=0.8, W=1.2, X=0.8,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnstepdec",
|
||||
label="step-",
|
||||
Y=3.2, H=0.8, W=1.2, X=2,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnsim",
|
||||
label="Simulate",
|
||||
Y=4.4, X=0.8, H=0.8, W=1.6,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnjump",
|
||||
label="Jump",
|
||||
Y=5.2, H=0.8, W=1.6, X=0.8,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnreset",
|
||||
label="Reset",
|
||||
Y=6.4, H=0.8, W=1.6, X=0.8,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnpark",
|
||||
label="Park",
|
||||
Y=6.4, H=0.8, W=1.6, X=2.4,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnfire",
|
||||
label="Fire",
|
||||
Y=5.2, X=2.4, H=0.8, W=1.6,
|
||||
},{
|
||||
command="addbutton",
|
||||
name="btnfired",
|
||||
label="FireDown",
|
||||
Y=5.2, X=5.4, H=0.8, W=1.6,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Position",
|
||||
Y=0.3, X=3.5, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Destination",
|
||||
Y=0.3, X=5.9, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Step: "..mem.step or 1,
|
||||
Y=3.3, X=3.5, H=0.8, W=1.2,
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
local function updatepositionui()
|
||||
digiline_send("touch",{
|
||||
{
|
||||
command="addlabel",
|
||||
label="X: "..mem.position.x or 0,
|
||||
Y=0.7, X=3.5, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Y: "..mem.position.y or 0,
|
||||
Y=1.5, X=3.5, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Z: "..mem.position.z or 0,
|
||||
Y=2.3, X=3.5, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="X: "..mem.target.x or 0,
|
||||
Y=0.7, X=6, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Y: "..mem.target.y or 0,
|
||||
Y=1.5, X=6, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Z: "..mem.target.z or 0,
|
||||
Y=2.3, X=6, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Power: "..mem.powerstorage or 0,
|
||||
Y=0.1, X=0.1, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Distance: "..mem.distance or 0,
|
||||
Y=2.9, X=3.5, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Power req: "..mem.power_req or 0,
|
||||
Y=2.9, X=6, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Simulate: "..tostring(mem.sim),
|
||||
Y=3.3, X=6, H=0.8, W=1.2,
|
||||
},{
|
||||
command="addlabel",
|
||||
label="Sim: "..mem.msg,
|
||||
Y=4.3, X=3.5, H=0.8, W=1.2,
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
if event.type == "program" then
|
||||
mem.position = {x = 0, y = 0, z=0}
|
||||
mem.target = {x = 0, y = 0, z=0}
|
||||
mem.step = 1
|
||||
mem.sim = false
|
||||
mem.msg = ""
|
||||
mem.powerstorage = 0
|
||||
mem.distance = 0
|
||||
mem.power_req = 0
|
||||
drawui()
|
||||
updatepositionui()
|
||||
digiline_send("jumpdrive", {
|
||||
command = "get"
|
||||
})
|
||||
--interrupt(2)
|
||||
--elseif event.type == "interrupt" then
|
||||
--- digiline_send("jumpdrive", {
|
||||
--- command = "get"
|
||||
--- })
|
||||
elseif event.type == "digiline" and event.channel == "jumpdrive" then
|
||||
if event.msg.position ~= nil then
|
||||
mem.position = event.msg.position
|
||||
end
|
||||
if event.msg.target ~= nil then
|
||||
mem.target = event.msg.target
|
||||
end
|
||||
if event.msg.powerstorage ~= nil then
|
||||
mem.powerstorage = event.msg.powerstorage
|
||||
end
|
||||
if event.msg.distance ~= nil then
|
||||
mem.distance = event.msg.distance
|
||||
end
|
||||
if event.msg.power_req ~= nil then
|
||||
mem.power_req = event.msg.power_req
|
||||
end
|
||||
if event.msg.success ~= nill then
|
||||
mem.sim = event.msg.success
|
||||
end
|
||||
if event.msg.msg ~= nill then
|
||||
mem.msg = event.msg.msg
|
||||
end
|
||||
|
||||
drawui()
|
||||
updatepositionui()
|
||||
elseif event.type == "digiline" and event.channel == "touch" then
|
||||
if event.msg.btnreset then
|
||||
digiline_send("jumpdrive", {
|
||||
command = "reset"
|
||||
})
|
||||
elseif event.msg.btnstepinc then
|
||||
mem.step = mem.step+1
|
||||
elseif event.msg.btnstepdec then
|
||||
mem.step = mem.step-1
|
||||
if mem.step < 1 then
|
||||
mem.step = 1
|
||||
end
|
||||
elseif event.msg.btnxinc then
|
||||
local x = mem.target.x + mem.step
|
||||
digiline_send("jumpdrive", { command = "set", key = "x", value = x })
|
||||
elseif event.msg.btnxdec then
|
||||
local x = mem.target.x - mem.step
|
||||
digiline_send("jumpdrive", { command = "set", key = "x", value = x })
|
||||
elseif event.msg.btnyinc then
|
||||
local y = mem.target.y + mem.step
|
||||
digiline_send("jumpdrive", { command = "set", key = "y", value = y })
|
||||
elseif event.msg.btnydec then
|
||||
local y = mem.target.y - mem.step
|
||||
digiline_send("jumpdrive", { command = "set", key = "y", value = y })
|
||||
elseif event.msg.btnzinc then
|
||||
local z = mem.target.z + mem.step
|
||||
digiline_send("jumpdrive", { command = "set", key = "z", value = z })
|
||||
elseif event.msg.btnzdec then
|
||||
local z = mem.target.z - mem.step
|
||||
digiline_send("jumpdrive", { command = "set", key = "z", value = z })
|
||||
elseif event.msg.btnsim then
|
||||
digiline_send("jumpdrive", {
|
||||
command = "simulate"
|
||||
})
|
||||
elseif event.msg.btnjump then
|
||||
digiline_send("jumpdrive", {
|
||||
command = "jump"
|
||||
})
|
||||
elseif event.msg.btnfire then
|
||||
digiline_send("cannon", { command="fire", verbose=false })
|
||||
elseif event.msg.btnfired then
|
||||
digiline_send("cannond", { command="fire", verbose=false })
|
||||
elseif event.msg.btnpark then
|
||||
local x = mem.target.x - 5
|
||||
local y = mem.target.y - 2
|
||||
local z = mem.target.z + 4
|
||||
digiline_send("jumpdrive", { command = "set", key = "x", value = x })
|
||||
digiline_send("jumpdrive", { command = "set", key = "y", value = y })
|
||||
digiline_send("jumpdrive", { command = "set", key = "z", value = z })
|
||||
end
|
||||
|
||||
digiline_send("jumpdrive", {
|
||||
command = "get"
|
||||
})
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user