2015-06-29 19:55:56 +02: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 20:52:34 +01:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
2017-01-04 22:36:51 +01:00
is_ground_content = false ,
2015-06-29 19:55:56 +02:00
selection_box = {
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
drop = " mesecons_solarpanel:solar_panel_off " ,
2017-01-28 12:21:43 +01:00
description = " Daylight Sensor " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 19:55:56 +02:00
mesecons = { receptor = {
state = mesecon.state . on
2017-01-28 12:21:43 +01: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 16:22:28 +01:00
_mcl_blast_resistance = 1 ,
2015-06-29 19:55:56 +02: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 20:52:34 +01:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
2017-01-04 22:36:51 +01:00
is_ground_content = false ,
selection_box = {
2015-06-29 19:55:56 +02:00
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
groups = { dig_immediate = 3 } ,
2017-01-28 12:21:43 +01:00
description = " Daylight Sensor " ,
2017-03-11 03:51:36 +01: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 18:46:23 +01:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 19:55:56 +02:00
mesecons = { receptor = {
state = mesecon.state . off
2017-01-28 12:21:43 +01: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 16:22:28 +01:00
_mcl_blast_resistance = 1 ,
2015-06-29 19:55:56 +02:00
} )
minetest.register_craft ( {
2017-01-10 02:25:10 +01:00
output = ' mesecons_solarpanel:solar_panel_off ' ,
2015-06-29 19:55:56 +02:00
recipe = {
2017-01-31 23:32:56 +01:00
{ ' mcl_core:glass ' , ' mcl_core:glass ' , ' mcl_core:glass ' } ,
2017-02-08 18:54:56 +01:00
{ ' mcl_nether:quartz ' , ' mcl_nether:quartz ' , ' mcl_nether:quartz ' } ,
2017-01-10 02:25:10 +01:00
{ ' group:wood_slab ' , ' group:wood_slab ' , ' group:wood_slab ' } ,
2015-06-29 19:55:56 +02:00
}
} )
minetest.register_abm (
{ nodenames = { " mesecons_solarpanel:solar_panel_off " } ,
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 18:21:46 +01:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 19:55:56 +02:00
if light >= 12 and minetest.get_timeofday ( ) > 0.2 and minetest.get_timeofday ( ) < 0.8 then
2017-01-11 18:21:46 +01:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_on " , param2 = node.param2 } )
2015-06-29 19:55:56 +02:00
mesecon : receptor_on ( pos )
end
end ,
2017-02-22 16:22:28 +01:00
_mcl_blast_resistance = 1 ,
2015-06-29 19:55:56 +02:00
} )
minetest.register_abm (
{ nodenames = { " mesecons_solarpanel:solar_panel_on " } ,
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 18:21:46 +01:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 19:55:56 +02:00
if light < 12 then
2017-01-11 18:21:46 +01:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_off " , param2 = node.param2 } )
2015-06-29 19:55:56 +02:00
mesecon : receptor_off ( pos )
end
end ,
2017-02-22 16:22:28 +01:00
_mcl_blast_resistance = 1 ,
2015-06-29 19:55:56 +02:00
} )
--- 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 20:52:34 +01:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
2017-01-04 22:36:51 +01:00
is_ground_content = false ,
2015-06-29 19:55:56 +02:00
selection_box = {
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
2017-01-28 12:21:43 +01:00
drop = " mesecons_solarpanel:solar_panel_off " ,
2015-06-29 19:55:56 +02:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 } ,
2017-01-28 12:21:43 +01:00
description = " Inverted Daylight Sensor " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 19:55:56 +02:00
mesecons = { receptor = {
state = mesecon.state . on
2017-01-28 12:21:43 +01: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 16:22:28 +01:00
_mcl_blast_resistance = 1 ,
2015-06-29 19:55:56 +02: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 20:52:34 +01:00
wield_scale = { x = 1 , y = 1 , z = 3 } ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
2017-01-04 22:36:51 +01:00
is_ground_content = false ,
selection_box = {
2015-06-29 19:55:56 +02:00
type = " fixed " ,
fixed = boxes
} ,
node_box = {
type = " fixed " ,
fixed = boxes
} ,
2017-01-28 12:21:43 +01:00
drop = " mesecons_solarpanel:solar_panel_off " ,
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 } ,
2017-01-04 06:20:13 +01:00
description = " Inverted Daylight Sensor " ,
2017-03-11 03:51:36 +01: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 18:46:23 +01:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2015-06-29 19:55:56 +02:00
mesecons = { receptor = {
state = mesecon.state . off
2017-01-28 12:21:43 +01: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 16:22:28 +01:00
_mcl_blast_resistance = 1 ,
2015-06-29 19:55:56 +02:00
} )
minetest.register_abm (
{ nodenames = { " mesecons_solarpanel:solar_panel_inverted_off " } ,
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 18:21:46 +01:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 19:55:56 +02:00
if light < 12 then
2017-01-11 18:21:46 +01:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_inverted_on " , param2 = node.param2 } )
2015-06-29 19:55:56 +02:00
mesecon : receptor_on ( pos )
end
end ,
} )
minetest.register_abm (
{ nodenames = { " mesecons_solarpanel:solar_panel_inverted_on " } ,
interval = 1 ,
chance = 1 ,
action = function ( pos , node , active_object_count , active_object_count_wider )
2017-01-11 18:21:46 +01:00
local light = minetest.get_node_light ( pos , nil )
2015-06-29 19:55:56 +02:00
if light >= 12 and minetest.get_timeofday ( ) > 0.8 and minetest.get_timeofday ( ) < 0.2 then
2017-01-11 18:21:46 +01:00
minetest.set_node ( pos , { name = " mesecons_solarpanel:solar_panel_inverted_off " , param2 = node.param2 } )
2015-06-29 19:55:56 +02:00
mesecon : receptor_off ( pos )
end
end ,
} )
2017-01-10 06:43:07 +01:00
minetest.register_craft ( {
type = " fuel " ,
recipe = " mesecons_solarpanel:solar_panel_off " ,
burntime = 15
} )