2015-06-29 17:55:56 +00:00
local boxes = { - 8 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 2 / 16 , 8 / 16 } -- Solar Pannel
-- Solar Panel
minetest.register_node ( " mesecons_solarpanel:solar_panel_on " , {
drawtype = " nodebox " ,
tiles = { " jeija_solar_panel.png " , " jeija_solar_panel.png " , " jeija_solar_panel_side.png " ,
" jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , } ,
wield_image = " jeija_solar_panel.png " ,
2017-02-14 19:52:34 +00:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 17:55:56 +00:00
paramtype = " light " ,
2017-06-13 12:46:21 +00:00
sunlight_propagates = true ,
2017-01-04 21:36:51 +00:00
is_ground_content = false ,
2015-06-29 17:55:56 +00:00
selection_box = {
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
drop = " mesecons_solarpanel:solar_panel_off " ,
2017-01-28 11:21:43 +00:00
description = " Daylight Sensor " ,
2017-03-02 18:53:53 +00:00
_doc_items_create_entry = false ,
2017-03-20 20:39:39 +00:00
groups = { handy = 1 , axey = 1 , not_in_creative_inventory = 1 , material_wood = 1 } ,
2017-02-11 17:46:23 +00:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 17:55:56 +00:00
mesecons = { receptor = {
state = mesecon.state . on
2017-01-28 11:21:43 +00:00
} } ,
on_rightclick = function ( pos , node , clicker , pointed_thing )
minetest.swap_node ( pos , { name = " mesecons_solarpanel:solar_panel_inverted_off " } )
mesecon : receptor_off ( pos )
end ,
2017-02-22 15:22:28 +00:00
_mcl_blast_resistance = 1 ,
2017-03-20 20:39:39 +00:00
_mcl_hardness = 0.2 ,
2015-06-29 17:55:56 +00:00
} )
-- Solar Panel
minetest.register_node ( " mesecons_solarpanel:solar_panel_off " , {
drawtype = " nodebox " ,
tiles = { " jeija_solar_panel.png " , " jeija_solar_panel.png " , " jeija_solar_panel_side.png " ,
" jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , } ,
wield_image = " jeija_solar_panel.png " ,
2017-02-14 19:52:34 +00:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 17:55:56 +00:00
paramtype = " light " ,
2017-06-13 12:46:21 +00:00
sunlight_propagates = true ,
2017-01-04 21:36:51 +00:00
is_ground_content = false ,
selection_box = {
2015-06-29 17:55:56 +00:00
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
2017-03-20 20:39:39 +00:00
groups = { handy = 1 , axey = 1 , material_wood = 1 } ,
2017-01-28 11:21:43 +00:00
description = " Daylight Sensor " ,
2017-03-11 02:51:36 +00:00
_doc_items_longdesc = " Daylight sensors are redstone components which provide redstone power when they are in sunlight and no power otherwise. They can also be inverted. " ,
_doc_items_usagehelp = " Rightclick the daylight sensor to turn it into an inverted daylight sensor, which supplies redstone energy when it is in moonlight. " ,
2017-02-11 17:46:23 +00:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 17:55:56 +00:00
mesecons = { receptor = {
state = mesecon.state . off
2017-01-28 11:21:43 +00:00
} } ,
on_rightclick = function ( pos , node , clicker , pointed_thing )
minetest.swap_node ( pos , { name = " mesecons_solarpanel:solar_panel_inverted_on " } )
mesecon : receptor_on ( pos )
end ,
2017-02-22 15:22:28 +00:00
_mcl_blast_resistance = 1 ,
2017-03-20 20:39:39 +00:00
_mcl_hardness = 0.2 ,
2015-06-29 17:55:56 +00:00
} )
minetest.register_craft ( {
2017-01-10 01:25:10 +00:00
output = ' mesecons_solarpanel:solar_panel_off ' ,
2015-06-29 17:55:56 +00:00
recipe = {
2017-01-31 22:32:56 +00:00
{ ' mcl_core:glass ' , ' mcl_core:glass ' , ' mcl_core:glass ' } ,
2017-02-08 17:54:56 +00:00
{ ' mcl_nether:quartz ' , ' mcl_nether:quartz ' , ' mcl_nether:quartz ' } ,
2017-01-10 01:25:10 +00:00
{ ' group:wood_slab ' , ' group:wood_slab ' , ' group:wood_slab ' } ,
2015-06-29 17:55:56 +00:00
}
} )
2017-05-14 22:45:54 +00:00
minetest.register_abm ( {
label = " Daylight turns on solar panels " ,
nodenames = { " mesecons_solarpanel:solar_panel_off " } ,
2015-06-29 17:55:56 +00:00
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 17:21:46 +00:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 17:55:56 +00:00
if light >= 12 and minetest.get_timeofday ( ) > 0.2 and minetest.get_timeofday ( ) < 0.8 then
2017-01-11 17:21:46 +00:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_on " , param2 = node.param2 } )
2015-06-29 17:55:56 +00:00
mesecon : receptor_on ( pos )
end
end ,
} )
2017-05-14 22:45:54 +00:00
minetest.register_abm ( {
label = " Darkness turns off solar panels " ,
nodenames = { " mesecons_solarpanel:solar_panel_on " } ,
2015-06-29 17:55:56 +00:00
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 17:21:46 +00:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 17:55:56 +00:00
if light < 12 then
2017-01-11 17:21:46 +00:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_off " , param2 = node.param2 } )
2015-06-29 17:55:56 +00:00
mesecon : receptor_off ( pos )
end
end ,
} )
--- Solar panel inversed
-- Solar Panel
minetest.register_node ( " mesecons_solarpanel:solar_panel_inverted_on " , {
drawtype = " nodebox " ,
tiles = { " jeija_solar_panel_inverted.png " , " jeija_solar_panel_inverted.png " , " jeija_solar_panel_side.png " ,
" jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , } ,
wield_image = " jeija_solar_panel_inverted.png " ,
2017-02-14 19:52:34 +00:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 17:55:56 +00:00
paramtype = " light " ,
2017-06-13 12:46:21 +00:00
sunlight_propagates = true ,
2017-01-04 21:36:51 +00:00
is_ground_content = false ,
2015-06-29 17:55:56 +00:00
selection_box = {
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
2017-01-28 11:21:43 +00:00
drop = " mesecons_solarpanel:solar_panel_off " ,
2017-03-20 20:39:39 +00:00
groups = { handy = 1 , axey = 1 , not_in_creative_inventory = 1 , material_wood = 1 } ,
2017-01-28 11:21:43 +00:00
description = " Inverted Daylight Sensor " ,
2017-03-02 18:53:53 +00:00
_doc_items_create_entry = false ,
2017-02-11 17:46:23 +00:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 17:55:56 +00:00
mesecons = { receptor = {
state = mesecon.state . on
2017-01-28 11:21:43 +00:00
} } ,
on_rightclick = function ( pos , node , clicker , pointed_thing )
minetest.swap_node ( pos , { name = " mesecons_solarpanel:solar_panel_off " } )
mesecon : receptor_off ( pos )
end ,
2017-02-22 15:22:28 +00:00
_mcl_blast_resistance = 1 ,
2017-03-20 20:39:39 +00:00
_mcl_hardness = 0.2 ,
2015-06-29 17:55:56 +00:00
} )
-- Solar Panel
minetest.register_node ( " mesecons_solarpanel:solar_panel_inverted_off " , {
drawtype = " nodebox " ,
tiles = { " jeija_solar_panel_inverted.png " , " jeija_solar_panel_inverted.png " , " jeija_solar_panel_side.png " ,
" jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , " jeija_solar_panel_side.png " , } ,
wield_image = " jeija_solar_panel_inverted.png " ,
2017-02-14 19:52:34 +00:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 17:55:56 +00:00
paramtype = " light " ,
2017-06-13 12:46:21 +00:00
sunlight_propagates = true ,
2017-01-04 21:36:51 +00:00
is_ground_content = false ,
selection_box = {
2015-06-29 17:55:56 +00:00
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
2017-01-28 11:21:43 +00:00
drop = " mesecons_solarpanel:solar_panel_off " ,
2017-03-20 20:39:39 +00:00
groups = { handy = 1 , axey = 1 , not_in_creative_inventory = 1 , material_wood = 1 } ,
2017-01-04 05:20:13 +00:00
description = " Inverted Daylight Sensor " ,
2017-03-11 02:51:36 +00:00
_doc_items_longdesc = " An inverted daylight sensor is a variant of the daylight sensor. It is a redstone component which provides redstone power when it in moonlight and no power otherwise. It can turned back into an ordinary daylight sensor. " ,
_doc_items_usagehelp = " Rightclick the daylight sensor to turn it into a daylight sensor. " ,
2017-02-11 17:46:23 +00:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 17:55:56 +00:00
mesecons = { receptor = {
state = mesecon.state . off
2017-01-28 11:21:43 +00:00
} } ,
on_rightclick = function ( pos , node , clicker , pointed_thing )
minetest.swap_node ( pos , { name = " mesecons_solarpanel:solar_panel_on " } )
mesecon : receptor_on ( pos )
end ,
2017-02-22 15:22:28 +00:00
_mcl_blast_resistance = 1 ,
2017-03-20 20:39:39 +00:00
_mcl_hardness = 0.2 ,
2015-06-29 17:55:56 +00:00
} )
2017-05-14 22:45:54 +00:00
minetest.register_abm ( {
label = " Darkness turns on inverted solar panels " ,
nodenames = { " mesecons_solarpanel:solar_panel_inverted_off " } ,
2015-06-29 17:55:56 +00:00
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 17:21:46 +00:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 17:55:56 +00:00
if light < 12 then
2017-01-11 17:21:46 +00:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_inverted_on " , param2 = node.param2 } )
2015-06-29 17:55:56 +00:00
mesecon : receptor_on ( pos )
end
end ,
} )
2017-05-14 22:45:54 +00:00
minetest.register_abm ( {
label = " Daylight turns off inverted solar panels " ,
nodenames = { " mesecons_solarpanel:solar_panel_inverted_on " } ,
2015-06-29 17:55:56 +00:00
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 17:21:46 +00:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 17:55:56 +00:00
if light >= 12 and minetest.get_timeofday ( ) > 0.8 and minetest.get_timeofday ( ) < 0.2 then
2017-01-11 17:21:46 +00:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_inverted_off " , param2 = node.param2 } )
2015-06-29 17:55:56 +00:00
mesecon : receptor_off ( pos )
end
end ,
} )
2017-01-10 05:43:07 +00:00
minetest.register_craft ( {
type = " fuel " ,
recipe = " mesecons_solarpanel:solar_panel_off " ,
burntime = 15
} )
2017-03-21 03:27:50 +00:00
if minetest.get_modpath ( " doc " ) then
doc.add_entry_alias ( " nodes " , " mesecons_solarpanel:solar_panel_off " , " nodes " , " mesecons_solarpanel:solar_panel_on " )
doc.add_entry_alias ( " nodes " , " mesecons_solarpanel:solar_panel_inverted_off " , " nodes " , " mesecons_solarpanel:solar_panel_inverted_on " )
end