mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
There that will be the temp fix on the infinite loop. Fixing the actual problem now. This is a revert btw.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1918 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
+63
-14
@@ -454,14 +454,40 @@
|
||||
if(TC.netnum != netnum)
|
||||
var/datum/powernet/PN = powernets[netnum]
|
||||
var/datum/powernet/TPN = powernets[TC.netnum]
|
||||
|
||||
PN.merge_powernets(TPN)
|
||||
var/kingNetnum = netnum
|
||||
if(PN.cables.len + PN.nodes.len < TPN.cables.len + TPN.nodes.len)
|
||||
kingNetnum = TC.netnum
|
||||
var/datum/powernet/temp = PN
|
||||
PN = TPN
|
||||
TPN = temp
|
||||
for(var/obj/cable/C in TPN.cables)
|
||||
TPN.cables -= C
|
||||
PN.cables += C
|
||||
C.netnum = kingNetnum
|
||||
for(var/obj/machinery/power/M in TPN.nodes)
|
||||
if(M.netnum < 0) // APCs have netnum=-1 so they don't count as network nodes directly
|
||||
continue
|
||||
TPN.nodes -= M
|
||||
PN.nodes += M
|
||||
M.netnum = kingNetnum
|
||||
M.powernet = powernets[M.netnum]
|
||||
TC.netnum = kingNetnum
|
||||
TPN.cables -= TC
|
||||
PN.cables += TC
|
||||
for(var/obj/machinery/power/M in TB)
|
||||
if(!netnum)
|
||||
if(!M.netnum)
|
||||
continue
|
||||
else
|
||||
netnum = M.netnum
|
||||
var/datum/powernet/PN = powernets[netnum]
|
||||
PN.nodes += src
|
||||
|
||||
/obj/cable/proc/mergeConnectedNetworksOnTurf()
|
||||
var/turf/TB
|
||||
TB = loc
|
||||
|
||||
|
||||
for(var/obj/cable/C in loc)
|
||||
|
||||
for(var/obj/cable/C in TB)
|
||||
if(C == src)
|
||||
continue
|
||||
if(netnum == 0)
|
||||
@@ -469,13 +495,19 @@
|
||||
netnum = C.netnum
|
||||
PN.cables += src
|
||||
continue
|
||||
|
||||
var/datum/powernet/PN = powernets[netnum]
|
||||
var/datum/powernet/TPN = powernets[C.netnum]
|
||||
var/kingNetnum = netnum
|
||||
if(PN.cables.len + PN.nodes.len < TPN.cables.len + TPN.nodes.len)
|
||||
kingNetnum = C.netnum
|
||||
var/datum/powernet/temp = PN
|
||||
PN = TPN
|
||||
TPN = temp
|
||||
|
||||
PN.merge_powernets(TPN)
|
||||
|
||||
for(var/obj/machinery/power/M in loc)
|
||||
TPN.cables -= C
|
||||
PN.cables += C
|
||||
C.netnum = kingNetnum
|
||||
for(var/obj/machinery/power/M in TB)
|
||||
|
||||
if(M.netnum < 0)
|
||||
continue
|
||||
@@ -487,10 +519,18 @@
|
||||
|
||||
var/datum/powernet/PN = powernets[netnum]
|
||||
var/datum/powernet/TPN = powernets[M.netnum]
|
||||
var/kingNetnum = netnum
|
||||
if(PN.cables.len + PN.nodes.len < TPN.cables.len + TPN.nodes.len)
|
||||
kingNetnum = M.netnum
|
||||
var/datum/powernet/temp = PN
|
||||
PN = TPN
|
||||
TPN = temp
|
||||
|
||||
PN.merge_powernets(TPN)
|
||||
|
||||
for(var/obj/machinery/power/apc/N in loc)
|
||||
TPN.nodes -= M
|
||||
PN.nodes += M
|
||||
M.netnum = kingNetnum
|
||||
M.powernet = powernets[M.netnum]
|
||||
for(var/obj/machinery/power/apc/N in TB)
|
||||
var/obj/machinery/power/M
|
||||
M = N.terminal
|
||||
|
||||
@@ -505,8 +545,17 @@
|
||||
|
||||
var/datum/powernet/PN = powernets[netnum]
|
||||
var/datum/powernet/TPN = powernets[M.netnum]
|
||||
var/kingNetnum = netnum
|
||||
if(PN.cables.len + PN.nodes.len < TPN.cables.len + TPN.nodes.len)
|
||||
kingNetnum = M.netnum
|
||||
var/datum/powernet/temp = PN
|
||||
PN = TPN
|
||||
TPN = temp
|
||||
|
||||
PN.merge_powernets(TPN)
|
||||
TPN.nodes -= M
|
||||
PN.nodes += M
|
||||
M.netnum = kingNetnum
|
||||
M.powernet = powernets[M.netnum]
|
||||
|
||||
obj/cable/proc/cableColor(var/colorC)
|
||||
var/color_n = "red"
|
||||
@@ -521,4 +570,4 @@ obj/cable/proc/cableColor(var/colorC)
|
||||
if("green")
|
||||
icon = 'power_cond_green.dmi'
|
||||
if("blue")
|
||||
icon = 'power_cond_blue.dmi'
|
||||
icon = 'power_cond_blue.dmi'
|
||||
Reference in New Issue
Block a user