power bugfixes
This commit is contained in:
parent
4e1eaaa3ee
commit
859587713d
@ -33,13 +33,13 @@ local function swap_node(pos, name)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function on_power(pos)
|
local function on_power(pos)
|
||||||
print("on_power sink "..P2S(pos))
|
--print("on_power sink "..P2S(pos))
|
||||||
swap_node(pos, "techage:sink_on")
|
swap_node(pos, "techage:sink_on")
|
||||||
M(pos):set_string("infotext", "on")
|
M(pos):set_string("infotext", "on")
|
||||||
end
|
end
|
||||||
|
|
||||||
local function on_nopower(pos)
|
local function on_nopower(pos)
|
||||||
print("on_nopower sink "..P2S(pos))
|
--print("on_nopower sink "..P2S(pos))
|
||||||
swap_node(pos, "techage:sink")
|
swap_node(pos, "techage:sink")
|
||||||
M(pos):set_string("infotext", "off")
|
M(pos):set_string("infotext", "off")
|
||||||
end
|
end
|
||||||
@ -48,13 +48,6 @@ local function node_timer(pos, elapsed)
|
|||||||
--print("node_timer sink "..P2S(pos))
|
--print("node_timer sink "..P2S(pos))
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
power.consumer_alive(pos, Cable, CYCLE_TIME)
|
power.consumer_alive(pos, Cable, CYCLE_TIME)
|
||||||
-- if not techage.power.power_available(pos, Cable) then
|
|
||||||
-- nvm.running = false
|
|
||||||
-- swap_node(pos, "techage:sink")
|
|
||||||
-- power.consumer_stop(pos, Cable)
|
|
||||||
-- minetest.get_node_timer(pos):stop()
|
|
||||||
-- M(pos):set_string("infotext", "off")
|
|
||||||
-- end
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -115,6 +115,7 @@ local State4 = techage.NodeStates:new({
|
|||||||
})
|
})
|
||||||
|
|
||||||
local function node_timer2(pos, elapsed)
|
local function node_timer2(pos, elapsed)
|
||||||
|
--print("node_timer2")
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local outdir = M(pos):get_int("outdir")
|
local outdir = M(pos):get_int("outdir")
|
||||||
nvm.provided = power.generator_alive(pos, Axle, CYCLE_TIME, outdir)
|
nvm.provided = power.generator_alive(pos, Axle, CYCLE_TIME, outdir)
|
||||||
@ -125,6 +126,7 @@ local function node_timer2(pos, elapsed)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function node_timer3(pos, elapsed)
|
local function node_timer3(pos, elapsed)
|
||||||
|
--print("node_timer3")
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local outdir = M(pos):get_int("outdir")
|
local outdir = M(pos):get_int("outdir")
|
||||||
nvm.provided = power.generator_alive(pos, Pipe, CYCLE_TIME, outdir)
|
nvm.provided = power.generator_alive(pos, Pipe, CYCLE_TIME, outdir)
|
||||||
@ -135,6 +137,7 @@ local function node_timer3(pos, elapsed)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function node_timer4(pos, elapsed)
|
local function node_timer4(pos, elapsed)
|
||||||
|
--print("node_timer4")
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local outdir = M(pos):get_int("outdir")
|
local outdir = M(pos):get_int("outdir")
|
||||||
nvm.provided = power.generator_alive(pos, Cable, CYCLE_TIME, outdir)
|
nvm.provided = power.generator_alive(pos, Cable, CYCLE_TIME, outdir)
|
||||||
|
@ -50,7 +50,7 @@ local function output(network, valid)
|
|||||||
tbl[#tbl+1] = count_nodes(ntype, table)
|
tbl[#tbl+1] = count_nodes(ntype, table)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
--print("Network ("..valid.."): "..table.concat(tbl, ", "))
|
print("Network ("..valid.."): "..table.concat(tbl, ", "))
|
||||||
end
|
end
|
||||||
|
|
||||||
local function hidden_node(pos, net_name)
|
local function hidden_node(pos, net_name)
|
||||||
@ -141,13 +141,13 @@ local function node_connections(pos, tlib2)
|
|||||||
local val = 0
|
local val = 0
|
||||||
local ndef = net_def2(pos, node.name, tlib2.tube_type)
|
local ndef = net_def2(pos, node.name, tlib2.tube_type)
|
||||||
local sides = ndef.sides or ndef.get_sides and ndef.get_sides(pos, node)
|
local sides = ndef.sides or ndef.get_sides and ndef.get_sides(pos, node)
|
||||||
print("node_connections", node.name, dump(sides))
|
--print("node_connections", node.name, dump(sides))
|
||||||
if sides then
|
if sides then
|
||||||
for dir = 1,6 do
|
for dir = 1,6 do
|
||||||
val = val * 2
|
val = val * 2
|
||||||
local side = DirToSide[outdir_to_dir(dir, node.param2)]
|
local side = DirToSide[outdir_to_dir(dir, node.param2)]
|
||||||
if sides[side] then
|
if sides[side] then
|
||||||
print(side, sides[side], P2S(pos), dir, connected(tlib2, pos, dir))
|
--print(side, sides[side], P2S(pos), dir, connected(tlib2, pos, dir))
|
||||||
if connected(tlib2, pos, dir) then
|
if connected(tlib2, pos, dir) then
|
||||||
techage.mark_side("singleplayer", pos, dir, "node_connections", "", 1)--------------------
|
techage.mark_side("singleplayer", pos, dir, "node_connections", "", 1)--------------------
|
||||||
val = val + 1
|
val = val + 1
|
||||||
@ -249,7 +249,7 @@ local function remove_outdated_networks()
|
|||||||
for net_name,tbl in pairs(Networks) do
|
for net_name,tbl in pairs(Networks) do
|
||||||
for netID,network in pairs(tbl) do
|
for netID,network in pairs(tbl) do
|
||||||
local valid = (network.best_before or 0) - t
|
local valid = (network.best_before or 0) - t
|
||||||
output(network, valid)
|
--output(network, valid)
|
||||||
if valid < 0 then
|
if valid < 0 then
|
||||||
to_be_deleted[#to_be_deleted+1] = {net_name, netID}
|
to_be_deleted[#to_be_deleted+1] = {net_name, netID}
|
||||||
end
|
end
|
||||||
@ -294,11 +294,9 @@ function techage.networks.connection_walk(pos, outdir, tlib2, clbk)
|
|||||||
return NumNodes
|
return NumNodes
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.networks.get_network(tube_type, netID)
|
-- return network without maintainting the "alive" data
|
||||||
if Networks[tube_type] and Networks[tube_type][netID] then
|
function techage.networks.peek_network(tube_type, netID)
|
||||||
Networks[tube_type][netID].best_before = minetest.get_gametime() + BEST_BEFORE
|
return Networks[tube_type] and Networks[tube_type][netID]
|
||||||
return Networks[tube_type][netID]
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.networks.set_network(tube_type, netID, network)
|
function techage.networks.set_network(tube_type, netID, network)
|
||||||
@ -316,25 +314,23 @@ end
|
|||||||
-- Power API
|
-- Power API
|
||||||
--
|
--
|
||||||
function techage.networks.has_network(tube_type, netID)
|
function techage.networks.has_network(tube_type, netID)
|
||||||
local netw = Networks[tube_type] and Networks[tube_type][netID]
|
return Networks[tube_type] and Networks[tube_type][netID]
|
||||||
if netw then
|
|
||||||
netw.alive = 1
|
|
||||||
netw.best_before = minetest.get_gametime() + BEST_BEFORE
|
|
||||||
return netw
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.networks.build_network(pos, outdir, tlib2, netID)
|
function techage.networks.build_network(pos, outdir, tlib2, netID)
|
||||||
local netw = collect_network_nodes(pos, outdir, tlib2)
|
local netw = collect_network_nodes(pos, outdir, tlib2)
|
||||||
Networks[tlib2.tube_type] = Networks[tlib2.tube_type] or {}
|
Networks[tlib2.tube_type] = Networks[tlib2.tube_type] or {}
|
||||||
Networks[tlib2.tube_type][netID] = netw
|
Networks[tlib2.tube_type][netID] = netw
|
||||||
netw.alive = 1
|
netw.alive = 3
|
||||||
techage.schedule.start(tlib2.tube_type, netID)
|
techage.schedule.start(tlib2.tube_type, netID)
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.networks.delete_network(tube_type, netID)
|
function techage.networks.get_network(tube_type, netID)
|
||||||
if Networks[tube_type] then
|
local netw = Networks[tube_type] and Networks[tube_type][netID]
|
||||||
Networks[tube_type][netID] = nil
|
if netw then
|
||||||
|
netw.alive = 3 -- monitored by scheduler (power)
|
||||||
|
netw.best_before = minetest.get_gametime() + BEST_BEFORE -- monitored by networks (liquids)
|
||||||
|
return netw
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -344,12 +340,6 @@ function techage.networks.delete_network(tube_type, netID)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--function techage.networks.connections(pos, tlib2)
|
|
||||||
-- for _,dir in ipairs(get_node_connections(pos, tlib2.tube_type)) do
|
|
||||||
-- print(({"North", "East", "South", "West", "Down", "Up"})[dir])
|
|
||||||
-- end
|
|
||||||
--end
|
|
||||||
|
|
||||||
-- Get node tubelib2 connections as table of outdirs
|
-- Get node tubelib2 connections as table of outdirs
|
||||||
-- techage.networks.get_node_connections(pos, net_name)
|
-- techage.networks.get_node_connections(pos, net_name)
|
||||||
techage.networks.get_node_connections = get_node_connections
|
techage.networks.get_node_connections = get_node_connections
|
||||||
|
2
init.lua
2
init.lua
@ -57,6 +57,7 @@ else
|
|||||||
dofile(MP.."/power/junctionbox.lua")
|
dofile(MP.."/power/junctionbox.lua")
|
||||||
dofile(MP.."/power/power_terminal.lua")
|
dofile(MP.."/power/power_terminal.lua")
|
||||||
dofile(MP.."/power/powerswitchbox.lua")
|
dofile(MP.."/power/powerswitchbox.lua")
|
||||||
|
dofile(MP.."/power/powerswitch.lua")
|
||||||
dofile(MP.."/power/protection.lua")
|
dofile(MP.."/power/protection.lua")
|
||||||
dofile(MP.."/power/power_line.lua")
|
dofile(MP.."/power/power_line.lua")
|
||||||
|
|
||||||
@ -67,7 +68,6 @@ else
|
|||||||
--dofile(MP.."/power/power2.lua")
|
--dofile(MP.."/power/power2.lua")
|
||||||
--dofile(MP.."/power/junction.lua")
|
--dofile(MP.."/power/junction.lua")
|
||||||
--dofile(MP.."/power/junctionbox.lua")
|
--dofile(MP.."/power/junctionbox.lua")
|
||||||
--dofile(MP.."/power/powerswitch.lua")
|
|
||||||
--dofile(MP.."/power/ta4_cable.lua")
|
--dofile(MP.."/power/ta4_cable.lua")
|
||||||
|
|
||||||
-- Iron Age
|
-- Iron Age
|
||||||
|
@ -21,12 +21,13 @@ local RUNNING = techage.power.RUNNING
|
|||||||
local function start_consumer(tbl, tlib_type)
|
local function start_consumer(tbl, tlib_type)
|
||||||
for _,v in pairs(tbl or {}) do
|
for _,v in pairs(tbl or {}) do
|
||||||
local nvm = techage.get_nvm(v.pos)
|
local nvm = techage.get_nvm(v.pos)
|
||||||
if nvm[tlib_type.."_cstate"] == NOPOWER and (nvm[tlib_type.."_calive"] or 0) > 0 then
|
local def = nvm[tlib_type] -- power related network data
|
||||||
|
if def and def["cstate"] == NOPOWER and (def["calive"] or 0) > 0 then
|
||||||
local ndef = net_def(v.pos, tlib_type)
|
local ndef = net_def(v.pos, tlib_type)
|
||||||
nvm[tlib_type.."_cstate"] = RUNNING
|
def["cstate"] = RUNNING
|
||||||
nvm[tlib_type.."_taken"] = v.nominal or 0
|
def["taken"] = v.nominal or 0
|
||||||
if ndef.on_power then
|
if ndef.on_power then
|
||||||
ndef.on_power(v.pos)
|
ndef.on_power(v.pos, tlib_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -35,12 +36,13 @@ end
|
|||||||
local function stop_consumer(tbl, tlib_type)
|
local function stop_consumer(tbl, tlib_type)
|
||||||
for _,v in pairs(tbl or {}) do
|
for _,v in pairs(tbl or {}) do
|
||||||
local nvm = techage.get_nvm(v.pos)
|
local nvm = techage.get_nvm(v.pos)
|
||||||
if nvm[tlib_type.."_cstate"] == RUNNING then
|
local def = nvm[tlib_type] -- power related network data
|
||||||
|
if def and def["cstate"] == RUNNING then
|
||||||
local ndef = net_def(v.pos, tlib_type)
|
local ndef = net_def(v.pos, tlib_type)
|
||||||
nvm[tlib_type.."_cstate"] = NOPOWER
|
def["cstate"] = NOPOWER
|
||||||
nvm[tlib_type.."_taken"] = 0
|
def["taken"] = 0
|
||||||
if ndef.on_nopower then
|
if ndef.on_nopower then
|
||||||
ndef.on_nopower(v.pos)
|
ndef.on_nopower(v.pos, tlib_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -50,9 +52,10 @@ local function get_generator_sum(tbl, tlib_type)
|
|||||||
local sum = 0
|
local sum = 0
|
||||||
for _,v in ipairs(tbl or {}) do
|
for _,v in ipairs(tbl or {}) do
|
||||||
local nvm = techage.get_nvm(v.pos)
|
local nvm = techage.get_nvm(v.pos)
|
||||||
if nvm[tlib_type.."_gstate"] ~= STOPPED then
|
local def = nvm[tlib_type] -- power related network data
|
||||||
nvm[tlib_type.."_galive"] = (nvm[tlib_type.."_galive"] or 1) - 1
|
if def and def["gstate"] ~= STOPPED then
|
||||||
if nvm[tlib_type.."_galive"] > 0 then
|
def["galive"] = (def["galive"] or 1) - 1
|
||||||
|
if def["galive"] > 0 then
|
||||||
sum = sum + v.nominal
|
sum = sum + v.nominal
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -64,9 +67,10 @@ local function get_consumer_sum(tbl, tlib_type)
|
|||||||
local sum = 0
|
local sum = 0
|
||||||
for _,v in ipairs(tbl or {}) do
|
for _,v in ipairs(tbl or {}) do
|
||||||
local nvm = techage.get_nvm(v.pos)
|
local nvm = techage.get_nvm(v.pos)
|
||||||
if nvm[tlib_type.."_cstate"] ~= STOPPED then
|
local def = nvm[tlib_type] -- power related network data
|
||||||
nvm[tlib_type.."_calive"] = (nvm[tlib_type.."_calive"] or 1) - 1
|
if def and def["cstate"] ~= STOPPED then
|
||||||
if nvm[tlib_type.."_calive"] > 0 then
|
def["calive"] = (def["calive"] or 1) - 1
|
||||||
|
if def["calive"] > 0 then
|
||||||
sum = sum + v.nominal
|
sum = sum + v.nominal
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -76,8 +80,9 @@ end
|
|||||||
|
|
||||||
local function set_given(pos, given, tlib_type)
|
local function set_given(pos, given, tlib_type)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
if (nvm[tlib_type.."_galive"] or 0) > 0 then
|
local def = nvm[tlib_type] -- power related network data
|
||||||
nvm[tlib_type.."_given"] = given
|
if (def and def["galive"] or 0) > 0 then
|
||||||
|
def["given"] = given
|
||||||
return given
|
return given
|
||||||
end
|
end
|
||||||
return 0
|
return 0
|
||||||
@ -85,8 +90,9 @@ end
|
|||||||
|
|
||||||
local function set_taken(pos, taken, tlib_type)
|
local function set_taken(pos, taken, tlib_type)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
if (nvm[tlib_type.."_calive"] or 0) > 0 then
|
local def = nvm[tlib_type] -- power related network data
|
||||||
nvm[tlib_type.."_taken"] = taken
|
if (def and def["calive"] or 0) > 0 then
|
||||||
|
def["taken"] = taken
|
||||||
return taken
|
return taken
|
||||||
end
|
end
|
||||||
return 0
|
return 0
|
||||||
@ -110,13 +116,13 @@ local function set_taken_values(tbl, taken, tlib_type)
|
|||||||
return taken
|
return taken
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.power.power_distribution(network, tlib_type, t)
|
function techage.power.power_distribution(network, tlib_type)
|
||||||
-- calc maximum power values
|
-- calc maximum power values
|
||||||
network.available1 = get_generator_sum(network.gen1, tlib_type)
|
network.available1 = get_generator_sum(network.gen1, tlib_type)
|
||||||
network.available2 = get_generator_sum(network.gen2, tlib_type)
|
network.available2 = get_generator_sum(network.gen2, tlib_type)
|
||||||
network.needed1 = get_consumer_sum(network.con1, tlib_type)
|
network.needed1 = get_consumer_sum(network.con1, tlib_type)
|
||||||
network.needed2 = get_consumer_sum(network.con2, tlib_type)
|
network.needed2 = get_consumer_sum(network.con2, tlib_type)
|
||||||
print(t, minetest.get_gametime(), network.available1, network.available2, network.needed1, network.needed2)
|
print(network.available1, network.available2, network.needed1, network.needed2, network.alive)
|
||||||
|
|
||||||
-- store results
|
-- store results
|
||||||
network.on = network.available1 + network.available2 >= network.needed1
|
network.on = network.available1 + network.available2 >= network.needed1
|
||||||
|
@ -18,6 +18,8 @@ local P2S = minetest.pos_to_string
|
|||||||
local M = minetest.get_meta
|
local M = minetest.get_meta
|
||||||
local S = techage.S
|
local S = techage.S
|
||||||
|
|
||||||
|
local power = techage.power
|
||||||
|
|
||||||
local ELE1_MAX_CABLE_LENGHT = 1000
|
local ELE1_MAX_CABLE_LENGHT = 1000
|
||||||
|
|
||||||
local Cable = tubelib2.Tube:new({
|
local Cable = tubelib2.Tube:new({
|
||||||
@ -27,7 +29,7 @@ local Cable = tubelib2.Tube:new({
|
|||||||
tube_type = "ele1",
|
tube_type = "ele1",
|
||||||
primary_node_names = {"techage:electric_cableS", "techage:electric_cableA",
|
primary_node_names = {"techage:electric_cableS", "techage:electric_cableA",
|
||||||
"techage:power_line", "techage:power_lineS", "techage:power_lineA",
|
"techage:power_line", "techage:power_lineS", "techage:power_lineA",
|
||||||
"techage:power_pole2"},
|
"techage:power_pole2", "techage:powerswitch_box"},
|
||||||
secondary_node_names = {},
|
secondary_node_names = {},
|
||||||
after_place_tube = function(pos, param2, tube_type, num_tubes)
|
after_place_tube = function(pos, param2, tube_type, num_tubes)
|
||||||
-- Handle "power line" nodes
|
-- Handle "power line" nodes
|
||||||
@ -35,6 +37,10 @@ local Cable = tubelib2.Tube:new({
|
|||||||
if name == "techage:power_pole2" then
|
if name == "techage:power_pole2" then
|
||||||
M(pos):set_int("tl2_param2", param2)
|
M(pos):set_int("tl2_param2", param2)
|
||||||
return
|
return
|
||||||
|
elseif name == "techage:powerswitch_box" then
|
||||||
|
minetest.swap_node(pos, {name = "techage:powerswitch_box", param2 = param2})
|
||||||
|
M(pos):set_int("tl2_param2", param2)
|
||||||
|
return
|
||||||
elseif name == "techage:power_line" or name == "techage:power_lineS" or name == "techage:power_lineA" then
|
elseif name == "techage:power_line" or name == "techage:power_lineS" or name == "techage:power_lineA" then
|
||||||
minetest.swap_node(pos, {name = "techage:power_line"..tube_type, param2 = param2 % 32})
|
minetest.swap_node(pos, {name = "techage:power_line"..tube_type, param2 = param2 % 32})
|
||||||
M(pos):set_int("tl2_param2", param2)
|
M(pos):set_int("tl2_param2", param2)
|
||||||
@ -157,6 +163,11 @@ minetest.register_node("techage:electric_cableA", {
|
|||||||
drop = "techage:electric_cableS",
|
drop = "techage:electric_cableS",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- only needed for hidden nodes, cause they don't have a tubelib2_on_update2 callback
|
||||||
|
Cable:register_on_tube_update(function(node, pos, out_dir, peer_pos, peer_in_dir)
|
||||||
|
power.update_network(pos, nil, Cable)
|
||||||
|
end)
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "techage:electric_cableS 6",
|
output = "techage:electric_cableS 6",
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -53,7 +53,8 @@ local function store_netID(pos, outdir, netID, Cable)
|
|||||||
--print(node.name, dump(net_def(pos, Cable.tube_type)))
|
--print(node.name, dump(net_def(pos, Cable.tube_type)))
|
||||||
if net_def(pos, Cable.tube_type) then
|
if net_def(pos, Cable.tube_type) then
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
nvm[Cable.tube_type.."_netID"] = netID
|
nvm[Cable.tube_type] = nvm[Cable.tube_type] or {}
|
||||||
|
nvm[Cable.tube_type]["netID"] = netID
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@ -65,9 +66,9 @@ local function delete_netID(pos, outdir, Cable)
|
|||||||
techage.mark_position("singleplayer", pos, "delete", "", 2)----------------------------------------
|
techage.mark_position("singleplayer", pos, "delete", "", 2)----------------------------------------
|
||||||
if net_def(pos, Cable.tube_type) then
|
if net_def(pos, Cable.tube_type) then
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
if nvm[Cable.tube_type.."_netID"] then
|
if nvm[Cable.tube_type] and nvm[Cable.tube_type]["netID"] then
|
||||||
netID = nvm[Cable.tube_type.."_netID"]
|
netID = nvm[Cable.tube_type]["netID"]
|
||||||
nvm[Cable.tube_type.."_netID"] = nil
|
nvm[Cable.tube_type]["netID"] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@ -77,13 +78,13 @@ end
|
|||||||
-- Keep the network up and running
|
-- Keep the network up and running
|
||||||
local function trigger_network(pos, outdir, Cable)
|
local function trigger_network(pos, outdir, Cable)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local netID = nvm[Cable.tube_type.."_netID"]
|
local netID = nvm[Cable.tube_type] and nvm[Cable.tube_type]["netID"]
|
||||||
if not netID then
|
if not netID then
|
||||||
print("determine_netID !!!!!!!!!!!!!!!!!!!!")
|
print("determine_netID !!!!!!!!!!!!!!!!!!!!")
|
||||||
netID = determine_netID(pos, outdir, Cable)
|
netID = determine_netID(pos, outdir, Cable)
|
||||||
store_netID(pos, outdir, netID, Cable)
|
store_netID(pos, outdir, netID, Cable)
|
||||||
networks.build_network(pos, outdir, Cable, netID)
|
networks.build_network(pos, outdir, Cable, netID)
|
||||||
elseif not networks.has_network(Cable.tube_type, netID) then
|
elseif not networks.get_network(Cable.tube_type, netID) then
|
||||||
print("build_network !!!!!!!!!!!!!!!!!!!!")
|
print("build_network !!!!!!!!!!!!!!!!!!!!")
|
||||||
networks.build_network(pos, outdir, Cable, netID)
|
networks.build_network(pos, outdir, Cable, netID)
|
||||||
end
|
end
|
||||||
@ -104,54 +105,50 @@ end
|
|||||||
|
|
||||||
-- check if there is a living network
|
-- check if there is a living network
|
||||||
function techage.power.power_available(pos, Cable)
|
function techage.power.power_available(pos, Cable)
|
||||||
-- for _,outdir in ipairs(techage.networks.get_node_connections(pos, Cable.tube_type)) do
|
|
||||||
-- -- generator visible?
|
|
||||||
-- if determine_netID(pos, outdir, Cable) > 0 then return true end
|
|
||||||
-- end
|
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local tlib_type = Cable.tube_type
|
||||||
return networks.has_network(tlib_type, nvm[tlib_type.."_netID"])
|
local netID = nvm[Cable.tube_type] and nvm[Cable.tube_type]["netID"]
|
||||||
-- local mem = techage.get_mem(pos)
|
return networks.has_network(tlib_type, netID)
|
||||||
-- local tlib_type = Cable.tube_type
|
|
||||||
-- local netID = nvm[tlib_type.."_netID"]
|
|
||||||
-- local netw = techage.networks.get_network(tlib_type, netID)
|
|
||||||
-- if netw then -- network available
|
|
||||||
-- if not mem.new_ticker or mem.new_ticker ~= netw.ticker then
|
|
||||||
-- mem.new_ticker = netw.ticker
|
|
||||||
-- return true
|
|
||||||
-- end
|
|
||||||
-- return false
|
|
||||||
-- end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- this is more a try to start, the start will be performed by on_power()
|
-- this is more a try to start, the start will be performed by on_power()
|
||||||
function techage.power.consumer_start(pos, Cable, cycle_time)
|
function techage.power.consumer_start(pos, Cable, cycle_time)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local tlib_type = Cable.tube_type
|
||||||
nvm[tlib_type.."_calive"] = (cycle_time / 2) + 1
|
nvm[tlib_type] = nvm[tlib_type] or {}
|
||||||
nvm[tlib_type.."_cstate"] = NOPOWER
|
nvm[tlib_type]["calive"] = (cycle_time / 2) + 1
|
||||||
nvm[tlib_type.."_taken"] = 0
|
nvm[tlib_type]["cstate"] = NOPOWER
|
||||||
|
nvm[tlib_type]["taken"] = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.power.consumer_stop(pos, Cable)
|
function techage.power.consumer_stop(pos, Cable)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local tlib_type = Cable.tube_type
|
||||||
nvm[tlib_type.."_calive"] = 0
|
nvm[tlib_type] = nvm[tlib_type] or {}
|
||||||
nvm[tlib_type.."_cstate"] = STOPPED
|
nvm[tlib_type]["calive"] = 0
|
||||||
nvm[tlib_type.."_taken"] = 0
|
nvm[tlib_type]["cstate"] = STOPPED
|
||||||
|
nvm[tlib_type]["taken"] = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.power.consumer_alive(pos, Cable, cycle_time)
|
function techage.power.consumer_alive(pos, Cable, cycle_time)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local def = nvm[Cable.tube_type] -- power related network data
|
||||||
if nvm[tlib_type.."_netID"] then -- network available
|
if def then
|
||||||
nvm[tlib_type.."_calive"] = (cycle_time / 2) + 1
|
local rv = (cycle_time / 2) + 1
|
||||||
elseif nvm[tlib_type.."_cstate"] == RUNNING then
|
if def["netID"] and def["calive"] and def["calive"] < rv then -- network available
|
||||||
local ndef = net_def(pos, tlib_type)
|
def["calive"] = rv
|
||||||
ndef.on_nopower(pos)
|
elseif not def["cstate"] or def["cstate"] == RUNNING then
|
||||||
nvm[tlib_type.."_cstate"] = NOPOWER
|
local ndef = net_def(pos, Cable.tube_type)
|
||||||
|
ndef.on_nopower(pos, Cable.tube_type)
|
||||||
|
def["cstate"] = NOPOWER
|
||||||
|
return 0
|
||||||
end
|
end
|
||||||
return nvm[tlib_type.."_taken"] or 0
|
return def["taken"] or 0
|
||||||
|
else
|
||||||
|
local ndef = net_def(pos, Cable.tube_type)
|
||||||
|
ndef.on_nopower(pos, Cable.tube_type)
|
||||||
|
end
|
||||||
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -160,26 +157,31 @@ end
|
|||||||
function techage.power.generator_start(pos, Cable, cycle_time, outdir)
|
function techage.power.generator_start(pos, Cable, cycle_time, outdir)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local tlib_type = Cable.tube_type
|
||||||
nvm[tlib_type.."_galive"] = (cycle_time / 2) + 2
|
nvm[tlib_type] = nvm[tlib_type] or {}
|
||||||
nvm[tlib_type.."_gstate"] = RUNNING
|
nvm[tlib_type]["galive"] = (cycle_time / 2) + 2
|
||||||
nvm[tlib_type.."_given"] = 0
|
nvm[tlib_type]["gstate"] = RUNNING
|
||||||
|
nvm[tlib_type]["given"] = 0
|
||||||
trigger_network(pos, outdir, Cable)
|
trigger_network(pos, outdir, Cable)
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.power.generator_stop(pos, Cable, outdir)
|
function techage.power.generator_stop(pos, Cable, outdir)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local tlib_type = Cable.tube_type
|
||||||
nvm[tlib_type.."_galive"] = 0
|
nvm[tlib_type] = nvm[tlib_type] or {}
|
||||||
nvm[tlib_type.."_gstate"] = STOPPED
|
nvm[tlib_type]["galive"] = 0
|
||||||
nvm[tlib_type.."_given"] = 0
|
nvm[tlib_type]["gstate"] = STOPPED
|
||||||
|
nvm[tlib_type]["given"] = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
function techage.power.generator_alive(pos, Cable, cycle_time, outdir)
|
function techage.power.generator_alive(pos, Cable, cycle_time, outdir)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
local tlib_type = Cable.tube_type
|
local def = nvm[Cable.tube_type] -- power related network data
|
||||||
|
if def then
|
||||||
trigger_network(pos, outdir, Cable)
|
trigger_network(pos, outdir, Cable)
|
||||||
nvm[tlib_type.."_galive"] = (cycle_time / 2) + 2
|
def["galive"] = (cycle_time / 2) + 2
|
||||||
return nvm[tlib_type.."_given"] or 0
|
return def["given"] or 0
|
||||||
|
end
|
||||||
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
-- function delete_netID(pos, outdir, Cable)
|
-- function delete_netID(pos, outdir, Cable)
|
||||||
|
@ -20,7 +20,7 @@ local networks = techage.networks
|
|||||||
local Cable = techage.ElectricCable
|
local Cable = techage.ElectricCable
|
||||||
local power = techage.power
|
local power = techage.power
|
||||||
|
|
||||||
-- Primary techage.ElectricCable node
|
-- legacy node
|
||||||
minetest.register_node("techage:power_line", {
|
minetest.register_node("techage:power_line", {
|
||||||
description = S("TA Power Line"),
|
description = S("TA Power Line"),
|
||||||
tiles = {"techage_power_line.png"},
|
tiles = {"techage_power_line.png"},
|
||||||
@ -61,6 +61,7 @@ minetest.register_node("techage:power_line", {
|
|||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- new nodes lineS/lineA
|
||||||
minetest.register_node("techage:power_lineS", {
|
minetest.register_node("techage:power_lineS", {
|
||||||
description = S("TA Power Line"),
|
description = S("TA Power Line"),
|
||||||
tiles = {"techage_power_line.png"},
|
tiles = {"techage_power_line.png"},
|
||||||
|
@ -36,15 +36,15 @@ local function generator_data(gen_tbl)
|
|||||||
for i,gen in ipairs(gen_tbl or {}) do
|
for i,gen in ipairs(gen_tbl or {}) do
|
||||||
local nvm = techage.get_nvm(gen.pos)
|
local nvm = techage.get_nvm(gen.pos)
|
||||||
tbl.pow_all = tbl.pow_all + (gen.nominal or 0)
|
tbl.pow_all = tbl.pow_all + (gen.nominal or 0)
|
||||||
if nvm.ele1_gstate and nvm.ele1_gstate ~= STOPPED then
|
if nvm.ele1 and nvm.ele1.gstate and nvm.ele1.gstate ~= STOPPED then
|
||||||
tbl.num_on = tbl.num_on + 1
|
tbl.num_on = tbl.num_on + 1
|
||||||
tbl.pow_on = tbl.pow_on + (gen.nominal or 0)
|
tbl.pow_on = tbl.pow_on + (gen.nominal or 0)
|
||||||
if (nvm.ele1_galive or 0) > 0 then
|
if (nvm.ele1.galive or 0) > 0 then
|
||||||
tbl.num_act = tbl.num_act + 1
|
tbl.num_act = tbl.num_act + 1
|
||||||
tbl.pow_act = tbl.pow_act + (gen.nominal or 0)
|
tbl.pow_act = tbl.pow_act + (gen.nominal or 0)
|
||||||
if (nvm.ele1_given or 0) > 0 then
|
if (nvm.ele1.given or 0) > 0 then
|
||||||
tbl.num_used = tbl.num_used + 1
|
tbl.num_used = tbl.num_used + 1
|
||||||
tbl.pow_used = tbl.pow_used + (nvm.ele1_given or 0)
|
tbl.pow_used = tbl.pow_used + (nvm.ele1.given or 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -62,15 +62,15 @@ local function consumer_data(con_tbl)
|
|||||||
for i,gen in ipairs(con_tbl or {}) do
|
for i,gen in ipairs(con_tbl or {}) do
|
||||||
local nvm = techage.get_nvm(gen.pos)
|
local nvm = techage.get_nvm(gen.pos)
|
||||||
tbl.pow_all = tbl.pow_all + (gen.nominal or 0)
|
tbl.pow_all = tbl.pow_all + (gen.nominal or 0)
|
||||||
if nvm.ele1_cstate and nvm.ele1_cstate ~= STOPPED then
|
if nvm.ele1 and nvm.ele1.cstate and nvm.ele1.cstate ~= STOPPED then
|
||||||
tbl.num_on = tbl.num_on + 1
|
tbl.num_on = tbl.num_on + 1
|
||||||
tbl.pow_on = tbl.pow_on + (gen.nominal or 0)
|
tbl.pow_on = tbl.pow_on + (gen.nominal or 0)
|
||||||
if (nvm.ele1_calive or 0) > 0 then
|
if (nvm.ele1.calive or 0) > 0 then
|
||||||
tbl.num_act = tbl.num_act + 1
|
tbl.num_act = tbl.num_act + 1
|
||||||
tbl.pow_act = tbl.pow_act + (gen.nominal or 0)
|
tbl.pow_act = tbl.pow_act + (gen.nominal or 0)
|
||||||
if (nvm.ele1_taken or 0) > 0 then
|
if (nvm.ele1.taken or 0) > 0 then
|
||||||
tbl.num_used = tbl.num_used + 1
|
tbl.num_used = tbl.num_used + 1
|
||||||
tbl.pow_used = tbl.pow_used + (nvm.ele1_taken or 0)
|
tbl.pow_used = tbl.pow_used + (nvm.ele1.taken or 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -81,7 +81,7 @@ local function consumer_data(con_tbl)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function calc_network_data(pos, nvm)
|
local function calc_network_data(pos, nvm)
|
||||||
local netw = techage.networks.has_network("ele1", nvm.ele1_netID) or {}
|
local netw = techage.networks.has_network("ele1", nvm.ele1 and nvm.ele1.netID) or {}
|
||||||
local gen1 = generator_data(netw.gen1)
|
local gen1 = generator_data(netw.gen1)
|
||||||
local gen2 = generator_data(netw.gen2)
|
local gen2 = generator_data(netw.gen2)
|
||||||
local con1 = consumer_data(netw.con1)
|
local con1 = consumer_data(netw.con1)
|
||||||
|
@ -19,100 +19,43 @@ local N = function(pos) return minetest.get_node(pos).name end
|
|||||||
local S = techage.S
|
local S = techage.S
|
||||||
|
|
||||||
local Cable = techage.ElectricCable
|
local Cable = techage.ElectricCable
|
||||||
local power = techage.power
|
|
||||||
local networks = techage.networks
|
|
||||||
|
|
||||||
-- simpe rotation of a facedir node through all 3 axis positions
|
|
||||||
local Rotation = {[0]=
|
|
||||||
11,8,12,10,14,13,16,15,18,15,5,19,21,20,23,22,1,0,3,2,7,4,9,6
|
|
||||||
}
|
|
||||||
|
|
||||||
local function get_conn_dirs(pos, node)
|
|
||||||
local tbl = {[0]=
|
|
||||||
{R=2,L=4}, {R=1,L=3}, {R=2,L=4}, {R=1,L=3},
|
|
||||||
{R=2,L=4}, {D=5,U=6}, {R=2,L=4}, {D=5,U=6},
|
|
||||||
{R=2,L=4}, {D=5,U=6}, {R=2,L=4}, {D=5,U=6},
|
|
||||||
{D=5,U=6}, {R=1,L=3}, {D=5,U=6}, {R=1,L=3},
|
|
||||||
{D=5,U=6}, {R=1,L=3}, {D=5,U=6}, {R=1,L=3},
|
|
||||||
{R=2,L=4}, {R=1,L=3}, {R=2,L=4}, {R=1,L=3},
|
|
||||||
}
|
|
||||||
if M(pos):get_int("turned_off") == 1 then
|
|
||||||
return {}
|
|
||||||
end
|
|
||||||
return tbl[node.param2]
|
|
||||||
end
|
|
||||||
|
|
||||||
local function update_network(pos, node)
|
|
||||||
-- power.update_network(pos, nil, Cable)
|
|
||||||
for _,outdir in pairs(get_conn_dirs(pos, node)) do
|
|
||||||
power.update_network(pos, outdir, Cable)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function on_rotate(pos, node, user, mode, new_param2)
|
|
||||||
if minetest.is_protected(pos, user:get_player_name()) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
update_network(pos, node)
|
|
||||||
node.param2 = Rotation[node.param2]
|
|
||||||
minetest.swap_node(pos, node)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
|
-- primary power node
|
||||||
minetest.register_node("techage:powerswitch_box", {
|
minetest.register_node("techage:powerswitch_box", {
|
||||||
description = S("TA Power Switch Box"),
|
description = S("TA Power Switch Box"),
|
||||||
tiles = {
|
tiles = {
|
||||||
-- up, down, right, left, back, front
|
-- up, down, right, left, back, front
|
||||||
|
'techage_electric_switch.png^[transformR90',
|
||||||
|
'techage_electric_switch.png^[transformR90',
|
||||||
'techage_electric_switch.png',
|
'techage_electric_switch.png',
|
||||||
'techage_electric_switch.png',
|
'techage_electric_switch.png',
|
||||||
'techage_electric_junction.png',
|
'techage_electric_junction.png',
|
||||||
'techage_electric_junction.png',
|
'techage_electric_junction.png',
|
||||||
'techage_electric_switch.png',
|
|
||||||
'techage_electric_switch.png',
|
|
||||||
},
|
},
|
||||||
|
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{ -2/4, -1/4, -1/4, 2/4, 1/4, 1/4},
|
{ -1/4, -1/4, -2/4, 1/4, 1/4, 2/4},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
after_place_node = function(pos)
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
Cable:after_place_node(pos)
|
if not Cable:after_place_tube(pos, placer, pointed_thing) then
|
||||||
end,
|
minetest.remove_node(pos)
|
||||||
after_dig_node = function(pos)
|
return true
|
||||||
Cable:after_dig_node(pos)
|
end
|
||||||
end,
|
return false
|
||||||
tubelib2_on_update2 = function(pos, outdir, tlib2, node)
|
|
||||||
--print("powerswitch_box tubelib2_on_update2")
|
|
||||||
update_network(pos, node)
|
|
||||||
end,
|
|
||||||
on_rightclick = function(pos, node, clicker)
|
|
||||||
node.name = "techage:powerswitch_box_off"
|
|
||||||
minetest.swap_node(pos, node)
|
|
||||||
M(pos):set_int("turned_off", 1)
|
|
||||||
minetest.sound_play("techage_button", {
|
|
||||||
pos = pos,
|
|
||||||
gain = 0.5,
|
|
||||||
max_hear_distance = 5,
|
|
||||||
})
|
|
||||||
Cable:after_dig_node(pos)
|
|
||||||
update_network(pos, node)
|
|
||||||
end,
|
end,
|
||||||
|
|
||||||
networks = {
|
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||||
ele1 = {
|
Cable:after_dig_tube(pos, oldnode, oldmetadata)
|
||||||
get_sides = get_conn_dirs,
|
end,
|
||||||
--sides = networks.AllSides,
|
|
||||||
ntype = "junc",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
on_rotate = on_rotate,
|
on_rotate = screwdriver.disallow, -- important!
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {choppy=2, cracky=2, crumbly=2, techage_trowel = 1},
|
groups = {choppy=2, cracky=2, crumbly=2, techage_trowel = 1},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
@ -123,56 +66,25 @@ minetest.register_node("techage:powerswitch_box_off", {
|
|||||||
description = S("TA Power Switch Box"),
|
description = S("TA Power Switch Box"),
|
||||||
tiles = {
|
tiles = {
|
||||||
-- up, down, right, left, back, front
|
-- up, down, right, left, back, front
|
||||||
|
'techage_electric_switch.png^[transformR90',
|
||||||
|
'techage_electric_switch.png^[transformR90',
|
||||||
'techage_electric_switch.png',
|
'techage_electric_switch.png',
|
||||||
'techage_electric_switch.png',
|
'techage_electric_switch.png',
|
||||||
'techage_electric_junction.png',
|
'techage_electric_junction.png',
|
||||||
'techage_electric_junction.png',
|
'techage_electric_junction.png',
|
||||||
'techage_electric_switch.png',
|
|
||||||
'techage_electric_switch.png',
|
|
||||||
},
|
},
|
||||||
|
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{ -2/4, -1/4, -1/4, 2/4, 1/4, 1/4},
|
{ -1/4, -1/4, -2/4, 1/4, 1/4, 2/4},
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
after_place_node = function(pos)
|
|
||||||
Cable:after_place_node(pos)
|
|
||||||
end,
|
|
||||||
after_dig_node = function(pos)
|
|
||||||
Cable:after_dig_node(pos)
|
|
||||||
end,
|
|
||||||
tubelib2_on_update2 = function(pos, outdir, tlib2, node)
|
|
||||||
update_network(pos, node)
|
|
||||||
end,
|
|
||||||
on_rightclick = function(pos, node, clicker)
|
|
||||||
node.name = "techage:powerswitch_box"
|
|
||||||
minetest.swap_node(pos, node)
|
|
||||||
M(pos):set_int("turned_off", 0)
|
|
||||||
minetest.sound_play("techage_button", {
|
|
||||||
pos = pos,
|
|
||||||
gain = 0.5,
|
|
||||||
max_hear_distance = 5,
|
|
||||||
})
|
|
||||||
Cable:after_dig_node(pos)
|
|
||||||
update_network(pos, node)
|
|
||||||
end,
|
|
||||||
|
|
||||||
networks = {
|
|
||||||
ele1 = {
|
|
||||||
--sides = {},
|
|
||||||
--sides = networks.AllSides,
|
|
||||||
get_sides = get_conn_dirs,
|
|
||||||
ntype = "", -- unknown type, acting as switch off
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
on_rotate = on_rotate,
|
on_rotate = screwdriver.disallow, -- important!
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
drop = "techage:powerswitch_box",
|
drop = "techage:powerswitch_box",
|
||||||
groups = {choppy=2, cracky=2, crumbly=2, techage_trowel = 1, not_in_creative_inventory = 1},
|
groups = {choppy=2, cracky=2, crumbly=2, techage_trowel = 1, not_in_creative_inventory = 1},
|
||||||
@ -180,4 +92,11 @@ minetest.register_node("techage:powerswitch_box_off", {
|
|||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
Cable:add_secondary_node_names({"techage:powerswitch_box"})
|
minetest.register_craft({
|
||||||
|
output = "techage:powerswitch_box",
|
||||||
|
recipe = {
|
||||||
|
{"", "basic_materials:plastic_sheet", ""},
|
||||||
|
{"techage:electric_cableS", "basic_materials:copper_wire", "techage:electric_cableS"},
|
||||||
|
{"", "basic_materials:plastic_sheet", ""},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
@ -48,21 +48,14 @@ local function pop()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function power_distribution(network, tlib_type)
|
|
||||||
local t = minetest.get_us_time()
|
|
||||||
power.power_distribution(network, tlib_type, techage.SystemTime)
|
|
||||||
t = minetest.get_us_time() - t
|
|
||||||
--print("t = "..t..", #jobs = "..(last + 1 - first))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Scheduler
|
-- Scheduler
|
||||||
minetest.register_globalstep(function(dtime)
|
minetest.register_globalstep(function(dtime)
|
||||||
techage.SystemTime = techage.SystemTime + dtime
|
techage.SystemTime = techage.SystemTime + dtime
|
||||||
local item = pop()
|
local item = pop()
|
||||||
while item do
|
while item do
|
||||||
local network = networks.get_network(item.tube_type, item.netID)
|
local network = networks.peek_network(item.tube_type, item.netID)
|
||||||
if network and network.alive and network.alive >= 0 then
|
if network and network.alive and network.alive >= 0 then
|
||||||
power_distribution(network, item.tube_type)
|
power.power_distribution(network, item.tube_type)
|
||||||
network.alive = network.alive - 1
|
network.alive = network.alive - 1
|
||||||
push(item)
|
push(item)
|
||||||
else
|
else
|
||||||
|
@ -102,7 +102,7 @@ minetest.register_on_dignode(function(pos, oldnode, digger)
|
|||||||
techage.ElectricCable:after_dig_node(pos, oldnode, digger)
|
techage.ElectricCable:after_dig_node(pos, oldnode, digger)
|
||||||
--techage.BiogasPipe:after_dig_node(pos, oldnode, digger)
|
--techage.BiogasPipe:after_dig_node(pos, oldnode, digger)
|
||||||
-- probably a hidden node with mem data
|
-- probably a hidden node with mem data
|
||||||
tubelib2.del_mem(pos)
|
techage.del_mem(pos)
|
||||||
else
|
else
|
||||||
-- store pos for other tools without own 'register_on_dignode'
|
-- store pos for other tools without own 'register_on_dignode'
|
||||||
techage.dug_node[digger:get_player_name()] = pos
|
techage.dug_node[digger:get_player_name()] = pos
|
||||||
|
Loading…
Reference in New Issue
Block a user