diff options
Diffstat (limited to 'mesecons_solarpanel')
-rw-r--r-- | mesecons_solarpanel/init.lua | 56 |
1 files changed, 49 insertions, 7 deletions
diff --git a/mesecons_solarpanel/init.lua b/mesecons_solarpanel/init.lua index 42abf55..343dee1 100644 --- a/mesecons_solarpanel/init.lua +++ b/mesecons_solarpanel/init.lua @@ -1,5 +1,32 @@ -- Solar Panel -minetest.register_node("mesecons_solarpanel:solar_panel", { +minetest.register_node("mesecons_solarpanel:solar_panel_on", { + drawtype = "nodebox", + tiles = { "jeija_solar_panel.png", }, + inventory_image = "jeija_solar_panel.png", + wield_image = "jeija_solar_panel.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + is_ground_content = true, + node_box = { + type = "wallmounted", + wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, + wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, + }, + selection_box = { + type = "wallmounted", + wall_bottom = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, + wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, + }, + drop = "mesecons_solarpanel:solar_panel_off", + groups = {dig_immediate=3, mesecon = 2, not_in_creative_inventory = 1}, + description="Solar Panel", +}) + +-- Solar Panel +minetest.register_node("mesecons_solarpanel:solar_panel_off", { drawtype = "nodebox", tiles = { "jeija_solar_panel.png", }, inventory_image = "jeija_solar_panel.png", @@ -20,13 +47,12 @@ minetest.register_node("mesecons_solarpanel:solar_panel", { wall_top = { -7/16, 7/16, -7/16, 7/16, 8/16, 7/16 }, wall_side = { -8/16, -7/16, -7/16, -7/16, 7/16, 7/16 }, }, - furnace_burntime = 5, groups = {dig_immediate=3, mesecon = 2}, description="Solar Panel", }) minetest.register_craft({ - output = '"mesecons_solarpanel:solar_panel" 1', + output = '"mesecons_solarpanel:solar_panel_off" 1', recipe = { {'"mesecons_materials:silicon"', '"mesecons_materials:silicon"'}, {'"mesecons_materials:silicon"', '"mesecons_materials:silicon"'}, @@ -34,16 +60,32 @@ minetest.register_craft({ }) minetest.register_abm( - {nodenames = {"mesecons_solarpanel:solar_panel"}, - interval = 0.1, + {nodenames = {"mesecons_solarpanel:solar_panel_off"}, + interval = 1, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) local light = minetest.env:get_node_light(pos, nil) - if light == nil then light = 0 end + if light >= 12 then + minetest.env:set_node(pos, {name="mesecons_solarpanel:solar_panel_on", param2=node.param2}) mesecon:receptor_on(pos) - else + end + end, +}) + +minetest.register_abm( + {nodenames = {"mesecons_solarpanel:solar_panel_on"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local light = minetest.env:get_node_light(pos, nil) + + if light < 12 then + minetest.env:set_node(pos, {name="mesecons_solarpanel:solar_panel_off", param2=node.param2}) mesecon:receptor_off(pos) end end, }) + +mesecon:add_receptor_node("mesecons_solarpanel:solar_panel_on") +mesecon:add_receptor_node_off("mesecons_solarpanel:solar_panel_off") |