diff options
Diffstat (limited to 'mesecons_button')
| -rw-r--r-- | mesecons_button/depends.txt | 1 | ||||
| -rw-r--r-- | mesecons_button/init.lua | 86 | 
2 files changed, 87 insertions, 0 deletions
| diff --git a/mesecons_button/depends.txt b/mesecons_button/depends.txt new file mode 100644 index 0000000..acaa924 --- /dev/null +++ b/mesecons_button/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/mesecons_button/init.lua b/mesecons_button/init.lua new file mode 100644 index 0000000..b76a49d --- /dev/null +++ b/mesecons_button/init.lua @@ -0,0 +1,86 @@ +-- WALL BUTTON +minetest.register_node("mesecons_button:button_off", { +    drawtype = "signlike", +    tile_images = {"jeija_wall_button_off.png"}, +    paramtype = "light", +    paramtype2 = "wallmounted", +    legacy_wallmounted = true, +    walkable = false, +    selection_box = { +        type = "wallmounted", +    }, +    material = minetest.digprop_constanttime(0.3), +    description="Button", +}) +minetest.register_node("mesecons_button:button_on", { +    drawtype = "signlike", +    tile_images = {"jeija_wall_button_on.png"}, +    paramtype = "light", +    paramtype2 = "wallmounted", +    legacy_wallmounted = true, +    walkable = false, +    selection_box = { +        type = "wallmounted", +    }, +    material = minetest.digprop_constanttime(0.3), +    drop = '"mesecons_button:button_off" 1', +    description="Button", +}) + +minetest.register_on_dignode( +    function(pos, oldnode, digger) +        if oldnode.name == "mesecons_button:button_on" then +            mesecon:receptor_off(pos) +        end     +    end +) +minetest.register_on_punchnode(function(pos, node, puncher) +	if node.name == "mesecons_button:button_off" then +		minetest.env:add_node(pos, {name="mesecons_button:button_on",param2=node.param2}) +		local rules_string="" +		if node.param2 == 5 then +			rules_string="button_z+" +		end +		if node.param2 == 3 then +			rules_string="button_x+" +		end +		if node.param2 == 4 then +			rules_string="button_z-" +		end +		if node.param2 == 2 then +			rules_string="button_x-" +		end +		mesecon:receptor_on(pos, rules_string) +	end +end) +minetest.register_abm({ +	nodenames = {"mesecons_button:button_on"}, +	interval = 0.1, +	chance = 1, +	action = function(pos, node, active_object_count, active_object_count_wider) +		minetest.env:add_node(pos, {name="mesecons_button:button_off",param2=node.param2}) + +		local rules_string="" +		if node.param2 == 5 then +			rules_string="button_z+" +		end +		if node.param2 == 3 then +			rules_string="button_x+" +		end +		if node.param2 == 4 then +			rules_string="button_z-" +		end +		if node.param2 == 2 then +			rules_string="button_x-" +		end +        	mesecon:receptor_off(pos, rules_string) +	end +}) +minetest.register_craft({ +	output = '"mesecons_button:button_off" 2', +	recipe = { +		{'"mesecons:mesecon_off"','"default:stone"'}, +	} +}) +mesecon:add_receptor_node("mesecons_button:button") +mesecon:add_receptor_node_off("mesecons_button:button_off") | 
