mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-12-23 00:19:32 +01:00
Tweak button/pressure plate connection sides
This commit is contained in:
parent
427eb32448
commit
be135b7066
2 changed files with 34 additions and 5 deletions
|
@ -10,9 +10,22 @@ local button_get_output_rules = function(node)
|
|||
{x = 0, y = 0, z = -1},
|
||||
{x = 0, y = 0, z = 1},
|
||||
{x = 0, y = -1, z = 0},
|
||||
{x = 0, y = 1, z = 0},
|
||||
}
|
||||
if minetest.wallmounted_to_dir(node.param2).y == 1 then
|
||||
table.insert(rules, {x=0, y=1, z=1})
|
||||
table.insert(rules, {x=0, y=2, z=0})
|
||||
elseif minetest.wallmounted_to_dir(node.param2).y == -1 then
|
||||
table.insert(rules, {x=0, y=-2, z=0})
|
||||
end
|
||||
if minetest.wallmounted_to_dir(node.param2).x == 1 then
|
||||
table.insert(rules, {x=2, y=0, z=0})
|
||||
elseif minetest.wallmounted_to_dir(node.param2).x == -1 then
|
||||
table.insert(rules, {x=-2, y=0, z=0})
|
||||
end
|
||||
if minetest.wallmounted_to_dir(node.param2).z == 1 then
|
||||
table.insert(rules, {x=0, y=0, z=2})
|
||||
elseif minetest.wallmounted_to_dir(node.param2).z == -1 then
|
||||
table.insert(rules, {x=-0, y=0, z=-2})
|
||||
end
|
||||
return rules
|
||||
end
|
||||
|
|
|
@ -10,6 +10,22 @@ local pp_box_on = {
|
|||
fixed = { -7/16, -8/16, -7/16, 7/16, -7.5/16, 7/16 },
|
||||
}
|
||||
|
||||
local pplate_rules = {
|
||||
{x=-1, y=0, z=0},
|
||||
{x=1, y=0, z=0},
|
||||
{x=0, y=0, z=-1},
|
||||
{x=0, y=0, z=1},
|
||||
|
||||
{x=-1, y=-1, z=0},
|
||||
{x=1, y=-1, z=0},
|
||||
{x=0, y=-1, z=-1},
|
||||
{x=0, y=-1, z=1},
|
||||
|
||||
{x=0, y=-1, z=0},
|
||||
{x=0, y=-2, z=0},
|
||||
{x=0, y=1, z=0},
|
||||
}
|
||||
|
||||
local function pp_on_timer(pos, elapsed)
|
||||
local node = minetest.get_node(pos)
|
||||
local basename = minetest.registered_nodes[node.name].pressureplate_basename
|
||||
|
@ -52,7 +68,7 @@ local function pp_on_timer(pos, elapsed)
|
|||
end
|
||||
if disable then
|
||||
minetest.set_node(pos, {name = basename .. "_off"})
|
||||
mesecon.receptor_off(pos, mesecon.rules.pplate)
|
||||
mesecon.receptor_off(pos, pplate_rules)
|
||||
end
|
||||
elseif node.name == basename .. "_off" then
|
||||
for k, obj in pairs(objs) do
|
||||
|
@ -60,7 +76,7 @@ local function pp_on_timer(pos, elapsed)
|
|||
if obj_does_activate(obj, activated_by) then
|
||||
if objpos.y > pos.y-1 and objpos.y < pos.y then
|
||||
minetest.set_node(pos, {name = basename .. "_on"})
|
||||
mesecon.receptor_on(pos, mesecon.rules.pplate )
|
||||
mesecon.receptor_on(pos, pplate_rules)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
@ -119,7 +135,7 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te
|
|||
groups = groups_off,
|
||||
tiles = textures_off,
|
||||
|
||||
mesecons = {receptor = { state = mesecon.state.off, rules = mesecon.rules.pplate }},
|
||||
mesecons = {receptor = { state = mesecon.state.off, rules = pplate_rules }},
|
||||
_doc_items_longdesc = longdesc,
|
||||
},{
|
||||
node_box = pp_box_on,
|
||||
|
@ -127,7 +143,7 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te
|
|||
groups = groups_on,
|
||||
tiles = textures_on,
|
||||
|
||||
mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.pplate }},
|
||||
mesecons = {receptor = { state = mesecon.state.on, rules = pplate_rules }},
|
||||
_doc_items_create_entry = false,
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue