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")  | 
