diff options
Diffstat (limited to 'mesecons_blinkyplant')
| -rw-r--r-- | mesecons_blinkyplant/init.lua | 115 | 
1 files changed, 34 insertions, 81 deletions
| diff --git a/mesecons_blinkyplant/init.lua b/mesecons_blinkyplant/init.lua index 5b3e471..c3bb3f7 100644 --- a/mesecons_blinkyplant/init.lua +++ b/mesecons_blinkyplant/init.lua @@ -1,98 +1,51 @@  -- The BLINKY_PLANT -minetest.register_node("mesecons_blinkyplant:blinky_plant", { -	drawtype = "plantlike", -	visual_scale = 1, -	tiles = {"jeija_blinky_plant_off.png"}, -	inventory_image = "jeija_blinky_plant_off.png", -	walkable = false, -	groups = {dig_immediate=3, not_in_creative_inventory=1}, -	drop="mesecons_blinkyplant:blinky_plant_off 1", -    description="Deactivated Blinky Plant", -	sounds = default.node_sound_leaves_defaults(), -	selection_box = { -		type = "fixed", -		fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, -	}, -	mesecons = {receptor = { -		state = mesecon.state.off -	}}, -	on_rightclick = function(pos, node, clicker) -        minetest.set_node(pos, {name="mesecons_blinkyplant:blinky_plant_off"}) -    end	 -}) -minetest.register_node("mesecons_blinkyplant:blinky_plant_off", { -	drawtype = "plantlike", -	visual_scale = 1, -	tiles = {"jeija_blinky_plant_off.png"}, -	inventory_image = "jeija_blinky_plant_off.png", -	paramtype = "light", -	walkable = false, -	groups = {dig_immediate=3, mesecon=2}, -    description="Blinky Plant", -	sounds = default.node_sound_leaves_defaults(), -	selection_box = { -		type = "fixed", -		fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, -	}, -	mesecons = {receptor = { -		state = mesecon.state.off -	}}, -	on_rightclick = function(pos, node, clicker) -        minetest.set_node(pos, {name="mesecons_blinkyplant:blinky_plant"}) -    end -}) +local toggle_timer = function (pos) +	local timer = minetest.get_node_timer(pos) +	if timer:is_started() then +		timer:stop() +	else +		timer:start(mesecon.setting("blinky_plant_interval", 3)) +	end +end -minetest.register_node("mesecons_blinkyplant:blinky_plant_on", { +local on_timer = function (pos) +	local node = minetest.get_node(pos) +	if(mesecon.flipstate(pos, node) == "on") then +		mesecon.receptor_on(pos) +	else +		mesecon.receptor_off(pos) +	end +	toggle_timer(pos) +end + +mesecon.register_node("mesecons_blinkyplant:blinky_plant", { +	description="Blinky Plant",  	drawtype = "plantlike", -	visual_scale = 1, -	tiles = {"jeija_blinky_plant_on.png"},  	inventory_image = "jeija_blinky_plant_off.png",  	paramtype = "light",  	walkable = false, -	groups = {dig_immediate=3, not_in_creative_inventory=1, mesecon=2}, -	drop="mesecons_blinkyplant:blinky_plant_off 1", -	light_source = LIGHT_MAX-7, -	description = "Blinky Plant",  	sounds = default.node_sound_leaves_defaults(),  	selection_box = {  		type = "fixed",  		fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3},  	}, -	mesecons = {receptor = { -		state = mesecon.state.on -	}}, -	on_rightclick = function(pos, node, clicker) -		minetest.set_node(pos, {name = "mesecons_blinkyplant:blinky_plant"}) -		mesecon.receptor_off(pos) -	end +	on_timer = on_timer, +	on_rightclick = toggle_timer, +	on_construct = toggle_timer +},{ +	tiles = {"jeija_blinky_plant_off.png"}, +	groups = {dig_immediate=3}, +	mesecons = {receptor = { state = mesecon.state.off }} +},{ +	tiles = {"jeija_blinky_plant_on.png"}, +	groups = {dig_immediate=3, not_in_creative_inventory=1}, +	mesecons = {receptor = { state = mesecon.state.on }}  })  minetest.register_craft({  	output = "mesecons_blinkyplant:blinky_plant_off 1", -	recipe = { -	{"","group:mesecon_conductor_craftable",""}, -	{"","group:mesecon_conductor_craftable",""}, -	{"default:sapling","default:sapling","default:sapling"}, -	} +	recipe = {	{"","group:mesecon_conductor_craftable",""}, +			{"","group:mesecon_conductor_craftable",""}, +			{"default:sapling","default:sapling","default:sapling"}}  }) - -minetest.register_abm({ -	nodenames = { -		"mesecons_blinkyplant:blinky_plant_off", -		"mesecons_blinkyplant:blinky_plant_on" -	}, -	interval = BLINKY_PLANT_INTERVAL, -	chance = 1, -	action = function(pos, node, active_object_count, active_object_count_wider) -		if node.name == "mesecons_blinkyplant:blinky_plant_off" then -			minetest.add_node(pos, {name="mesecons_blinkyplant:blinky_plant_on"}) -			mesecon.receptor_on(pos) -		else -			minetest.add_node(pos, {name="mesecons_blinkyplant:blinky_plant_off"}) -			mesecon.receptor_off(pos) -		end -		nodeupdate(pos)	 -	end, -}) - | 
