Add labels to all ABMs
[minetest_hades/hades_revisited.git] / mods / mesecons / mesecons_solarpanel / init.lua
blob895e51a75b5ee227adf47dad9ff185aa76672490
1 -- Solar Panel
2 minetest.register_node("mesecons_solarpanel:solar_panel_on", {
3 drawtype = "nodebox",
4 tiles = { "jeija_solar_panel.png", },
5 inventory_image = "jeija_solar_panel.png",
6 wield_image = "jeija_solar_panel.png",
7 paramtype = "light",
8 paramtype2 = "wallmounted",
9 walkable = false,
10 is_ground_content = true,
11 node_box = {
12 type = "wallmounted",
13 wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 },
14 wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 },
15 wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 },
17 selection_box = {
18 type = "wallmounted",
19 wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 },
20 wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 },
21 wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 },
23 drop = "mesecons_solarpanel:solar_panel_off",
24 groups = {dig_immediate=3, not_in_creative_inventory = 1},
25 sounds = hades_sounds.node_sound_glass_defaults(),
26 mesecons = {receptor = {
27 state = mesecon.state.on
31 -- Solar Panel
32 minetest.register_node("mesecons_solarpanel:solar_panel_off", {
33 drawtype = "nodebox",
34 tiles = { "jeija_solar_panel.png", },
35 inventory_image = "jeija_solar_panel.png",
36 wield_image = "jeija_solar_panel.png",
37 paramtype = "light",
38 paramtype2 = "wallmounted",
39 walkable = false,
40 is_ground_content = true,
41 node_box = {
42 type = "wallmounted",
43 wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 },
44 wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 },
45 wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 },
47 selection_box = {
48 type = "wallmounted",
49 wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 },
50 wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 },
51 wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 },
53 groups = {dig_immediate=3},
54 description="Solar Panel",
55 sounds = hades_sounds.node_sound_glass_defaults(),
56 mesecons = {receptor = {
57 state = mesecon.state.off
61 minetest.register_craft({
62 output = "mesecons_solarpanel:solar_panel_off 1",
63 recipe = {
64 {"mesecons_materials:silicon", "mesecons_materials:silicon"},
65 {"mesecons_materials:silicon", "mesecons_materials:silicon"},
69 minetest.register_abm({
70 label = "Activate solar panel",
71 nodenames = {"mesecons_solarpanel:solar_panel_off"},
72 interval = 1,
73 chance = 1,
74 action = function(pos, node, active_object_count, active_object_count_wider)
75 local light = minetest.get_node_light(pos, nil)
77 if light >= 12 then
78 minetest.set_node(pos, {name="mesecons_solarpanel:solar_panel_on", param2=node.param2})
79 mesecon:receptor_on(pos)
80 end
81 end,
84 minetest.register_abm({
85 label = "Deactivate solar panel",
86 nodenames = {"mesecons_solarpanel:solar_panel_on"},
87 interval = 1,
88 chance = 1,
89 action = function(pos, node, active_object_count, active_object_count_wider)
90 local light = minetest.get_node_light(pos, nil)
92 if light < 12 then
93 minetest.set_node(pos, {name="mesecons_solarpanel:solar_panel_off", param2=node.param2})
94 mesecon:receptor_off(pos)
95 end
96 end,