remove debug-lines
This commit is contained in:
parent
3f3e7cc995
commit
150125c218
|
@ -49,7 +49,6 @@ function comparator_removevoltage(pos, link, voltage)
|
|||
|
||||
|
||||
local cur_vol = voltage+1
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_removevoltage" .. " v="..cur_vol)
|
||||
|
||||
local frontiers = {{pos = pos, link = link, voltage=cur_vol}}
|
||||
|
||||
|
@ -91,7 +90,6 @@ end
|
|||
-- Functions that set the correct node type an schedule a turnon/off
|
||||
|
||||
local function comparator_activate(pos, node, voltage, lower_voltage, old_voltage)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_activate" .. " v="..voltage .. " lv=" .. tostring(lower_voltage))
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
minetest.swap_node(pos, { name = def.comparator_onstate, param2 = node.param2 })
|
||||
minetest.after(0.1, comparator_turnon , {pos = pos, node = node, voltage = voltage, lower_voltage=lower_voltage, old_voltage=old_voltage})
|
||||
|
@ -99,7 +97,6 @@ end
|
|||
|
||||
|
||||
local function comparator_deactivate(pos, node)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_deactivate " .. mesecon.postostring(pos))
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
minetest.swap_node(pos, { name = def.comparator_offstate, param2 = node.param2 })
|
||||
minetest.after(0.1, comparator_turnoff, {pos = pos, node = node})
|
||||
|
@ -118,14 +115,11 @@ local function container_inventory_nonempty(pos, rule)
|
|||
-- Ignore stale nodes
|
||||
if not invnodedef then return 0, false end
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.1")
|
||||
|
||||
-- Only accept containers. When a container is dug, it's inventory
|
||||
-- seems to stay. and we don't want to accept the inventory of an air
|
||||
-- block
|
||||
if not invnodedef.groups.container then
|
||||
if minetest.get_item_group(invnode.name, "opaque") == 1 and rule then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.2")
|
||||
--found opaque block -> check next block
|
||||
local backback_pos = vector.add(pos, rule)
|
||||
local bb_voltage, _ = container_inventory_nonempty(backback_pos, nil)
|
||||
|
@ -135,21 +129,14 @@ local function container_inventory_nonempty(pos, rule)
|
|||
end
|
||||
end
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.3")
|
||||
local inv = minetest.get_inventory({type="node", pos=pos})
|
||||
if not inv then return 0, false end
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.4")
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.inv= " .. mesecon.tabletostring(inv:get_lists()))
|
||||
|
||||
|
||||
if invnode.name=="mcl_jukebox:jukebox" then
|
||||
if not inv:is_empty("main") then
|
||||
-- Jukebox contains a disc: Stop music and remove disc
|
||||
local record = inv:get_stack("main", 1)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.juke="..mesecon.tabletostring(record:get_name()))
|
||||
if mcl_jukebox.registered_records[record:get_name()] then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.juke="..mesecon.tabletostring(mcl_jukebox.registered_records[record:get_name()]))
|
||||
local ident = mcl_jukebox.registered_records[record:get_name()][3]
|
||||
local t = {
|
||||
id_13 = 1,
|
||||
|
@ -167,7 +154,6 @@ local function container_inventory_nonempty(pos, rule)
|
|||
id_Pigstep = 13,
|
||||
}
|
||||
local vol = t["id_"..ident]
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.juke "..ident.."="..vol)
|
||||
if vol then return vol, false end
|
||||
end
|
||||
end
|
||||
|
@ -178,14 +164,9 @@ local function container_inventory_nonempty(pos, rule)
|
|||
|
||||
for listname, _ in pairs(inv:get_lists()) do
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.inv.size= " .. inv:get_size(listname))
|
||||
|
||||
local stack = inv:get_stack(listname, 1)
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.inv.stack1= " .. mesecon.tabletostring(stack))
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.inv.stack1.max= " .. stack:get_stack_max())
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.inv.stack1.count= " .. stack:get_count())
|
||||
|
||||
local st_size = inv:get_size(listname)
|
||||
inv_space = inv_space + (64 * st_size)
|
||||
for i = 1,st_size do
|
||||
|
@ -195,12 +176,8 @@ local function container_inventory_nonempty(pos, rule)
|
|||
--if not inv:is_empty(listname) then return true, 15 end
|
||||
end
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.inv_space= " .. inv_space)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.item_count= " .. item_count)
|
||||
|
||||
if item_count>0 then
|
||||
local voltage = math.floor(1 + (item_count/inv_space*14))
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "container_inventory_nonempty.voltage= " .. voltage)
|
||||
return voltage, false
|
||||
end
|
||||
end
|
||||
|
@ -233,7 +210,6 @@ local function comparator_desired_on(pos, node)
|
|||
end
|
||||
|
||||
voltage = math.max(vo_back, vo_coin, vo_sso)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_desired_on1.voltage= " .. voltage .. " vb="..vo_back.." vc="..vo_coin.." vs="..vo_sso)
|
||||
end
|
||||
|
||||
|
||||
|
@ -249,16 +225,11 @@ local function comparator_desired_on(pos, node)
|
|||
side_voltage = math.max(side_voltage, s_voltage)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_desired_on2.voltage= " .. voltage)
|
||||
|
||||
if mode == "comp" then
|
||||
-- Comparators in comparison mode
|
||||
if side_voltage > voltage then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_desired_on3.voltage= " .. voltage)
|
||||
return false, 0
|
||||
else
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "comparator_desired_on4.voltage= " .. voltage)
|
||||
return true, voltage
|
||||
end
|
||||
end
|
||||
|
@ -310,8 +281,6 @@ local function update_self(pos, node)
|
|||
local new_state, new_voltage = comparator_desired_on(pos, node)
|
||||
|
||||
if (new_state ~= old_state) or (old_voltage~=new_voltage) then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "update_self.ov=" .. old_voltage .. " nv="..new_voltage.." os="..tostring(old_state).." ns="..tostring(new_state))
|
||||
|
||||
if old_voltage~=new_voltage then meta:set_int("mesecon_voltage", new_voltage) end
|
||||
if new_state then
|
||||
comparator_activate(pos, node, new_voltage, (new_voltage<old_voltage), old_voltage)
|
||||
|
|
|
@ -83,7 +83,6 @@ mesecon.queue:add_function("receptor_on", function (pos, rules, voltage, opaques
|
|||
local rulenames = mesecon.rules_link_rule_all(pos, rule)
|
||||
for _, rulename in pairs(rulenames) do
|
||||
if os then rulename.opaquespread=os end
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "receptor_on-> ".."np="..mesecon.postostring(np).." link="..mesecon.tabletostring(rulename).. " v=" .. (voltage or "nil"))
|
||||
mesecon.turnon(np, rulename, voltage)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -347,18 +347,15 @@ function mesecon.get_conductor_off(node_on, rulename)
|
|||
local conductor = mesecon.get_conductor(node_on.name)
|
||||
if conductor then
|
||||
if conductor.offstate then
|
||||
minetest.log("action", "get_conductor_off1: " .. conductor.offstate)
|
||||
return conductor.offstate
|
||||
end
|
||||
if conductor.states then
|
||||
local bit = mesecon.rule2bit(rulename, mesecon.conductor_get_rules(node_on))
|
||||
local binstate = mesecon.getbinstate(node_on.name, conductor.states)
|
||||
binstate = mesecon.set_bit(binstate, bit, "0")
|
||||
minetest.log("action", "get_conductor_off2: " .. conductor.states[tonumber(binstate,2)+1])
|
||||
return conductor.states[tonumber(binstate,2)+1]
|
||||
end
|
||||
end
|
||||
minetest.log("action", "get_conductor_off3: " .. conductor.onstate)
|
||||
return conductor.onstate
|
||||
end
|
||||
|
||||
|
@ -401,10 +398,8 @@ end
|
|||
-- looked at, activating / changing all effectors along the way.
|
||||
function mesecon.turnon(pos, link, voltage)
|
||||
voltage = voltage or 15
|
||||
minetest.log("action", pos.x .. "/" .. pos.y .. "/" .. pos.z .. "-->" .. "turnon.voltage.input2="..voltage)
|
||||
|
||||
local pn = get_node_force(pos)
|
||||
--if pn and minetest.get_item_group(pn.name, "opaque") == 1 then link.spread=true end
|
||||
local frontiers = {{pos = pos, link = link, voltage = voltage}}
|
||||
|
||||
local depth = 1
|
||||
|
@ -412,107 +407,66 @@ function mesecon.turnon(pos, link, voltage)
|
|||
local f = table.remove(frontiers, 1)
|
||||
local node = get_node_force(f.pos)
|
||||
|
||||
|
||||
|
||||
--if node and mesecon.is_conductor_off(node, f.link) then
|
||||
if node and mesecon.is_conductor(node.name) and (f.link.spread==nil and true or f.link.spread) then
|
||||
|
||||
--neue spannung berechnen
|
||||
local meta = minetest.get_meta(f.pos)
|
||||
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "-->" .. "turnon.f.link-> ".. mesecon.tabletostring(f.link).. " v=" .. f.voltage)
|
||||
|
||||
local old_v = (mesecon.is_conductor_off(node, f.link) and 0 or meta:get_int("mesecon_voltage"))
|
||||
|
||||
local v = math.max(f.voltage, old_v)
|
||||
--wenn spannung geändert
|
||||
--wenn gleiche spannung, aber muss ausgeschalten werden
|
||||
--if v~=old_v or (v<1 and mesecon.is_conductor_on(node, f.link)) or (meta:get_int("mesecon_voltage")<0) then
|
||||
if v~=old_v or (v<1 and mesecon.is_conductor_on(node, f.link)) then
|
||||
--minetest.log("action", f.pos.x .. "/" .. f.pos.y .. "/" .. f.pos.z .. "-->" .. "turnon.f.voltage="..f.voltage.."<-->"..v)
|
||||
|
||||
--if v>0 or (v<1 and mesecon.is_conductor_on(node, f.link)) or (meta:get_int("mesecon_voltage")<0) then
|
||||
if v>=1 or (v<1 and mesecon.is_conductor_on(node, f.link)) then
|
||||
-- Call turnon on neighbors
|
||||
local rules = mesecon.conductor_get_rules(node)
|
||||
for _, r in pairs(mesecon.rule2meta(f.link, rules)) do
|
||||
local np = vector.add(f.pos, r)
|
||||
for _, l in pairs(mesecon.rules_link_rule_all(f.pos, r)) do
|
||||
|
||||
|
||||
|
||||
--aktuelle spannung an nachbarn übergeben
|
||||
|
||||
--wenn nachbar wire -> v-1 sonst v
|
||||
local nnode = get_node_force(np)
|
||||
if mesecon.is_conductor(nnode.name) then
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "-->" .. "turnon.insert-> ".. mesecon.postostring(np) .. " link="..mesecon.tabletostring(l).. " v=" .. (v-1).. " nnode.name="..nnode.name)
|
||||
insert(frontiers, {pos = np, link = l, voltage=v-1 ,source=f.pos})
|
||||
else
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "-->" .. "turnon.insert-> ".. mesecon.postostring(np) .. " link="..mesecon.tabletostring(l).. " v=" .. v.. " nnode.name="..nnode.name)
|
||||
insert(frontiers, {pos = np, link = l, voltage=v ,source=f.pos})
|
||||
end
|
||||
|
||||
--insert(frontiers, {pos = np, link = l})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
--spannung setzen
|
||||
--minetest.log("action", f.pos.x .. "/" .. f.pos.y .. "/" .. f.pos.z .. "-->" .. v)
|
||||
if v<1 then
|
||||
-- ich bin aus
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.off: "..mesecon.get_conductor_off(node, f.link))
|
||||
|
||||
|
||||
--mesecon.swap_node_force(f.pos, mesecon.get_conductor_off(node, f.link))
|
||||
if mesecon.is_conductor_on(node, f.link) then
|
||||
mesecon.swap_node_force(f.pos, mesecon.get_conductor_off(node, f.link))
|
||||
end
|
||||
|
||||
meta:set_int("mesecon_voltage", 0)
|
||||
else
|
||||
if mesecon.is_conductor_on(node, f.link) then
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.onon: ".. node.name .. "v=".. v)
|
||||
else
|
||||
if mesecon.is_conductor_off(node, f.link) then
|
||||
mesecon.swap_node_force(f.pos, mesecon.get_conductor_on(node, f.link))
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.on: "..mesecon.get_conductor_on(node, f.link).." v="..v)
|
||||
end
|
||||
meta:set_int("mesecon_voltage", v)
|
||||
--minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.on.mesecon_voltage: ".. meta:get_int("mesecon_voltage"))
|
||||
|
||||
end
|
||||
f.voltage = (v<1 and 0 or v)
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon: f->".. mesecon.tabletostring(f) .. " -> " .. tostring(v<1 and 0 or v))
|
||||
else
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "-->" .. "turnon.f.voltage="..f.voltage.."<-->"..v .. ":" .. old_v .. " unveraendert")
|
||||
|
||||
if v<1 then
|
||||
--ausschalten
|
||||
if mesecon.is_conductor_on(node, f.link) then
|
||||
mesecon.swap_node_force(f.pos, mesecon.get_conductor_off(node, f.link))
|
||||
end
|
||||
else
|
||||
--anschalten
|
||||
--mesecon.swap_node_force(f.pos, mesecon.get_conductor_on(node, f.link))
|
||||
end
|
||||
end
|
||||
f.link.opaquespread=false
|
||||
elseif mesecon.is_effector(node.name) then
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.is_effector: node.name->"..node.name.." f->".. mesecon.tabletostring(f))
|
||||
|
||||
if f.voltage<1 then
|
||||
--ausschalten
|
||||
--if mesecon.is_effector_on(node.name) then
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.is_effector_on: f->".. mesecon.tabletostring(f))
|
||||
mesecon.changesignal(f.pos, node, f.link, mesecon.state.off, depth)
|
||||
mesecon.deactivate(f.pos, node, f.link, depth)
|
||||
--end
|
||||
else
|
||||
--einschalten
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "--> turnon.is_effector_off: f->".. mesecon.tabletostring(f))
|
||||
mesecon.changesignal(f.pos, node, f.link, mesecon.state.on, depth)
|
||||
mesecon.activate(f.pos, node, f.link, depth)
|
||||
end
|
||||
|
@ -526,14 +480,10 @@ function mesecon.turnon(pos, link, voltage)
|
|||
for _, l in pairs(mesecon.rules_link_rule_all(f.pos, r)) do
|
||||
local nlink = copy(l)
|
||||
if not (f.link.opaquespread and mesecon.is_conductor(mesecon.get_node_force(np).name)) then nlink.spread = false end
|
||||
|
||||
minetest.log("action", mesecon.postostring(f.pos) .. "-->" .. "turnon.insert.spread-> ".. mesecon.postostring(np).." ".. mesecon.get_node_force(np).name .. " link="..mesecon.tabletostring(nlink).. " v=" .. f.voltage)
|
||||
insert(frontiers, {pos = np, link = nlink, voltage=f.voltage})
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
depth = depth + 1
|
||||
end
|
||||
end
|
||||
|
@ -570,7 +520,6 @@ function mesecon.turnoff(pos, link)
|
|||
local rules = mesecon.conductor_get_rules(node)
|
||||
for _, r in pairs(mesecon.rule2meta(f.link, rules)) do
|
||||
local np = vector.add(f.pos, r)
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.insert_rec_on0-> ".. mesecon.postostring(f.pos) .. " rule="..mesecon.tabletostring(r))
|
||||
-- Check if an onstate receptor is connected. If that is the case,
|
||||
-- abort this turnoff process by returning false. `receptor_off` will
|
||||
-- discard all the changes that we made in the voxelmanip:
|
||||
|
@ -593,7 +542,7 @@ function mesecon.turnoff(pos, link)
|
|||
--if mesecon.is_conductor_on(node, f.link) then
|
||||
--spannung neu rechnen
|
||||
--else
|
||||
--erstmal spannung überall auf 0 -> wird im anschluss von de receptoren ausgehend wieder gesetzt
|
||||
--erstmal spannung überall auf 0 -> wird im anschluss von den receptoren ausgehend wieder gesetzt
|
||||
meta:set_int("mesecon_voltage", 0)
|
||||
--end
|
||||
elseif mesecon.is_effector(node.name) then
|
||||
|
@ -612,7 +561,6 @@ function mesecon.turnoff(pos, link)
|
|||
for _, r in pairs(mesecon.rule2meta(f.link, mesecon.rules.mcl_alldirs_spread)) do
|
||||
local np = vector.add(f.pos, r)
|
||||
local n = get_node_force(np)
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.rule2meta-> ".. mesecon.postostring(np) .. " link="..mesecon.tabletostring(r).. " name=" .. n.name)
|
||||
if n and is_receptor_on(n.name) and mesecon.get_receptor(n.name).opaquespread then
|
||||
local receptorrules = receptor_get_rules(n)
|
||||
for _, rr in pairs(receptorrules) do
|
||||
|
@ -631,23 +579,17 @@ function mesecon.turnoff(pos, link)
|
|||
elseif mesecon.is_conductor_on(n) and f.link.opaquespread then
|
||||
insert(frontiers, {pos = np, link = r})
|
||||
end
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.rule2meta-> ".. " rec_on="..mesecon.tabletostring(rec_on))
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.rule2meta-> ".. " signals="..mesecon.tabletostring(signals))
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.rule2meta-> ".. " frontiers="..mesecon.tabletostring(frontiers))
|
||||
for _, l in pairs(mesecon.rules_link_rule_all(fpos, r)) do
|
||||
local lp = vector.add(np, l)
|
||||
local ln = get_node_force(lp)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.rules_link_rule_all-> ".. mesecon.postostring(lp) .. " link="..mesecon.tabletostring(l).. " name=" .. ln.name.." os="..tostring(f.link.opaquespread))
|
||||
if mesecon.is_effector(ln.name) then
|
||||
local nlink = copy(l)
|
||||
if not f.link.opaquespread then nlink.spread = false end
|
||||
insert(frontiers, {pos = np, link = nlink})
|
||||
end
|
||||
end
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "turnoff.rule2meta-> ".. " frontiers="..mesecon.tabletostring(frontiers))
|
||||
end
|
||||
end
|
||||
|
||||
depth = depth + 1
|
||||
end
|
||||
|
||||
|
@ -733,7 +675,6 @@ function mesecon.is_powered(pos, rule, depth, sourcepos, home_pos)
|
|||
local function power_walk(pos, home_pos, sourcepos, rulenames, rule, depth, voltage, fc, os)
|
||||
local spread = false
|
||||
local cond = fc
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "power_walk.rulenames=" .. mesecon.tabletostring(rulenames))
|
||||
for _, rname in pairs(rulenames) do
|
||||
local np = vector.add(pos, rname)
|
||||
local nn = get_node_force(np)
|
||||
|
@ -749,21 +690,12 @@ function mesecon.is_powered(pos, rule, depth, sourcepos, home_pos)
|
|||
local meta = minetest.get_meta(np)
|
||||
|
||||
local nvol = meta:get_string("mesecon_voltage")~="" and meta:get_int("mesecon_voltage") or 15
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.voltage0=" .. voltage.."<-->"..nvol)
|
||||
if nvol>voltage then
|
||||
voltage = nvol
|
||||
cond = mesecon.is_conductor(nn.name)
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.cond0=" .. tostring(cond))
|
||||
end
|
||||
os = os or mesecon.is_receptor_opaquespread(nn.name)
|
||||
--voltage = math.max(voltage, nvol)
|
||||
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.voltage1=" .. meta:get_string("mesecon_voltage"))
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.voltage2=" .. (meta:get_string("mesecon_voltage")~="" and meta:get_int("mesecon_voltage") or 15))
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.voltage3=" .. voltage.." "..nn.name.." "..tostring(mesecon.is_conductor(nn.name))..tostring(os))
|
||||
|
||||
np.opaquespread=mesecon.is_receptor_opaquespread(nn.name)
|
||||
|
||||
insert(sourcepos, np)
|
||||
if spread_tmp then spread = true end
|
||||
end
|
||||
|
@ -772,7 +704,6 @@ function mesecon.is_powered(pos, rule, depth, sourcepos, home_pos)
|
|||
end
|
||||
--elseif depth == 0 and minetest.get_item_group(nn.name, "opaque") == 1 and not pos.conductor then
|
||||
elseif depth == 0 and minetest.get_item_group(nn.name, "opaque") == 1 then
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.elseif.is_conductor=" .. tostring(mesecon.is_conductor(pos)))
|
||||
local more_sourcepos, more_spread, more_voltage, more_cond, more_os = mesecon.is_powered(np, nil, depth + 1, sourcepos, home_pos, os)
|
||||
if more_sourcepos and #more_sourcepos > 0 and more_voltage>=1 and (not pos.conductor or more_os) then
|
||||
mesecon.mergetable(sourcepos, more_sourcepos)
|
||||
|
@ -780,12 +711,10 @@ function mesecon.is_powered(pos, rule, depth, sourcepos, home_pos)
|
|||
voltage = more_voltage
|
||||
cond = more_cond
|
||||
os=more_os
|
||||
--minetest.log("action", mesecon.postostring(np) .. "-->" .. "power_walk.cond1=" .. tostring(cond))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "power_walk.cond2=" .. tostring(cond).." opaquespread="..tostring(os).." depth="..tostring(depth))
|
||||
return sourcepos, spread, voltage, cond, os
|
||||
end
|
||||
|
||||
|
@ -812,10 +741,8 @@ function mesecon.is_powered(pos, rule, depth, sourcepos, home_pos)
|
|||
|
||||
|
||||
if (#sourcepos == 0) then
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "is_powered.voltage4=" .. "0")
|
||||
return false, false, 0, false, false
|
||||
else
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "is_powered.voltage5=" .. v .. " fC="..tostring(fromConductor).." spread="..tostring(spread).." os="..tostring(opaquespread))
|
||||
return sourcepos, spread, v, fromConductor, opaquespread
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,6 @@ function mesecon.on_placenode(pos, node)
|
|||
|
||||
-- Receptors: Send on signal when active
|
||||
if mesecon.is_receptor_on(node.name) then
|
||||
--nach spannung fragen
|
||||
mesecon.receptor_on(pos, mesecon.receptor_get_rules(node))
|
||||
end
|
||||
|
||||
|
@ -24,12 +23,9 @@ function mesecon.on_placenode(pos, node)
|
|||
node = mesecon.get_node_force(pos)
|
||||
pos.conductor=true
|
||||
local sources, _, voltage, fromConductor = mesecon.is_powered(pos)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "on_placenode.voltage=" .. voltage .. " fC="..tostring(fromConductor))
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "on_placenode.sources=" .. mesecon.tabletostring(sources))
|
||||
if sources and voltage>=1 then
|
||||
|
||||
voltage = fromConductor and voltage-1 or voltage
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "on_placenode.voltage2=" .. voltage )
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("mesecon_voltage", voltage)
|
||||
|
||||
|
@ -37,13 +33,7 @@ function mesecon.on_placenode(pos, node)
|
|||
-- conductors will be activated (when pushing an on-conductor with a piston)
|
||||
for _, s in ipairs(sources) do
|
||||
local rule = vector.subtract(pos, s)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. " on_placenode.for_turnon1=" .. mesecon.tabletostring(rule) .. " v=" ..(voltage))
|
||||
|
||||
local nnode = mesecon.get_node_force(s)
|
||||
|
||||
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. " on_placenode.for_turnon2=" .. mesecon.tabletostring(s) .. " nnode.name=" ..nnode.name)
|
||||
|
||||
mesecon.turnon(pos, rule, voltage)
|
||||
end
|
||||
mesecon.receptor_on (pos, mesecon.conductor_get_rules(node), voltage-1)
|
||||
|
@ -54,7 +44,6 @@ function mesecon.on_placenode(pos, node)
|
|||
|
||||
-- Effectors: Send changesignal and activate or deactivate
|
||||
if mesecon.is_effector(node.name) then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. " on_placenode.is_effector")
|
||||
local powered_rules = {}
|
||||
local unpowered_rules = {}
|
||||
|
||||
|
@ -81,8 +70,6 @@ function mesecon.on_placenode(pos, node)
|
|||
|
||||
if minetest.get_item_group(node.name, "opaque") == 1 then
|
||||
local is_powered, direct_source, voltage, _, opaquespread = mesecon.is_powered(pos)
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. " on_placenode.is_powered="..mesecon.tabletostring(is_powered))
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. " on_placenode.opaquespread="..tostring(opaquespread))
|
||||
if is_powered and direct_source then
|
||||
if opaquespread then
|
||||
mesecon.receptor_on(pos, nil, voltage)
|
||||
|
@ -93,41 +80,15 @@ function mesecon.on_placenode(pos, node)
|
|||
local npos = neighbors[n].pos
|
||||
local nnode = minetest.get_node(npos)
|
||||
if mesecon.is_conductor_off(nnode) and opaquespread then
|
||||
minetest.log("action", mesecon.postostring(npos) .. "-->" .. " on_placenode.is_conductor_off"
|
||||
.. " name="..nnode.name
|
||||
.. " effoff="..tostring(mesecon.is_effector_off(nnode.name))
|
||||
.. " redtorch="..tostring(minetest.get_item_group(nnode.name, "redstone_torch"))
|
||||
.. " opaquespread=" .. tostring(opaquespread)
|
||||
)
|
||||
|
||||
-- Redstone torch is a special case and must be ignored
|
||||
elseif mesecon.is_effector_off(nnode.name) and minetest.get_item_group(nnode.name, "redstone_torch") == 0 then
|
||||
minetest.log("action", mesecon.postostring(npos) .. "-->" .. " on_placenode.is_effector_off"
|
||||
.. " name="..nnode.name
|
||||
.. " effoff="..tostring(mesecon.is_effector_off(nnode.name))
|
||||
.. " redtorch="..tostring(minetest.get_item_group(nnode.name, "redstone_torch"))
|
||||
.. " opaquespread=" .. tostring(opaquespread)
|
||||
)
|
||||
mesecon.changesignal(npos, nnode, neighbors[n].link, mesecon.state.on, 1)
|
||||
mesecon.activate(npos, nnode, neighbors[n].link, 1)
|
||||
|
||||
|
||||
|
||||
elseif mesecon.is_effector(nnode.name) and minetest.get_item_group(nnode.name, "redstone_torch") == 0 then
|
||||
--eigen funktion für comparator schreiben
|
||||
minetest.log("action", mesecon.postostring(npos) .. "-->" .. " on_placenode.is_comparator_off"
|
||||
.. " name="..nnode.name
|
||||
.. " effoff="..tostring(mesecon.is_effector_off(nnode.name))
|
||||
.. " redtorch="..tostring(minetest.get_item_group(nnode.name, "redstone_torch"))
|
||||
.. " opaquespread=" .. tostring(opaquespread)
|
||||
)
|
||||
|
||||
minetest.log("action", mesecon.postostring(npos) .. "--> on_placenode.is_effector: node.name->"..nnode.name)
|
||||
|
||||
if voltage<1 then
|
||||
--ausschalten
|
||||
--if mesecon.is_effector_on(node.name) then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "--> on_placenode.is_effector_on")
|
||||
--mesecon.changesignal(f.pos, node, f.link, mesecon.state.off, depth)
|
||||
--mesecon.deactivate(f.pos, node, f.link, depth)
|
||||
|
||||
|
@ -135,8 +96,6 @@ function mesecon.on_placenode(pos, node)
|
|||
mesecon.deactivate(npos, nnode, neighbors[n].link, 1)
|
||||
--end
|
||||
else
|
||||
--einschalten
|
||||
minetest.log("action", mesecon.postostring(pos) .. "--> on_placenode.is_effector_off")
|
||||
mesecon.changesignal(npos, nnode, neighbors[n].link, mesecon.state.on, 1)
|
||||
mesecon.activate(npos, nnode, neighbors[n].link, 1)
|
||||
end
|
||||
|
@ -151,10 +110,8 @@ function mesecon.on_dignode(pos, node, direct_dig)
|
|||
local regnode = minetest.registered_nodes[node.name]
|
||||
if (regnode and regnode.mesecons and not regnode.on_destruct) or not direct_dig then
|
||||
if mesecon.is_conductor_on(node) then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "on_dignode.is_conductor_on")
|
||||
mesecon.conductor_off(pos, mesecon.conductor_get_rules(node))
|
||||
elseif mesecon.is_receptor_on(node.name) then
|
||||
minetest.log("action", mesecon.postostring(pos) .. "-->" .. "on_dignode.is_receptor_on")
|
||||
mesecon.receptor_off(pos, mesecon.receptor_get_rules(node), mesecon.is_receptor_opaquespread(node.name))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -31,7 +31,7 @@ local wire_rules = {
|
|||
local function wire_getconnect(from_pos, self_pos, from_rule)
|
||||
local node = minetest.get_node(self_pos)
|
||||
if minetest.registered_nodes[node.name]
|
||||
and minetest.registered_nodes[node.name].mesecons or minetest.get_item_group(node.name, "opaque") == 1 then
|
||||
and minetest.registered_nodes[node.name].mesecons or minetest.get_item_group(node.name, "opaque") == 1 then
|
||||
-- rules of node to possibly connect to
|
||||
local rules
|
||||
if (minetest.registered_nodes[node.name].mesecon_wire) then
|
||||
|
@ -128,7 +128,6 @@ local function wire_updateconnect(pos)
|
|||
--check all rules
|
||||
for _, r in ipairs(wire_rules) do
|
||||
local res, val = wire_getconnect(pos, vector.add(pos, r), r)
|
||||
--minetest.log("action", mesecon.postostring(pos) .. "-->" .. "wire_updateconnect->" .. " self_pos="..mesecon.postostring(vector.add(pos, r)) .. " " .. tostring(res).." "..tostring (val))
|
||||
if res then
|
||||
table.insert(connections, r)
|
||||
end
|
||||
|
@ -193,7 +192,6 @@ local function update_on_place_dig(pos, node)
|
|||
local nnode = minetest.get_node(np).name
|
||||
if minetest.registered_nodes[nnode] and minetest.registered_nodes[nnode].mesecon_wire then
|
||||
local abandoned_rules = wire_updateconnect(np)
|
||||
minetest.log("action", mesecon.postostring(np) .. "-->" .. "wire.update_on_place_dig->" .. mesecon.tabletostring(abandoned_rules))
|
||||
if next(abandoned_rules) ~= nil then
|
||||
mesecon.conductor_off(np, abandoned_rules)
|
||||
mesecon.conductor_off(np, mesecon.conductor_get_rules(minetest.get_node(np)))
|
||||
|
@ -437,16 +435,13 @@ local function register_wires2()
|
|||
|
||||
|
||||
--rules berechnen, nur nötige verwenden
|
||||
--minetest.log("action", "register_wires2 -> ".. nodeid .. " wire_rules=" .. mesecon.tabletostring(wire_rules))
|
||||
local nrules = {}
|
||||
for i=0,11 do
|
||||
if nid[i]==1 then
|
||||
--minetest.log("action", "register_wires2 -> ".. nodeid .. " i=" .. tostring(i).." -> "..mesecon.tabletostring(wire_rules[i]))
|
||||
table.insert(nrules,wire_rules[i+1])
|
||||
end
|
||||
end
|
||||
table.insert(nrules,wire_rules[12+1]) --ym (always)
|
||||
--minetest.log("action", "register_wires2 -> ".. nodeid .. " rules=" .. mesecon.tabletostring(nrules))
|
||||
|
||||
--[[
|
||||
00100000
|
||||
|
|
Loading…
Reference in New Issue