Make on and off times configurable
Signed-off-by: Gergely POLONKAI <gergely@polonkai.eu>
This commit is contained in:
33
init.lua
33
init.lua
@@ -11,11 +11,14 @@ local meseclock_toggle_timer = function (pos)
|
|||||||
else
|
else
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local nodedef = minetest.registered_nodes[node.name]
|
local nodedef = minetest.registered_nodes[node.name]
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local meta_on_interval = meta:get_int("on_time") or default_on_interval
|
||||||
|
local meta_off_interval = meta:get_int("off_time") or default_off_interval
|
||||||
|
|
||||||
if (nodedef.__mesecon_state == "on") then
|
if (nodedef.__mesecon_state == "on") then
|
||||||
timer:start(default_on_interval)
|
timer:start(meta_on_interval)
|
||||||
else
|
else
|
||||||
timer:start(default_off_interval)
|
timer:start(meta_off_interval)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -32,10 +35,35 @@ local meseclock_on_timer = function (pos)
|
|||||||
meseclock_toggle_timer(pos)
|
meseclock_toggle_timer(pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local meseclock_make_formspec = function (pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
if meta:get_string("on_time") == "" then meta:set_string("on_time", "1") end
|
||||||
|
if meta:get_string("off_time") == "" then meta:set_string("off_time", "1") end
|
||||||
|
|
||||||
|
meta:set_string(
|
||||||
|
"formspec", "size[6,2.5]" ..
|
||||||
|
"field[0.3, 0;3,2;on_time;" .. S("On time (seconds)") .. ":;${on_time}]" ..
|
||||||
|
"field[3.3, 0;3,2;off_time;" .. S("Off time (seconds)") .. ":;${off_time}]" ..
|
||||||
|
"button_exit[0.3,0.5;2,3;;" .. S("Save") .. "]"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
local meseclock_on_construct = function (pos)
|
local meseclock_on_construct = function (pos)
|
||||||
|
meseclock_make_formspec(pos)
|
||||||
meseclock_toggle_timer(pos)
|
meseclock_toggle_timer(pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local meseclock_on_receive_fields = function (pos, _, fields, sender)
|
||||||
|
if not fields.on_time then return end
|
||||||
|
if minetest.is_protected(pos, sender:get_player_name()) then return end
|
||||||
|
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("on_time", fields.on_time or to_string(default_on_time))
|
||||||
|
meta:set_string("off_time", fields.off_time or to_string(default_off_time))
|
||||||
|
|
||||||
|
meseclock_make_formspec(pos)
|
||||||
|
end
|
||||||
|
|
||||||
local node_defaults = {
|
local node_defaults = {
|
||||||
description = S("Mesecons Clock"),
|
description = S("Mesecons Clock"),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
@@ -60,6 +88,7 @@ local node_defaults = {
|
|||||||
on_blast = mesecon.on_blastnode,
|
on_blast = mesecon.on_blastnode,
|
||||||
drop = "mesecons_clock:clock_off",
|
drop = "mesecons_clock:clock_off",
|
||||||
on_construct = meseclock_on_construct,
|
on_construct = meseclock_on_construct,
|
||||||
|
on_receive_fields = meseclock_on_receive_fields,
|
||||||
on_punch = function (pos, _, clicker)
|
on_punch = function (pos, _, clicker)
|
||||||
if minetest.is_protected(pos, clicker and clicker:get_player_name() or "") then
|
if minetest.is_protected(pos, clicker and clicker:get_player_name() or "") then
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,2 +1,5 @@
|
|||||||
# textdomain: mesecons_clock
|
# textdomain: mesecons_clock
|
||||||
|
On time (seconds)=
|
||||||
|
Off time (seconds)=
|
||||||
|
Save=
|
||||||
Mesecons Clock=
|
Mesecons Clock=
|
||||||
|
|||||||
Reference in New Issue
Block a user