54 lines
1.3 KiB
Lua
54 lines
1.3 KiB
Lua
local DELAYS = {
|
|
0.2,
|
|
0.4,
|
|
0.6,
|
|
0.8,
|
|
1.0
|
|
}
|
|
|
|
local DELAY_POSITION_KEY = "delay"
|
|
|
|
local function after_place_node(pos)
|
|
local meta = core.get_meta(pos)
|
|
meta:set_int(DELAY_POSITION_KEY, 1)
|
|
|
|
PyuTest.component_after_place_node(pos)
|
|
end
|
|
|
|
local function on_rightclick(pos, node, clicker)
|
|
local meta = core.get_meta(pos)
|
|
local dpos = meta:get_int(DELAY_POSITION_KEY)
|
|
|
|
if dpos == #DELAYS then
|
|
meta:set_int(DELAY_POSITION_KEY, 1)
|
|
else
|
|
meta:set_int(DELAY_POSITION_KEY, dpos + 1)
|
|
end
|
|
|
|
local seconds = DELAYS[meta:get_int(DELAY_POSITION_KEY)]
|
|
core.chat_send_player(clicker:get_player_name(), string.format("Delay set to %f seconds", seconds))
|
|
end
|
|
|
|
PyuTest.make_electricity_device("pyutest_electricity:delayer", "Delayer", {
|
|
cracky = PyuTest.BLOCK_NORMAL
|
|
}, {"pyutest-delayer.png"}, nil, {
|
|
after_place_node = after_place_node,
|
|
on_rightclick = on_rightclick
|
|
}, function (pos, node, sender_pos, sender)
|
|
local meta = core.get_meta(pos)
|
|
local seconds = DELAYS[meta:get_int(DELAY_POSITION_KEY)]
|
|
|
|
core.after(seconds, function ()
|
|
PyuTest.component_action(pos, sender)
|
|
end)
|
|
end)
|
|
|
|
core.register_craft({
|
|
output = "pyutest_electricity:button",
|
|
recipe = {
|
|
{ "group:cobble", "group:cobble", "group:cobble" },
|
|
{ "group:cobble", "pyutest_ores:zinc_ingot", "group:cobble" },
|
|
{ "group:cobble", "group:cobble", "group:cobble" }
|
|
},
|
|
})
|