aboutsummaryrefslogtreecommitdiff
path: root/overrides/node_timers.lua
blob: 8f8043dd8e598854c92beff18a13f05a579691ce (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
local function override_node_timer(node_name)
    local old_node_timer = minetest.registered_nodes[node_name].on_timer
    minetest.override_item(node_name, {
        on_timer = function(pos, elapsed)
            if not mesecons_debug.enabled then
                return old_node_timer(pos, elapsed)
            elseif not mesecons_debug.mesecons_enabled then
                return true
            end

            local ctx = mesecons_debug.get_context(pos)

            if ctx.whitelisted or elapsed > ctx.penalty then
                return old_node_timer(pos, elapsed)
            else
                -- defer
                return true
            end
        end,
    })
end

if minetest.get_modpath("digistuff") then
    override_node_timer("digistuff:timer")
end

if minetest.get_modpath("mesecons_luacontroller") then
    for a = 0, 1 do
        for b = 0, 1 do
            for c = 0, 1 do
                for d = 0, 1 do
                    override_node_timer(("mesecons_luacontroller:luacontroller%i%i%i%i"):format(a, b, c, d))
                end
            end
        end
    end
end

if minetest.get_modpath("mesecons_blinkyplant") then
    override_node_timer("mesecons_blinkyplant:blinky_plant_off")
    override_node_timer("mesecons_blinkyplant:blinky_plant_on")
end

if minetest.get_modpath("moremesecons_adjustable_blinkyplant") then
    override_node_timer("moremesecons_adjustable_blinkyplant:adjustable_blinky_plant_off")
    override_node_timer("moremesecons_adjustable_blinkyplant:adjustable_blinky_plant_on")
end

if minetest.get_modpath("moremesecons_injector_controller") then
    override_node_timer("moremesecons_injector_controller:injector_controller_on")
    override_node_timer("moremesecons_injector_controller:injector_controller_off")
end

if minetest.get_modpath("pipeworks") then
    for a = 0, 1 do
        for b = 0, 1 do
            for c = 0, 1 do
                for d = 0, 1 do
                    for e = 0, 1 do
                        for f = 0, 1 do
                            override_node_timer(("pipeworks:lua_tube%i%i%i%i%i%i"):format(a, b, c, d, e, f))
                        end
                    end
                end
            end
        end
    end
end