mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-18 00:51:06 +01:00
Clean up the redstone rules
This commit is contained in:
parent
54c0d1d750
commit
e4ab20509f
7 changed files with 44 additions and 79 deletions
|
@ -15,22 +15,6 @@ mesecon.rules.default =
|
||||||
{x=0, y=1, z=-1},
|
{x=0, y=1, z=-1},
|
||||||
{x=0, y=-1, z=-1}}
|
{x=0, y=-1, z=-1}}
|
||||||
|
|
||||||
mesecon.rules.pplate = mesecon.mergetable(mesecon.rules.default, {{x=0, y=-2, z=0}})
|
|
||||||
|
|
||||||
mesecon.rules.buttonlike =
|
|
||||||
{{x = 1, y = 0, z = 0},
|
|
||||||
{x = 1, y = 1, z = 0},
|
|
||||||
{x = 1, y =-1, z = 0},
|
|
||||||
{x = 1, y =-1, z = 1},
|
|
||||||
{x = 1, y =-1, z =-1},
|
|
||||||
{x = 2, y = 0, z = 0}}
|
|
||||||
|
|
||||||
mesecon.rules.flat =
|
|
||||||
{{x = 1, y = 0, z = 0},
|
|
||||||
{x =-1, y = 0, z = 0},
|
|
||||||
{x = 0, y = 0, z = 1},
|
|
||||||
{x = 0, y = 0, z =-1}}
|
|
||||||
|
|
||||||
mesecon.rules.alldirs =
|
mesecon.rules.alldirs =
|
||||||
{{x= 1, y= 0, z= 0},
|
{{x= 1, y= 0, z= 0},
|
||||||
{x=-1, y= 0, z= 0},
|
{x=-1, y= 0, z= 0},
|
||||||
|
@ -39,6 +23,42 @@ mesecon.rules.alldirs =
|
||||||
{x= 0, y= 0, z= 1},
|
{x= 0, y= 0, z= 1},
|
||||||
{x= 0, y= 0, z=-1}}
|
{x= 0, y= 0, z=-1}}
|
||||||
|
|
||||||
|
mesecon.rules.pplate =
|
||||||
|
{{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},
|
||||||
|
{x = 0, y = -2, z = 0},
|
||||||
|
{x = 1, y = -1, z = 0},
|
||||||
|
{x =-1, y = -1, z = 0},
|
||||||
|
{x = 0, y = -1, z = 1},
|
||||||
|
{x = 0, y = -1, z =-1}}
|
||||||
|
|
||||||
|
mesecon.rules.buttonlike =
|
||||||
|
{{x = 1, y = 0, z = 0},
|
||||||
|
{x = 1, y = 1, z = 0},
|
||||||
|
{x = 1, y =-1, z = 0},
|
||||||
|
{x = 1, y = 0, z =-1},
|
||||||
|
{x = 1, y = 0, z = 1},
|
||||||
|
{x = 2, y = 0, z = 0},
|
||||||
|
{x = 0, y = 1, z = 0},
|
||||||
|
{x = 0, y = -1, z = 0},
|
||||||
|
{x =-1, y = 0, z = 0},
|
||||||
|
{x = 0, y = 0, z = 1},
|
||||||
|
{x = 0, y = 0, z =-1}}
|
||||||
|
|
||||||
|
mesecon.rules.flat =
|
||||||
|
{{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 = 2, y = 0, z = 0},
|
||||||
|
{x =-2, y = 0, z = 0},
|
||||||
|
{x = 0, y = 0, z = 2},
|
||||||
|
{x = 0, y = 0, z =-2}}
|
||||||
|
|
||||||
mesecon.rules.buttonlike_get = function(node)
|
mesecon.rules.buttonlike_get = function(node)
|
||||||
local rules = mesecon.rules.buttonlike
|
local rules = mesecon.rules.buttonlike
|
||||||
local dir = minetest.facedir_to_dir(node.param2)
|
local dir = minetest.facedir_to_dir(node.param2)
|
||||||
|
|
|
@ -2,11 +2,7 @@
|
||||||
-- A button that when pressed emits power for 1 second
|
-- A button that when pressed emits power for 1 second
|
||||||
-- and then turns off again
|
-- and then turns off again
|
||||||
|
|
||||||
-- FIXME: Power node behind as well
|
local button_get_output_rules = mesecon.rules.buttonlike_get
|
||||||
local button_get_output_rules = function(node)
|
|
||||||
local rules = mesecon.rules.alldirs
|
|
||||||
return rules
|
|
||||||
end
|
|
||||||
|
|
||||||
local boxes_off = {
|
local boxes_off = {
|
||||||
type = "wallmounted",
|
type = "wallmounted",
|
||||||
|
|
|
@ -26,7 +26,8 @@ The note block will only play a note when it is below air, otherwise, it stays s
|
||||||
mesecons = {effector = { -- play sound when activated
|
mesecons = {effector = { -- play sound when activated
|
||||||
action_on = function (pos, node)
|
action_on = function (pos, node)
|
||||||
mesecon.noteblock_play(pos, node.param2)
|
mesecon.noteblock_play(pos, node.param2)
|
||||||
end
|
end,
|
||||||
|
rules = mesecon.rules.alldirs,
|
||||||
}},
|
}},
|
||||||
_mcl_blast_resistance = 4,
|
_mcl_blast_resistance = 4,
|
||||||
_mcl_hardness = 0.8,
|
_mcl_hardness = 0.8,
|
||||||
|
|
|
@ -10,22 +10,6 @@ local pp_box_on = {
|
||||||
fixed = { -7/16, -8/16, -7/16, 7/16, -7.5/16, 7/16 },
|
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 function pp_on_timer(pos, elapsed)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local basename = minetest.registered_nodes[node.name].pressureplate_basename
|
local basename = minetest.registered_nodes[node.name].pressureplate_basename
|
||||||
|
@ -68,7 +52,7 @@ local function pp_on_timer(pos, elapsed)
|
||||||
end
|
end
|
||||||
if disable then
|
if disable then
|
||||||
minetest.set_node(pos, {name = basename .. "_off"})
|
minetest.set_node(pos, {name = basename .. "_off"})
|
||||||
mesecon.receptor_off(pos, pplate_rules)
|
mesecon.receptor_off(pos, mesecon.rules.pplate)
|
||||||
end
|
end
|
||||||
elseif node.name == basename .. "_off" then
|
elseif node.name == basename .. "_off" then
|
||||||
for k, obj in pairs(objs) do
|
for k, obj in pairs(objs) do
|
||||||
|
@ -76,7 +60,7 @@ local function pp_on_timer(pos, elapsed)
|
||||||
if obj_does_activate(obj, activated_by) then
|
if obj_does_activate(obj, activated_by) then
|
||||||
if objpos.y > pos.y-1 and objpos.y < pos.y then
|
if objpos.y > pos.y-1 and objpos.y < pos.y then
|
||||||
minetest.set_node(pos, {name = basename .. "_on"})
|
minetest.set_node(pos, {name = basename .. "_on"})
|
||||||
mesecon.receptor_on(pos, pplate_rules)
|
mesecon.receptor_on(pos, mesecon.rules.pplate)
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -137,7 +121,7 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te
|
||||||
groups = groups_off,
|
groups = groups_off,
|
||||||
tiles = textures_off,
|
tiles = textures_off,
|
||||||
|
|
||||||
mesecons = {receptor = { state = mesecon.state.off, rules = pplate_rules }},
|
mesecons = {receptor = { state = mesecon.state.off, rules = mesecon.rules.pplate }},
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
},{
|
},{
|
||||||
node_box = pp_box_on,
|
node_box = pp_box_on,
|
||||||
|
@ -145,7 +129,7 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te
|
||||||
groups = groups_on,
|
groups = groups_on,
|
||||||
tiles = textures_on,
|
tiles = textures_on,
|
||||||
|
|
||||||
mesecons = {receptor = { state = mesecon.state.on, rules = pplate_rules }},
|
mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.pplate }},
|
||||||
_doc_items_create_entry = false,
|
_doc_items_create_entry = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,4 @@
|
||||||
local lever_get_output_rules = function(node)
|
local lever_get_output_rules = mesecon.rules.buttonlike_get
|
||||||
local 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 = 0, y = -1, z = 0},
|
|
||||||
{x = 0, y = 1, z = 0},
|
|
||||||
}
|
|
||||||
local dir = minetest.facedir_to_dir(node.param2)
|
|
||||||
dir = vector.multiply(dir, 2)
|
|
||||||
table.insert(rules, dir)
|
|
||||||
return rules
|
|
||||||
end
|
|
||||||
|
|
||||||
-- LEVER
|
-- LEVER
|
||||||
minetest.register_node("mesecons_walllever:wall_lever_off", {
|
minetest.register_node("mesecons_walllever:wall_lever_off", {
|
||||||
|
|
|
@ -235,13 +235,6 @@ function mcl_doors:register_door(name, def)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local mrules = {
|
|
||||||
{x = 0, y = 0, z = -1},
|
|
||||||
{x = 1, y = 0, z = 0},
|
|
||||||
{x = -1, y = 0, z = 0},
|
|
||||||
{x = 0, y = 0, z = 1},
|
|
||||||
}
|
|
||||||
|
|
||||||
minetest.register_node(name.."_b_1", {
|
minetest.register_node(name.."_b_1", {
|
||||||
tiles = {"blank.png", tt[2].."^[transformFXR90", tb[2], tb[2].."^[transformFX", tb[1], tb[1].."^[transformFX"},
|
tiles = {"blank.png", tt[2].."^[transformFXR90", tb[2], tb[2].."^[transformFX", tb[1], tb[1].."^[transformFX"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -274,7 +267,6 @@ function mcl_doors:register_door(name, def)
|
||||||
|
|
||||||
mesecons = { effector = {
|
mesecons = { effector = {
|
||||||
action_on = on_mesecons_signal_open,
|
action_on = on_mesecons_signal_open,
|
||||||
rules = mrules,
|
|
||||||
}},
|
}},
|
||||||
|
|
||||||
can_dig = check_player_priv,
|
can_dig = check_player_priv,
|
||||||
|
@ -322,7 +314,6 @@ function mcl_doors:register_door(name, def)
|
||||||
|
|
||||||
mesecons = { effector = {
|
mesecons = { effector = {
|
||||||
action_on = on_mesecons_signal_open_top,
|
action_on = on_mesecons_signal_open_top,
|
||||||
rules = mrules,
|
|
||||||
}},
|
}},
|
||||||
|
|
||||||
can_dig = check_player_priv,
|
can_dig = check_player_priv,
|
||||||
|
@ -370,7 +361,6 @@ function mcl_doors:register_door(name, def)
|
||||||
|
|
||||||
mesecons = { effector = {
|
mesecons = { effector = {
|
||||||
action_off = on_mesecons_signal_close,
|
action_off = on_mesecons_signal_close,
|
||||||
rules = mrules,
|
|
||||||
}},
|
}},
|
||||||
|
|
||||||
can_dig = check_player_priv,
|
can_dig = check_player_priv,
|
||||||
|
@ -418,7 +408,6 @@ function mcl_doors:register_door(name, def)
|
||||||
|
|
||||||
mesecons = { effector = {
|
mesecons = { effector = {
|
||||||
action_off = on_mesecons_signal_close_top,
|
action_off = on_mesecons_signal_close_top,
|
||||||
rules = mrules,
|
|
||||||
}},
|
}},
|
||||||
|
|
||||||
can_dig = check_player_priv,
|
can_dig = check_player_priv,
|
||||||
|
|
|
@ -13,14 +13,6 @@ local mcl_hoppers_formspec =
|
||||||
"listring[current_name;main]"..
|
"listring[current_name;main]"..
|
||||||
"listring[current_player;main]"
|
"listring[current_player;main]"
|
||||||
|
|
||||||
local redstone_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}}
|
|
||||||
|
|
||||||
-- Downwards hopper (base definition)
|
-- Downwards hopper (base definition)
|
||||||
|
|
||||||
local def_hopper = {
|
local def_hopper = {
|
||||||
|
@ -153,7 +145,6 @@ def_hopper_enabled.mesecons = {
|
||||||
action_on = function(pos, node)
|
action_on = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper_disabled", param2=node.param2})
|
minetest.swap_node(pos, {name="mcl_hoppers:hopper_disabled", param2=node.param2})
|
||||||
end,
|
end,
|
||||||
rules = redstone_rules,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,7 +161,6 @@ def_hopper_disabled.mesecons = {
|
||||||
action_off = function(pos, node)
|
action_off = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper", param2=node.param2})
|
minetest.swap_node(pos, {name="mcl_hoppers:hopper", param2=node.param2})
|
||||||
end,
|
end,
|
||||||
rules = redstone_rules,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,7 +257,6 @@ def_hopper_side_enabled.mesecons = {
|
||||||
action_on = function(pos, node)
|
action_on = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper_side_disabled", param2=node.param2})
|
minetest.swap_node(pos, {name="mcl_hoppers:hopper_side_disabled", param2=node.param2})
|
||||||
end,
|
end,
|
||||||
rules = redstone_rules,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
minetest.register_node("mcl_hoppers:hopper_side", def_hopper_side_enabled)
|
minetest.register_node("mcl_hoppers:hopper_side", def_hopper_side_enabled)
|
||||||
|
@ -279,7 +268,6 @@ def_hopper_side_disabled.mesecons = {
|
||||||
action_off = function(pos, node)
|
action_off = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper_side", param2=node.param2})
|
minetest.swap_node(pos, {name="mcl_hoppers:hopper_side", param2=node.param2})
|
||||||
end,
|
end,
|
||||||
rules = redstone_rules,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
minetest.register_node("mcl_hoppers:hopper_side_disabled", def_hopper_side_disabled)
|
minetest.register_node("mcl_hoppers:hopper_side_disabled", def_hopper_side_disabled)
|
||||||
|
|
Loading…
Reference in a new issue