101 lines
2.8 KiB
Lua
101 lines
2.8 KiB
Lua
|
|
local builder_pos = { x=0, y=100, z=0 }
|
|
local build_pos = { x=0, y=101, z=0 }
|
|
local neighbor_pos = { x=1, y=100, z=0 }
|
|
|
|
mtt.emerge_area(builder_pos, builder_pos)
|
|
|
|
-- debugging
|
|
--[[
|
|
local old_send = digilines.receptor_send
|
|
function digilines.receptor_send(pos, rules, channel, msg)
|
|
print(dump({
|
|
method = "digilines.receptor_send",
|
|
pos = pos,
|
|
channel = channel,
|
|
msg = msg
|
|
}))
|
|
return old_send(pos, rules, channel, msg)
|
|
end
|
|
--]]
|
|
|
|
mtt.register("setup", function(callback)
|
|
-- place builder and wire
|
|
minetest.set_node(build_pos, { name="air" })
|
|
minetest.set_node(builder_pos, { name="digibuilder:digibuilder" })
|
|
minetest.set_node(neighbor_pos, { name="digilines:wire_std_11111111" })
|
|
|
|
local builder_def = minetest.registered_nodes["digibuilder:digibuilder"]
|
|
assert(builder_def)
|
|
|
|
builder_def.on_construct(builder_pos)
|
|
|
|
local meta = minetest.get_meta(builder_pos)
|
|
-- verify placement
|
|
assert(meta:get_string("channel") == "digibuilder")
|
|
-- set owner
|
|
meta:set_string("owner", "singleplayer")
|
|
|
|
callback()
|
|
end)
|
|
|
|
mtt.register("setnode-test", function(callback)
|
|
-- send command
|
|
digilines.receptor_send(neighbor_pos, digibuilder.digiline_rules, "digibuilder", {
|
|
command = "setnode",
|
|
pos = { x=0, y=1, z=0 },
|
|
name = "default:mese"
|
|
})
|
|
|
|
-- nothing was built (empty inv)
|
|
assert(minetest.get_node(build_pos).name ~= "default:mese")
|
|
|
|
-- add inventory
|
|
local meta = minetest.get_meta(builder_pos)
|
|
local inv = meta:get_inventory()
|
|
inv:set_stack("main", 1, "default:mese")
|
|
|
|
-- schedule next command a second later to not trigger the "too fast" error
|
|
minetest.after(1, function()
|
|
-- send command
|
|
digilines.receptor_send(neighbor_pos, digibuilder.digiline_rules, "digibuilder", {
|
|
command = "setnode",
|
|
pos = { x=0, y=1, z=0 },
|
|
name = "default:mese"
|
|
})
|
|
|
|
-- mese block was built
|
|
assert(minetest.get_node(build_pos).name == "default:mese")
|
|
|
|
callback()
|
|
end)
|
|
end)
|
|
|
|
mtt.register("build-invalid-param2", function(callback)
|
|
-- prepare
|
|
minetest.set_node(build_pos, { name="air" })
|
|
|
|
-- add inventory
|
|
local meta = minetest.get_meta(builder_pos)
|
|
local inv = meta:get_inventory()
|
|
inv:set_stack("main", 1, "default:cobble")
|
|
|
|
-- send invalid command
|
|
minetest.after(1, function()
|
|
digilines.receptor_send(neighbor_pos, digibuilder.digiline_rules, "digibuilder", {
|
|
command = "setnode",
|
|
pos = { x=0, y=1, z=0 },
|
|
param2 = 255,
|
|
name = "default:cobble"
|
|
})
|
|
|
|
assert(minetest.get_node(build_pos).name == "default:cobble")
|
|
|
|
callback()
|
|
end)
|
|
end)
|
|
|
|
mtt.register("place-crop", function(callback)
|
|
-- TODO
|
|
callback()
|
|
end) |