public AirNet( IEnumerable< CompAir > newNodes, NetLayer layer, CompAir root ) { Layer = layer; var compAirs = newNodes.ToList(); foreach ( var current in compAirs ) { RegisterNode( current ); current.connectedNet = this; } checked { debugId = debugIdNext++; } this.root = root; var intake = compAirs.Where( s => s.GetType() == typeof ( CompAirTrader ) ) .Cast< CompAirTrader >() .ToList() .Find( s => s.parent.def.defName == "RedistHeat_DuctIntake" || s.parent.def.defName == "RedistHeat_DuctCooler" ); if ( intake == null || intake.netTemp == 999 ) { NetTemperature = GenTemperature.OutdoorTemp; } else { NetTemperature = intake.netTemp; } }
public AirNet(IEnumerable <CompAir> newNodes, NetLayer layer, CompAir root) { Layer = layer; var compAirs = newNodes.ToList(); foreach (var current in compAirs) { RegisterNode(current); current.connectedNet = this; } checked { debugId = debugIdNext++; } this.root = root; var intake = compAirs.Where(s => s.GetType() == typeof(CompAirTrader)) .Cast <CompAirTrader>() .ToList() .Find( s => s.parent.def.defName == "RedistHeat_DuctIntake" || s.parent.def.defName == "RedistHeat_DuctCooler"); if (intake == null || intake.netTemp == 999) { NetTemperature = GenTemperature.OutdoorTemp; } else { NetTemperature = intake.netTemp; } }
public static Graphic GetLayeredOverlayGraphic( CompAir compAir ) { if ( compAir.IsLayerOf( NetLayer.Lower ) ) return LinkedOverlayGraphic[(int) NetLayer.Lower]; if ( compAir.IsLayerOf( NetLayer.Upper ) ) return LinkedOverlayGraphic[(int) NetLayer.Upper]; throw new ArgumentOutOfRangeException(nameof( compAir ), "LT-RH: compAir has no valid net layer!"); }
public void RegisterNode(CompAir node) { if (nodes.Contains(node)) { Log.Error("RedistHeat: AirNet adding node " + node + " which it already has."); } else { nodes.Add(node); } }
public static Graphic GetLayeredOverlayGraphic(CompAir compAir) { if (compAir.IsLayerOf(NetLayer.Lower)) { return(LinkedOverlayGraphic[(int)NetLayer.Lower]); } if (compAir.IsLayerOf(NetLayer.Upper)) { return(LinkedOverlayGraphic[(int)NetLayer.Upper]); } throw new ArgumentOutOfRangeException(nameof(compAir), "LT-RH: compAir has no valid net layer!"); }
public static void NotifyCompLayerChange(CompAir compAir, NetLayer oldLayer) { if (oldLayer == compAir.currentLayer) { Log.Error("RedistHeat: Tried to change " + compAir + "\'s layer to " + compAir.currentLayer + ", which is not different!"); return; } oldComps[(int)oldLayer].Add(compAir); newComps[(int)compAir.currentLayer].Add(compAir); AddToGraphicUpdateList(compAir); }
public AirNet(IEnumerable <CompAir> newNodes, NetLayer layer, CompAir root, Map map) { Layer = layer; pushers = 0; pullers = 0; var compAirs = newNodes.ToList(); foreach (var current in compAirs) { RegisterNode(current); current.connectedNet = this; /*if (current.GetType() == typeof(CompAirTrader)) * { * var units = ((CompAirTrader)current).Props.units; * if (units > 0) * { * pushers += units; * } * else * { * pullers += -units; * } * }*/ } checked { debugId = debugIdNext++; } this.root = root; var intake = compAirs.Where(s => s.GetType() == typeof(CompAirTrader)) .Cast <CompAirTrader>() .ToList() .Find( s => s.parent.def.defName == "RedistHeat_DuctIntake" || s.parent.def.defName == "RedistHeat_DuctCooler"); if (intake == null || intake.netTemp == 999) { NetTemperature = map.mapTemperature.OutdoorTemp; } else { NetTemperature = intake.netTemp; } }
public static void NotifyCompDespawn(CompAir compAir) { if (!isReady) { return; } if (compAir.IsLayerOf(NetLayer.Lower)) { oldComps[(int)NetLayer.Lower].Add(compAir); } if (compAir.IsLayerOf(NetLayer.Upper)) { oldComps[(int)NetLayer.Upper].Add(compAir); } #if DEBUG Log.Message("RedistHeat: Despawning " + compAir.parent); #endif AddToGraphicUpdateList(compAir); }
public static void NotifyCompSpawn(CompAir compAir) { if (!isReady) { return; } if (compAir.IsLayerOf(NetLayer.Lower)) { newComps[(int)NetLayer.Lower].Add(compAir); } else if (compAir.IsLayerOf(NetLayer.Upper)) { newComps[(int)NetLayer.Upper].Add(compAir); } #if DEBUG Log.Message("LT-RH: Spawning " + compAir.parent); #endif AddToGraphicUpdateList(compAir); }
public void RegisterNode( CompAir node ) { if ( nodes.Contains( node ) ) { Log.Error( "LT-RH: AirNet adding node " + node + " which it already has." ); } else { nodes.Add( node ); } }
public void DeregisterNode( CompAir node ) { nodes.Remove( node ); }
public void DeregisterNode(CompAir node) { nodes.Remove(node); }
public AirNet(IEnumerable <CompAir> newNodes, NetLayer layer, CompAir root, Map map) { var intakeRoomTemp = -500f; netTemperature = -500f; Layer = layer; pushers = 0; pullers = 0; this.root = root; debugId = debugIdNext++; foreach (var current in newNodes) { RegisterNode(current); current.connectedNet = this; if (netTemperature >= Common.AbsoluteZero) { continue; } /*switch (current) * { * case CompAirTrader airTrader: * if (airTrader.Props.units > 0) * { * AddPusherOrPuller(airTrader); * var room = airTrader.parent.GetRoom(); * if (room != null) * { * intakeRoomTemp = room.Temperature; * } * } * * if (airTrader.netTemp >= Common.AbsoluteZero) * { * netTemperature = airTrader.netTemp; * } * break; * }*/ if (current is CompAirTrader) { var airTrader = (CompAirTrader)current; if (airTrader.Props.units > 0) { AddPusherOrPuller(airTrader); var room = airTrader.parent.GetRoom(); if (room != null) { intakeRoomTemp = room.Temperature; } } if (airTrader.netTemp >= Common.AbsoluteZero) { netTemperature = airTrader.netTemp; } } } if (netTemperature < Common.AbsoluteZero) { netTemperature = intakeRoomTemp < Common.AbsoluteZero ? intakeRoomTemp : map.mapTemperature.OutdoorTemp; } }
public static void NotifyCompSpawn( CompAir compAir ) { if (!isReady) { return; } if (compAir.IsLayerOf( NetLayer.Lower )) { newComps[(int) NetLayer.Lower].Add( compAir ); } else if (compAir.IsLayerOf( NetLayer.Upper )) { newComps[(int) NetLayer.Upper].Add( compAir ); } #if DEBUG Log.Message("RedistHeat: Spawning " + compAir.parent ); #endif AddToGraphicUpdateList( compAir ); }
public static void NotifyCompLayerChange( CompAir compAir, NetLayer oldLayer ) { if (oldLayer == compAir.currentLayer) { Log.Error("RedistHeat: Tried to change " + compAir + "\'s layer to " + compAir.currentLayer + ", which is not different!" ); return; } oldComps[(int) oldLayer].Add( compAir ); newComps[(int) compAir.currentLayer].Add( compAir ); AddToGraphicUpdateList( compAir ); }
public static void NotifyCompDespawn( CompAir compAir ) { if ( !isReady ) return; if ( compAir.IsLayerOf( NetLayer.Lower ) ) { oldComps[(int) NetLayer.Lower].Add( compAir ); } if ( compAir.IsLayerOf( NetLayer.Upper ) ) { oldComps[(int) NetLayer.Upper].Add( compAir ); } #if DEBUG Log.Message("LT-RH: Despawning " + compAir.parent); #endif AddToGraphicUpdateList( compAir ); }