mirror of
https://github.com/minetest-mods/mesecons.git
synced 2024-12-25 09:50:19 +01:00
Merge branch 'master' into luacontroller
This commit is contained in:
commit
10ea3c971b
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user