Clear up globalsteps in tests

This commit is contained in:
Jude Melton-Houghton 2022-09-14 08:39:21 -04:00
parent f3f345d262
commit 92a7631d36
8 changed files with 85 additions and 120 deletions

View File

@ -23,16 +23,16 @@ describe("action queue", function()
it("executes in order", function()
world.set_node(layout[1][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal(2, #mesecon._test_effector_events)
assert.same({"on", layout[4][1]}, mesecon._test_effector_events[1])
assert.same({"on", layout[5][1]}, mesecon._test_effector_events[2])
world.set_node(layout[1][1], "mesecons:test_receptor_off")
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal(4, #mesecon._test_effector_events)
assert.same({"off", layout[4][1]}, mesecon._test_effector_events[3])
assert.same({"off", layout[5][1]}, mesecon._test_effector_events[4])
@ -43,8 +43,8 @@ describe("action queue", function()
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
world.set_node(layout[1][1], "mesecons:test_receptor_off")
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal(0, #mesecon._test_effector_events)
end)
@ -54,9 +54,9 @@ describe("action queue", function()
mineunit:execute_globalstep(0.1)
mineunit:execute_globalstep(1)
assert.equal(0, #mesecon._test_effector_events)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal(0, #mesecon._test_effector_events)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal(2, #mesecon._test_effector_events)
end)
end)

View File

@ -26,15 +26,15 @@ describe("placement/digging service", function()
-- Dig then replace a receptor and check that the connected effectors changed.
mesecon._test_dig(layout[1][1])
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_off", world.get_node(layout[2][1]).name)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal(3, #mesecon._test_effector_events)
mesecon._test_place(layout[1][1], "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_conductor_on", world.get_node(layout[2][1]).name)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute activate/change action
assert.equal(6, #mesecon._test_effector_events)
end)
@ -42,22 +42,22 @@ describe("placement/digging service", function()
-- Dig then replace a powered conductor and check that the connected effectors changed.
mesecon._test_dig(layout[2][1])
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal(2, #mesecon._test_effector_events)
mesecon._test_place(layout[2][1], "mesecons:test_conductor_off")
assert.equal("mesecons:test_conductor_on", world.get_node(layout[2][1]).name)
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal(4, #mesecon._test_effector_events)
end)
it("updates effectors on placement", function()
local pos = {x = 0, y = 0, z = 1}
mesecon._test_place(pos, "mesecons:test_effector")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal(tonumber("10100000", 2), world.get_node(pos).param2)
end)
@ -81,7 +81,7 @@ describe("placement/digging service", function()
it("triggers autoconnect hooks", function()
mesecon._test_dig(layout[2][1])
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute delayed hook
assert.equal(1, #mesecon._test_autoconnects)
mesecon._test_place(layout[2][1], layout[2][2])
@ -138,7 +138,7 @@ describe("overheating service", function()
else
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
end
mineunit:execute_globalstep(0)
mineunit:execute_globalstep(0) -- Execute receptor_on/receptor_off/activate/deactivate/change actions
until minetest.get_node(layout[2][1]).name ~= "mesecons:test_effector"
assert.same({"overheat", layout[2][1]}, mesecon._test_effector_events[#mesecon._test_effector_events])
assert.equal(0, mesecon.get_heat(layout[2][1]))
@ -173,19 +173,19 @@ describe("screwdriver service", function()
it("updates conductors", function()
-- Rotate a conductor and see that the circuit state changes.
rotate(1)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
assert.equal("mesecons:test_conductor_on", world.get_node(layout[5][1]).name)
rotate(2)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
assert.equal("mesecons:test_conductor_off", world.get_node(layout[5][1]).name)
rotate(3)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
assert.equal("mesecons:test_conductor_on", world.get_node(layout[5][1]).name)
rotate(0)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
assert.equal("mesecons:test_conductor_off", world.get_node(layout[5][1]).name)
end)

View File

@ -24,8 +24,8 @@ describe("state", function()
it("turns on", function()
world.set_node(layout[1][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
assert.equal(tonumber("10000001", 2), world.get_node(layout[4][1]).param2)
assert.equal(tonumber("10000010", 2), world.get_node(layout[5][1]).param2)
@ -33,8 +33,8 @@ describe("state", function()
world.set_node(layout[2][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[2][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
assert.equal(tonumber("10000001", 2), world.get_node(layout[4][1]).param2)
assert.equal(tonumber("10000010", 2), world.get_node(layout[5][1]).param2)
@ -46,12 +46,12 @@ describe("state", function()
world.set_node(layout[2][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
mesecon.receptor_on(layout[2][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on actions
world.set_node(layout[1][1], "mesecons:test_receptor_off")
mesecon.receptor_off(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off and activate/change actions
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal("mesecons:test_conductor_on", world.get_node(layout[3][1]).name)
assert.equal(tonumber("10000001", 2), world.get_node(layout[4][1]).param2)
assert.equal(tonumber("00000000", 2), world.get_node(layout[5][1]).param2)
@ -59,8 +59,8 @@ describe("state", function()
world.set_node(layout[2][1], "mesecons:test_receptor_off")
mesecon.receptor_off(layout[2][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal("mesecons:test_conductor_off", world.get_node(layout[3][1]).name)
assert.equal(tonumber("00000000", 2), world.get_node(layout[4][1]).param2)
assert.equal(tonumber("00000000", 2), world.get_node(layout[5][1]).param2)
@ -91,7 +91,7 @@ describe("rotation", function()
it("works", function()
world.set_node(layout[1][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_conductor_rot_on", world.get_node(layout[2][1]).name)
assert.equal("mesecons:test_conductor_rot_on", world.get_node(layout[3][1]).name)
assert.equal("mesecons:test_conductor_rot_on", world.get_node(layout[4][1]).name)
@ -119,17 +119,17 @@ describe("multiconductor", function()
it("separates its subparts", function()
world.set_node(layout[1][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_multiconductor_001", world.get_node(layout[4][1]).name)
world.set_node(layout[2][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[2][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_multiconductor_011", world.get_node(layout[4][1]).name)
world.set_node(layout[3][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[3][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_multiconductor_on", world.get_node(layout[4][1]).name)
end)
@ -141,7 +141,7 @@ describe("multiconductor", function()
world.set_node(layout[1][1], "mesecons:test_receptor_on")
mesecon.receptor_on(layout[1][1], mesecon.rules.alldirs)
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_multiconductor_101", world.get_node(layout[4][1]).name)
end)
end)

View File

@ -26,14 +26,14 @@ describe("FPGA rotation", function()
minetest.registered_nodes[node.name].on_rotate(pos, node, nil, screwdriver.ROTATE_FACE)
mesecon._test_place(pos_b, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
mesecon._test_dig(pos_b)
mesecon._test_place(pos_c, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
end)
@ -44,21 +44,19 @@ describe("FPGA rotation", function()
minetest.registered_nodes[node.name].on_rotate(pos, node, nil, screwdriver.ROTATE_AXIS)
mesecon._test_place(pos_d, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
mesecon._test_dig(pos_d)
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
end)
it("updates ports", function()
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
mineunit:execute_globalstep()
mineunit:execute_globalstep()
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
local node = world.get_node(pos)
@ -83,52 +81,27 @@ pending("FPGA programmer", function()
it("transfers instructions", function()
mesecon._test_program_fpga(pos2, {{"NOT", "A", "B"}})
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(pos2))
mineunit:execute_globalstep()
mineunit:execute_globalstep()
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
end)
it("does not copy from new FPGAs", function()
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(pos2))
mineunit:execute_globalstep()
mineunit:execute_globalstep()
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
end)
it("does not copy from cleared FPGAs", function()
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mesecon._test_program_fpga(pos2, {{"=", "A", "B"}})
mesecon._test_program_fpga(pos2, {})
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(pos2))
mineunit:execute_globalstep()
mineunit:execute_globalstep()
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
end)
it("does not copy from non-FPGA nodes", function()
mesecon._test_program_fpga(pos, {{"NOT", "A", "B"}})
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mesecon._test_paste_fpga_program(pos, mesecon._test_copy_fpga_program(vector.add(pos2, 1)))
mineunit:execute_globalstep()
mineunit:execute_globalstep()
assert.equal("mesecons_fpga:fpga0010", world.get_node(pos).name)
end)
end)

View File

@ -37,8 +37,8 @@ describe("FPGA logic", function()
if inputs.b then mesecon._test_place(pos_b, "mesecons:test_receptor_on") end
if inputs.c then mesecon._test_place(pos_c, "mesecons:test_receptor_on") end
if inputs.d then mesecon._test_place(pos_d, "mesecons:test_receptor_on") end
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on actions
mineunit:execute_globalstep() -- Execute activate/change actions
local expected_name = "mesecons_fpga:fpga"
.. (outputs.d and 1 or 0) .. (outputs.c and 1 or 0)
@ -170,8 +170,8 @@ describe("FPGA logic", function()
mesecon._test_place(pos_b, "mesecons:test_effector")
mesecon._test_place(pos_c, "mesecons:test_effector")
mesecon._test_place(pos_d, "mesecons:test_effector")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on actions
mineunit:execute_globalstep() -- Execute activate/change actions
-- Makes an object from the last three effector events in the list for use with assert.same.
-- This is necessary to ignore the ordering of events.
@ -185,18 +185,18 @@ describe("FPGA logic", function()
end
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
mineunit:execute_globalstep() -- Transmit the input to the FPGA
mineunit:execute_globalstep() -- Run the FPGA
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off events
mineunit:execute_globalstep() -- Execute activate/deactivate/change events
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
assert.equal("mesecons_fpga:fpga0110", world.get_node(pos).name)
assert.same(event_tester({{"on", pos_b}, {"on", pos_c}, {"off", pos_d}}), event_tester(mesecon._test_effector_events))
mesecon._test_dig(pos_a)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
mineunit:execute_globalstep() -- Execute deactivate/change actions
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
assert.same(event_tester({{"off", pos_b}, {"off", pos_c}, {"on", pos_d}}), event_tester(mesecon._test_effector_events))
end)
@ -213,23 +213,23 @@ describe("FPGA logic", function()
})
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on actions
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons_fpga:fpga0100", world.get_node(pos).name)
mesecon._test_dig(pos_a)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off actions
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal("mesecons_fpga:fpga0100", world.get_node(pos).name)
mesecon._test_place(pos_b, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on actions
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
mesecon._test_dig(pos_b)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off actions
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal("mesecons_fpga:fpga1000", world.get_node(pos).name)
end)
end)

View File

@ -11,7 +11,7 @@ describe("LuaController lightweight interrupt", function()
before_each(function()
mesecon._test_place(pos, "mesecons_luacontroller:luacontroller0000")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
end)
after_each(function()

View File

@ -10,7 +10,7 @@ describe("LuaController", function()
before_each(function()
mesecon._test_place(pos, "mesecons_luacontroller:luacontroller0000")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
end)
after_each(function()
@ -25,19 +25,18 @@ describe("LuaController", function()
it("I/O", function()
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
mesecon._test_program_luac(pos, [[
port.a = not pin.a
port.b = not pin.b
port.c = not pin.c
port.d = not pin.d
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller1110", world.get_node(pos).name)
mesecon._test_dig(pos_a)
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
mineunit:execute_globalstep() -- Execute deactivate/change actions
assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name)
end)
@ -53,11 +52,10 @@ describe("LuaController", function()
end
end
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
mesecon._test_place(pos_a, "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mineunit:execute_globalstep() -- Execute activate/change actions
assert.equal("mesecons_luacontroller:luacontroller1000", world.get_node(pos).name)
end)
@ -128,13 +126,11 @@ describe("LuaController", function()
(" "):rep(64000)
port.a = true
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name)
mesecon._test_program_luac(pos, [[
(" "):rep(64001)
port.b = true
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
end)
@ -142,13 +138,11 @@ describe("LuaController", function()
mesecon._test_program_luac(pos, [[
port.a = (" a"):find("a", nil, true) == 2
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name)
mesecon._test_program_luac(pos, [[
(" a"):find("a", nil)
port.b = true
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
end)
@ -157,10 +151,10 @@ describe("LuaController", function()
interrupt(0)
interrupt(0)
]])
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute 2 interrupts
mineunit:execute_globalstep() -- Execute 4 interrupts
mineunit:execute_globalstep() -- Execute 8 interrupts
mineunit:execute_globalstep() -- Execute 16 interrupts
assert.equal("mesecons_luacontroller:luacontroller_burnt", world.get_node(pos).name)
end)
@ -169,7 +163,6 @@ describe("LuaController", function()
port.a = true
mem.x = (" "):rep(50000) .. (" "):rep(50000)
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller_burnt", world.get_node(pos).name)
end)
@ -178,7 +171,6 @@ describe("LuaController", function()
port.a = true
for i = 1, 1000000 do end
]])
mineunit:execute_globalstep()
assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name)
end)
end)

View File

@ -138,7 +138,7 @@ describe("node movement", function()
world.set_node(pos, "mesecons:test_conductor_off")
mesecon.mvps_push(pos, dir, 1, "")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute delayed autoconnect hook
assert.equal(2, #mesecon._test_autoconnects)
end)
@ -153,10 +153,10 @@ describe("node movement", function()
mesecon._test_place(pos3, "mesecons:test_conductor_off")
mesecon._test_place(pos4, "mesecons:test_conductor_off")
mesecon._test_place(vector.add(pos4, dir), "mesecons:test_conductor_off")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mesecon.mvps_push(pos1, dir, 1, "")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on/receptor_off actions
assert.equal("mesecons:test_conductor_off", world.get_node(pos2).name)
assert.equal("mesecons:test_conductor_on", world.get_node(pos3).name)
assert.equal("mesecons:test_conductor_on", world.get_node(pos4).name)
@ -170,15 +170,15 @@ describe("node movement", function()
mesecon._test_place(pos1, "mesecons:test_conductor_off")
mesecon._test_place(pos2, "mesecons:test_receptor_on")
mesecon._test_place(pos3, "mesecons:test_conductor_off")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mesecon.mvps_push(pos1, dir, 1, "")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_off action
assert.equal("mesecons:test_conductor_off", world.get_node(vector.add(pos1, dir)).name)
assert.equal("mesecons:test_conductor_off", world.get_node(pos3).name)
mesecon.mvps_pull_all(vector.add(pos1, dir), vector.multiply(dir, -1), 1, "")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
assert.equal("mesecons:test_conductor_on", world.get_node(pos1).name)
assert.equal("mesecons:test_conductor_on", world.get_node(pos3).name)
end)
@ -189,14 +189,14 @@ describe("node movement", function()
mesecon._test_place(pos, "mesecons:test_effector")
mesecon._test_place(vector.offset(pos, 0, 1, 0), "mesecons:test_receptor_on")
mesecon._test_place(vector.add(pos, dir), "mesecons:test_receptor_on")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute receptor_on action
mesecon.mvps_push(pos, dir, 2, "")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
assert.equal(tonumber("10000001", 2), world.get_node(vector.add(pos, dir)).param2)
mesecon.mvps_pull_single(vector.add(pos, dir), vector.multiply(dir, -1), 1, "")
mineunit:execute_globalstep()
mineunit:execute_globalstep() -- Execute activate/deactivate/change actions
assert.equal(tonumber("10000100", 2), world.get_node(pos).param2)
end)