1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-07-12 04:40:21 +02:00
Conflicts:
	mods/mesecons/mesecons/internal.lua
	mods/mesecons/mesecons/services.lua
	mods/mesecons/mesecons/util.lua
	mods/mesecons/mesecons_gates/init.lua
	mods/mesecons/mesecons_luacontroller/init.lua
	mods/mesecons/mesecons_movestones/init.lua
	mods/mesecons/mesecons_mvps/init.lua
	mods/mesecons/mesecons_pistons/init.lua
This commit is contained in:
LeMagnesium
2014-11-29 18:56:39 +01:00
230 changed files with 6746 additions and 136 deletions

View File

@ -240,10 +240,14 @@ function mesecon.changesignal(pos, node, rulename, newstate, depth)
return
end
<<<<<<< HEAD
-- Include "change" in overwritecheck so that it cannot be overwritten
-- by "active" / "deactivate" that will be called upon the node at the same time.
local overwritecheck = {"change", rulename}
mesecon.queue:add_action(pos, "change", {rulename, newstate}, nil, overwritecheck, 1 / depth)
=======
mesecon.queue:add_action(pos, "change", {rulename, newstate}, nil, rulename, 1 / depth)
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
-- Conductors
@ -517,7 +521,14 @@ function mesecon.rules_link(output, input, dug_outputrules) --output/input are p
for _, inputrule in ipairs(mesecon.flattenrules(inputrules)) do
-- Check if input accepts from output
if mesecon.cmpPos(mesecon.addPosRule(input, inputrule), output) then
<<<<<<< HEAD
return true, inputrule
=======
if inputrule.sx == nil or outputrule.sx == nil
or mesecon.cmpSpecial(inputrule, outputrule) then
return true, inputrule
end
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
end
end
@ -537,7 +548,14 @@ function mesecon.rules_link_rule_all(output, rule)
for _, inputrule in ipairs(mesecon.flattenrules(inputrules)) do
-- Check if input accepts from output
if mesecon.cmpPos(mesecon.addPosRule(input, inputrule), output) then
<<<<<<< HEAD
table.insert(rules, inputrule)
=======
if inputrule.sx == nil or rule.sx == nil
or mesecon.cmpSpecial(inputrule, rule) then
table.insert(rules, inputrule)
end
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
end
return rules
@ -555,7 +573,14 @@ function mesecon.rules_link_rule_all_inverted(input, rule)
for _, outputrule in ipairs(mesecon.flattenrules(outputrules)) do
if mesecon.cmpPos(mesecon.addPosRule(output, outputrule), input) then
<<<<<<< HEAD
table.insert(rules, mesecon.invertRule(outputrule))
=======
if outputrule.sx == nil or rule.sx == nil
or mesecon.cmpSpecial(outputrule, rule) then
table.insert(rules, mesecon.invertRule(outputrule))
end
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
end
return rules
@ -592,7 +617,11 @@ function mesecon.is_powered(pos, rule)
local nn = minetest.get_node(np)
if (mesecon.is_conductor_on (nn, mesecon.invertRule(rname))
or mesecon.is_receptor_on (nn.name)) then
<<<<<<< HEAD
table.insert(sourcepos, np)
=======
sourcepos.insert(np)
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
end
end

View File

@ -27,6 +27,7 @@ mesecon.on_placenode = function (pos, node)
-- Effectors: Send changesignal and activate or deactivate
if mesecon.is_effector(node.name) then
<<<<<<< HEAD
local powered_rules = {}
local unpowered_rules = {}
@ -48,6 +49,14 @@ mesecon.on_placenode = function (pos, node)
for _, r in ipairs(unpowered_rules) do
mesecon.deactivate(pos, node, r, 1)
end
=======
if mesecon.is_powered(pos) then
mesecon.changesignal(pos, node, mesecon.effector_get_rules(node), "on", 1)
mesecon.activate(pos, node, nil, 1)
else
mesecon.changesignal(pos, node, mesecon.effector_get_rules(node), "off", 1)
mesecon.deactivate(pos, node, nil, 1)
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
end
end

View File

@ -62,7 +62,11 @@ function mesecon.rule2bit(findrule, allrules)
end
for m,metarule in ipairs( allrules) do
for _, rule in ipairs(metarule ) do
<<<<<<< HEAD
if mesecon.cmpPos(findrule, rule) then
=======
if mesecon.cmpPos(findrule, rule) and mesecon.cmpSpecial(findrule, rule) then
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
return m
end
end
@ -82,7 +86,11 @@ function mesecon.rule2metaindex(findrule, allrules)
for m, metarule in ipairs( allrules) do
for _, rule in ipairs(metarule ) do
<<<<<<< HEAD
if mesecon.cmpPos(findrule, rule) then
=======
if mesecon.cmpPos(findrule, rule) and mesecon.cmpSpecial(findrule, rule) then
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
return m
end
end
@ -153,7 +161,11 @@ function mesecon.set_bit(binary,bit,value)
end
function mesecon.invertRule(r)
<<<<<<< HEAD
return {x = -r.x, y = -r.y, z = -r.z}
=======
return {x = -r.x, y = -r.y, z = -r.z, sx = r.sx, sy = r.sy, sz = r.sz}
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
end
function mesecon.addPosRule(p, r)
@ -164,6 +176,13 @@ function mesecon.cmpPos(p1, p2)
return (p1.x == p2.x and p1.y == p2.y and p1.z == p2.z)
end
<<<<<<< HEAD
=======
function mesecon.cmpSpecial(r1, r2)
return (r1.sx == r2.sx and r1.sy == r2.sy and r1.sz == r2.sz)
end
>>>>>>> b86fd8cfa9dadcc359b95cdc1135488beae0f467
function mesecon.tablecopy(table) -- deep table copy
if type(table) ~= "table" then return table end -- no need to copy
local newtable = {}