forked from minetest-mods/mesecons
		
	Merge branch 'master' into luacontroller
This commit is contained in:
		@@ -128,6 +128,10 @@ for zmy=0, 1 do
 | 
				
			|||||||
		description = "Wire ID:"..nodeid,
 | 
							description = "Wire ID:"..nodeid,
 | 
				
			||||||
		drawtype = "nodebox",
 | 
							drawtype = "nodebox",
 | 
				
			||||||
		tiles = tiles_on,
 | 
							tiles = tiles_on,
 | 
				
			||||||
 | 
					--		inventory_image = "wires_inv.png",
 | 
				
			||||||
 | 
					--		wield_image = "wires_inv.png",
 | 
				
			||||||
 | 
							inventory_image = "jeija_mesecon_off.png",
 | 
				
			||||||
 | 
							wield_image = "jeija_mesecon_off.png",
 | 
				
			||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		paramtype2 = "facedir",
 | 
							paramtype2 = "facedir",
 | 
				
			||||||
		sunlight_propagates = true,
 | 
							sunlight_propagates = true,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1,2 @@
 | 
				
			|||||||
mesecons
 | 
					mesecons
 | 
				
			||||||
 | 
					doors
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,7 +43,7 @@ function doors:register_door(name, def)
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local function on_punch(pos, dir, check_name, replace, replace_dir, params)
 | 
						local function on_rightclick(pos, dir, check_name, replace, replace_dir, params)
 | 
				
			||||||
		pos.y = pos.y+dir
 | 
							pos.y = pos.y+dir
 | 
				
			||||||
		if not minetest.env:get_node(pos).name == check_name then
 | 
							if not minetest.env:get_node(pos).name == check_name then
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
@@ -62,11 +62,11 @@ function doors:register_door(name, def)
 | 
				
			|||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local function on_mesecons_signal_open (pos, node)
 | 
						local function on_mesecons_signal_open (pos, node)
 | 
				
			||||||
		on_punch(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0})
 | 
							on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local function on_mesecons_signal_close (pos, node)
 | 
						local function on_mesecons_signal_close (pos, node)
 | 
				
			||||||
		on_punch(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
 | 
							on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	local function check_player_priv(pos, player)
 | 
						local function check_player_priv(pos, player)
 | 
				
			||||||
@@ -99,9 +99,9 @@ function doors:register_door(name, def)
 | 
				
			|||||||
			after_dig_node(pos, name.."_t_1")
 | 
								after_dig_node(pos, name.."_t_1")
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		on_punch = function(pos, node, puncher)
 | 
							on_rightclick = function(pos, node, puncher)
 | 
				
			||||||
			if check_player_priv(pos, puncher) then
 | 
								if check_player_priv(pos, puncher) then
 | 
				
			||||||
				on_punch(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0})
 | 
									on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -133,9 +133,9 @@ function doors:register_door(name, def)
 | 
				
			|||||||
			after_dig_node(pos, name.."_t_2")
 | 
								after_dig_node(pos, name.."_t_2")
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		on_punch = function(pos, node, puncher)
 | 
							on_rightclick = function(pos, node, puncher)
 | 
				
			||||||
			if check_player_priv(pos, puncher) then
 | 
								if check_player_priv(pos, puncher) then
 | 
				
			||||||
				on_punch(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
 | 
									on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,8 +10,8 @@ local tbox = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
local bbox = {
 | 
					local bbox = {
 | 
				
			||||||
	type = "fixed",
 | 
						type = "fixed",
 | 
				
			||||||
	fixed = {{  -.5, -.5,   -.5,   .5, -.5+1/16,   .5},
 | 
						fixed = {{  -.5, -.5     ,   -.5,   .5, -.5+1/16,   .5},
 | 
				
			||||||
		 {-1/16, -.5, -1/16, 1/16,  .5     , 1/16}}
 | 
							 {-1/16, -.5+1/16, -1/16, 1/16,  .5     , 1/16}}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local vrules =
 | 
					local vrules =
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ end
 | 
				
			|||||||
function mesecon:mvps_process_stack(stack)
 | 
					function mesecon:mvps_process_stack(stack)
 | 
				
			||||||
	-- update mesecons for placed nodes ( has to be done after all nodes have been added )
 | 
						-- update mesecons for placed nodes ( has to be done after all nodes have been added )
 | 
				
			||||||
	for _, n in ipairs(stack) do
 | 
						for _, n in ipairs(stack) do
 | 
				
			||||||
 | 
							nodeupdate(n.pos)
 | 
				
			||||||
		mesecon.on_placenode(n.pos, minetest.env:get_node(n.pos))
 | 
							mesecon.on_placenode(n.pos, minetest.env:get_node(n.pos))
 | 
				
			||||||
		mesecon:update_autoconnect(n.pos)
 | 
							mesecon:update_autoconnect(n.pos)
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -57,7 +58,6 @@ function mesecon:mvps_push(pos, dir, maximum) -- pos: pos of mvps; dir: directio
 | 
				
			|||||||
	-- remove all nodes
 | 
						-- remove all nodes
 | 
				
			||||||
	for _, n in ipairs(nodes) do
 | 
						for _, n in ipairs(nodes) do
 | 
				
			||||||
		minetest.env:remove_node(n.pos)
 | 
							minetest.env:remove_node(n.pos)
 | 
				
			||||||
		nodeupdate(n.pos)
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	-- update mesecons for removed nodes ( has to be done after all nodes have been removed )
 | 
						-- update mesecons for removed nodes ( has to be done after all nodes have been removed )
 | 
				
			||||||
@@ -70,7 +70,6 @@ function mesecon:mvps_push(pos, dir, maximum) -- pos: pos of mvps; dir: directio
 | 
				
			|||||||
	for _, n in ipairs(nodes) do
 | 
						for _, n in ipairs(nodes) do
 | 
				
			||||||
		np = mesecon:addPosRule(n.pos, dir)
 | 
							np = mesecon:addPosRule(n.pos, dir)
 | 
				
			||||||
		minetest.env:add_node(np, n.node)
 | 
							minetest.env:add_node(np, n.node)
 | 
				
			||||||
		nodeupdate(np)
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for i in ipairs(nodes) do
 | 
						for i in ipairs(nodes) do
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -153,10 +153,12 @@ minetest.register_node("mesecons_pistons:piston_normal_on", {
 | 
				
			|||||||
		"mesecons_piston_back.png", 
 | 
							"mesecons_piston_back.png", 
 | 
				
			||||||
		"mesecons_piston_on_front.png"
 | 
							"mesecons_piston_on_front.png"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	after_dig_node = piston_remove_pusher,
 | 
						after_dig_node = piston_remove_pusher,
 | 
				
			||||||
	node_box = piston_on_box,
 | 
						node_box = piston_on_box,
 | 
				
			||||||
	selection_box = piston_on_box,
 | 
						selection_box = piston_on_box,
 | 
				
			||||||
@@ -230,10 +232,12 @@ minetest.register_node("mesecons_pistons:piston_sticky_on", {
 | 
				
			|||||||
		"mesecons_piston_back.png", 
 | 
							"mesecons_piston_back.png", 
 | 
				
			||||||
		"mesecons_piston_on_front.png"
 | 
							"mesecons_piston_on_front.png"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	after_dig_node = piston_remove_pusher,
 | 
						after_dig_node = piston_remove_pusher,
 | 
				
			||||||
	node_box = piston_on_box,
 | 
						node_box = piston_on_box,
 | 
				
			||||||
	selection_box = piston_on_box,
 | 
						selection_box = piston_on_box,
 | 
				
			||||||
@@ -303,9 +307,11 @@ minetest.register_node("mesecons_pistons:piston_up_normal_off", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png", 
 | 
							"mesecons_piston_bottom.png", 
 | 
				
			||||||
		"mesecons_piston_top.png^[transformR180", 
 | 
							"mesecons_piston_top.png^[transformR180", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	mesecons_piston = pistonspec_normal_up,
 | 
						mesecons_piston = pistonspec_normal_up,
 | 
				
			||||||
	mesecons = {effector={
 | 
						mesecons = {effector={
 | 
				
			||||||
		action_on = piston_on,
 | 
							action_on = piston_on,
 | 
				
			||||||
@@ -323,10 +329,12 @@ minetest.register_node("mesecons_pistons:piston_up_normal_on", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png", 
 | 
							"mesecons_piston_bottom.png", 
 | 
				
			||||||
		"mesecons_piston_top.png^[transformR180", 
 | 
							"mesecons_piston_top.png^[transformR180", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	after_dig_node = piston_remove_pusher,
 | 
						after_dig_node = piston_remove_pusher,
 | 
				
			||||||
	node_box = piston_up_on_box,
 | 
						node_box = piston_up_on_box,
 | 
				
			||||||
	selection_box = piston_up_on_box,
 | 
						selection_box = piston_up_on_box,
 | 
				
			||||||
@@ -379,9 +387,11 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_off", {
 | 
				
			|||||||
		"mesecons_piston_top.png^[transformR180", 
 | 
							"mesecons_piston_top.png^[transformR180", 
 | 
				
			||||||
		"mesecons_piston_tb.png"
 | 
							"mesecons_piston_tb.png"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_sticky_off"},
 | 
						drop = "mesecons_pistons:piston_sticky_off",
 | 
				
			||||||
	mesecons_piston = pistonspec_sticky_up,
 | 
						mesecons_piston = pistonspec_sticky_up,
 | 
				
			||||||
	mesecons = {effector={
 | 
						mesecons = {effector={
 | 
				
			||||||
		action_on = piston_on,
 | 
							action_on = piston_on,
 | 
				
			||||||
@@ -399,10 +409,12 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_on", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png", 
 | 
							"mesecons_piston_bottom.png", 
 | 
				
			||||||
		"mesecons_piston_top.png^[transformR180", 
 | 
							"mesecons_piston_top.png^[transformR180", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	after_dig_node = piston_remove_pusher,
 | 
						after_dig_node = piston_remove_pusher,
 | 
				
			||||||
	node_box = piston_up_on_box,
 | 
						node_box = piston_up_on_box,
 | 
				
			||||||
	selection_box = piston_up_on_box,
 | 
						selection_box = piston_up_on_box,
 | 
				
			||||||
@@ -473,9 +485,11 @@ minetest.register_node("mesecons_pistons:piston_down_normal_off", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png^[transformR180", 
 | 
							"mesecons_piston_bottom.png^[transformR180", 
 | 
				
			||||||
		"mesecons_piston_top.png", 
 | 
							"mesecons_piston_top.png", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	mesecons_piston = pistonspec_normal_down,
 | 
						mesecons_piston = pistonspec_normal_down,
 | 
				
			||||||
	mesecons = {effector={
 | 
						mesecons = {effector={
 | 
				
			||||||
		action_on = piston_on,
 | 
							action_on = piston_on,
 | 
				
			||||||
@@ -493,10 +507,12 @@ minetest.register_node("mesecons_pistons:piston_down_normal_on", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png^[transformR180", 
 | 
							"mesecons_piston_bottom.png^[transformR180", 
 | 
				
			||||||
		"mesecons_piston_top.png", 
 | 
							"mesecons_piston_top.png", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_normal_off"},
 | 
						drop = "mesecons_pistons:piston_normal_off",
 | 
				
			||||||
	after_dig_node = piston_remove_pusher,
 | 
						after_dig_node = piston_remove_pusher,
 | 
				
			||||||
	node_box = piston_down_on_box,
 | 
						node_box = piston_down_on_box,
 | 
				
			||||||
	selection_box = piston_down_on_box,
 | 
						selection_box = piston_down_on_box,
 | 
				
			||||||
@@ -545,9 +561,11 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_off", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png^[transformR180", 
 | 
							"mesecons_piston_bottom.png^[transformR180", 
 | 
				
			||||||
		"mesecons_piston_top.png", 
 | 
							"mesecons_piston_top.png", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_sticky_off"},
 | 
						drop = "mesecons_pistons:piston_sticky_off",
 | 
				
			||||||
	mesecons_piston = pistonspec_sticky_down,
 | 
						mesecons_piston = pistonspec_sticky_down,
 | 
				
			||||||
	mesecons = {effector={
 | 
						mesecons = {effector={
 | 
				
			||||||
		action_on = piston_on,
 | 
							action_on = piston_on,
 | 
				
			||||||
@@ -565,10 +583,12 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_on", {
 | 
				
			|||||||
		"mesecons_piston_bottom.png^[transformR180", 
 | 
							"mesecons_piston_bottom.png^[transformR180", 
 | 
				
			||||||
		"mesecons_piston_top.png", 
 | 
							"mesecons_piston_top.png", 
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
						inventory_image = "mesecons_piston_top.png",
 | 
				
			||||||
 | 
						wield_image = "mesecons_piston_top.png",
 | 
				
			||||||
	groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
						groups = {cracky = 3, not_in_creative_inventory = 1},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drop = {"mesecons_pistons:piston_sticky_off"},
 | 
						drop = "mesecons_pistons:piston_sticky_off",
 | 
				
			||||||
	after_dig_node = piston_remove_pusher,
 | 
						after_dig_node = piston_remove_pusher,
 | 
				
			||||||
	node_box = piston_down_on_box,
 | 
						node_box = piston_down_on_box,
 | 
				
			||||||
	selection_box = piston_down_on_box,
 | 
						selection_box = piston_down_on_box,
 | 
				
			||||||
@@ -670,7 +690,7 @@ mesecon:register_mvps_stopper("mesecons_pistons:piston_down_sticky_on", piston_u
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--craft recipes
 | 
					--craft recipes
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	output = '"mesecons_pistons:piston_normal" 2',
 | 
						output = 'mesecons_pistons:piston_normal_off 2',
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{"default:wood", "default:wood", "default:wood"},
 | 
							{"default:wood", "default:wood", "default:wood"},
 | 
				
			||||||
		{"default:cobble", "default:steel_ingot", "default:cobble"},
 | 
							{"default:cobble", "default:steel_ingot", "default:cobble"},
 | 
				
			||||||
@@ -679,9 +699,9 @@ minetest.register_craft({
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	output = "mesecons_pistons:piston_sticky",
 | 
						output = "mesecons_pistons:piston_sticky_off",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{"mesecons_materials:glue"},
 | 
							{"mesecons_materials:glue"},
 | 
				
			||||||
		{"mesecons_pistons:piston_normal"},
 | 
							{"mesecons_pistons:piston_normal_off"},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,10 +31,17 @@ minetest.register_node("mesecons_random:ghoststone", {
 | 
				
			|||||||
	inventory_image = minetest.inventorycube("jeija_ghoststone_inv.png"),
 | 
						inventory_image = minetest.inventorycube("jeija_ghoststone_inv.png"),
 | 
				
			||||||
	groups = {cracky=3},
 | 
						groups = {cracky=3},
 | 
				
			||||||
	sounds = default.node_sound_stone_defaults(),
 | 
						sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
	mesecons = {effector = {
 | 
						mesecons = {conductor = {
 | 
				
			||||||
		action_on = function (pos, node)
 | 
							state = mesecon.state.off,
 | 
				
			||||||
			minetest.env:add_node(pos, {name="mesecons_random:ghoststone_active"})
 | 
							rules = { --axes
 | 
				
			||||||
		end
 | 
								{x = -1, y = 0, z = 0},
 | 
				
			||||||
 | 
								{x = 1, y = 0, z = 0},
 | 
				
			||||||
 | 
								{x = 0, y = -1, z = 0},
 | 
				
			||||||
 | 
								{x = 0, y = 1, z = 0},
 | 
				
			||||||
 | 
								{x = 0, y = 0, z = -1},
 | 
				
			||||||
 | 
								{x = 0, y = 0, z = 1},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							onstate = "mesecons_random:ghoststone_active"
 | 
				
			||||||
	}}
 | 
						}}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,11 +51,26 @@ minetest.register_node("mesecons_random:ghoststone_active", {
 | 
				
			|||||||
	walkable = false,
 | 
						walkable = false,
 | 
				
			||||||
	diggable = false,
 | 
						diggable = false,
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
	mesecons = {effector = {
 | 
						paramtype = "light",
 | 
				
			||||||
		action_off = function (pos, node)
 | 
						mesecons = {conductor = {
 | 
				
			||||||
			minetest.env:add_node(pos, {name="mesecons_random:ghoststone"})
 | 
							state = mesecon.state.on,
 | 
				
			||||||
 | 
							rules = {
 | 
				
			||||||
 | 
								{x = -1, y = 0, z = 0},
 | 
				
			||||||
 | 
								{x = 1, y = 0, z = 0},
 | 
				
			||||||
 | 
								{x = 0, y = -1, z = 0},
 | 
				
			||||||
 | 
								{x = 0, y = 1, z = 0},
 | 
				
			||||||
 | 
								{x = 0, y = 0, z = -1},
 | 
				
			||||||
 | 
								{x = 0, y = 0, z = 1},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							offstate = "mesecons_random:ghoststone"
 | 
				
			||||||
 | 
						}},
 | 
				
			||||||
 | 
						on_construct = function(pos)
 | 
				
			||||||
 | 
							--remove shadow
 | 
				
			||||||
 | 
							pos2 = {x = pos.x, y = pos.y + 1, z = pos.z}
 | 
				
			||||||
 | 
							if ( minetest.env:get_node(pos2).name == "air" ) then
 | 
				
			||||||
 | 
								minetest.env:dig_node(pos2)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	}}
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -128,8 +128,10 @@ function mesecon:receiver_remove(rcpt_pos, dugnode)
 | 
				
			|||||||
	local nn = minetest.env:get_node(pos)
 | 
						local nn = minetest.env:get_node(pos)
 | 
				
			||||||
	if string.find(nn.name, "mesecons_receiver:receiver_") ~=nil then
 | 
						if string.find(nn.name, "mesecons_receiver:receiver_") ~=nil then
 | 
				
			||||||
		minetest.env:dig_node(pos)
 | 
							minetest.env:dig_node(pos)
 | 
				
			||||||
		minetest.env:place_node(pos, {name = "mesecons:wire_00000000_off"})
 | 
							local node = {name = "mesecons:wire_00000000_off"}
 | 
				
			||||||
 | 
							minetest.env:add_node(pos, node)
 | 
				
			||||||
		mesecon:update_autoconnect(pos)
 | 
							mesecon:update_autoconnect(pos)
 | 
				
			||||||
 | 
							mesecon.on_placenode(pos, node)
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user