summaryrefslogtreecommitdiff
path: root/bobblocks/health.lua
blob: 9588f87db2400306fef608550f08da294326c8b1 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
local is_healthpack = function(node)
    if node.name == 'bobblocks:health_off' or node.name == 'health_on' then
        return true
    end
    return false
end

local update_healthpack = function (pos, node)
    local nodename=""
    local param2=""
    --Switch HealthPack State
    if node.name == 'bobblocks:health_off' then
        nodename = 'bobblocks:health_on'
    elseif node.name == 'bobblocks:health_on' then
        nodename = 'bobblocks:health_off'
    end
    minetest.add_node(pos, {name = nodename})
end

local toggle_healthpack = function (pos, node)
    if not is_healthgate(node) then return end
    update_healthpack (pos, node, state)
end
    
local on_healthpack_punched = function (pos, node, puncher)
    if node.name == 'bobblocks:health_off' or node.name == 'bobblocks:health_on' then
        update_healthpack(pos, node)
    end
end

-- Healing Node

minetest.register_node("bobblocks:health_off", {
	description = "Health Pack 1 Off",
    tiles = {"bobblocks_health_off.png"},
    inventory_image = "bobblocks_health_off.png",
	paramtype2 = "facedir",
	legacy_facedir_simple = true,
    groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
    is_ground_content = false,
    walkable = false,
    climbable = false,
    mesecons = {conductor={
			state = mesecon.state.off,
			onstate = "bobblocks:health_on"
		}}
})

minetest.register_node("bobblocks:health_on", {
	description = "Health Pack 1 On",
    tiles = {"bobblocks_health_on.png"},
	paramtype2 = "facedir",
	legacy_facedir_simple = true,
    light_source = LIGHT_MAX-0,
    groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
    is_ground_content = false,
        walkable = false,
    climbable = false,
    drop = "bobblocks:health_off",
        mesecons = {conductor={
			state = mesecon.state.on,
			offstate = "bobblocks:health_off"
		}}
})


minetest.register_abm(
	{nodenames = {"bobblocks:health_on"},
    interval = 1.0,
    chance = 1,
    action = function(pos, node, active_object_count, active_object_count_wider)
    local objs = minetest.get_objects_inside_radius(pos, 1)
        for k, obj in pairs(objs) do
        minetest.sound_play("bobblocks_health",
	    {pos = pos, gain = 1.0, max_hear_distance = 32,})
        obj:set_hp(obj:get_hp()+10)     -- give 10HP
        minetest.remove_node(pos)  -- remove the node after use
    end
    end,
     
})

--- Health

minetest.register_craft({
	output = 'NodeItem "bobblocks:health_off" 1',
	recipe = {
		{'node "default:dirt" 1', 'node "default:paper" 1', 'node "default:apple" 2'},

	},
})


minetest.register_on_punchnode(on_healthpack_punched)