summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesecons_hydroturbine/init.lua2
-rw-r--r--mesecons_solarpanel/init.lua56
2 files changed, 49 insertions, 9 deletions
diff --git a/mesecons_hydroturbine/init.lua b/mesecons_hydroturbine/init.lua
index 0a662bc..03e1ccb 100644
--- a/mesecons_hydroturbine/init.lua
+++ b/mesecons_hydroturbine/init.lua
@@ -53,7 +53,6 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_off"},
action = function(pos, node, active_object_count, active_object_count_wider)
local waterpos={x=pos.x, y=pos.y+1, z=pos.z}
if minetest.env:get_node(waterpos).name=="default:water_flowing" then
- --minetest.env:remove_node(pos)
minetest.env:add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"})
nodeupdate(pos)
mesecon:receptor_on(pos)
@@ -68,7 +67,6 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_on"},
action = function(pos, node, active_object_count, active_object_count_wider)
local waterpos={x=pos.x, y=pos.y+1, z=pos.z}
if minetest.env:get_node(waterpos).name~="default:water_flowing" then
- --minetest.env:remove_node(pos)
minetest.env:add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"})
nodeupdate(pos)
mesecon:receptor_off(pos)
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")