blob: 615e4c62aeb7553f9bbf12f7d4af5edc3ad45be1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
local function override_node_timer(node_name)
local def = minetest.registered_nodes[node_name]
local old_node_timer = def.on_timer
def.on_timer = function(pos)
local ctx = mesecons_debug.get_context(pos)
if ctx.penalty > 0 then
-- defer
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local is_defered = meta:get_int("_defered") == 1
if is_defered then
-- already delayed
meta:set_int("_defered", 0)
return old_node_timer(pos)
else
-- start timer
meta:set_int("_defered", 1)
timer:start(ctx.penalty)
end
else
-- immediate
return old_node_timer(pos)
end
end
end
-- luaC
local BASENAME = "mesecons_luacontroller:luacontroller"
for a = 0, 1 do -- 0 = off 1 = on
for b = 0, 1 do
for c = 0, 1 do
for d = 0, 1 do
local cid = tostring(d)..tostring(c)..tostring(b)..tostring(a)
local node_name = BASENAME..cid
override_node_timer(node_name)
end
end
end
end
-- blinky
override_node_timer("mesecons_blinkyplant:blinky_plant_off")
override_node_timer("mesecons_blinkyplant:blinky_plant_on")
|