summaryrefslogtreecommitdiff
path: root/mesecons_solarpanel
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2012-08-13 14:26:00 +0200
committerJeija <norrepli@gmail.com>2012-08-13 14:26:00 +0200
commit55bdf5441fefa21bb02bed836db40c24bcc1c1a5 (patch)
tree58f1963538c54274ea6879c742fdf91de5dcef8f /mesecons_solarpanel
parent2b1f0d1338da20d6eca21aaf7434b3867c923ba0 (diff)
downloadmesecons-55bdf5441fefa21bb02bed836db40c24bcc1c1a5.tar
mesecons-55bdf5441fefa21bb02bed836db40c24bcc1c1a5.tar.gz
mesecons-55bdf5441fefa21bb02bed836db40c24bcc1c1a5.tar.bz2
mesecons-55bdf5441fefa21bb02bed836db40c24bcc1c1a5.tar.xz
mesecons-55bdf5441fefa21bb02bed836db40c24bcc1c1a5.zip
Code improvement, Bugfix for solar panel
Diffstat (limited to 'mesecons_solarpanel')
-rw-r--r--mesecons_solarpanel/init.lua56
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")