protected override WireUtilityNetworkLink AddNetworkLink(GameObject go) { WireUtilityNetworkLink wireUtilityNetworkLink = base.AddNetworkLink(go); wireUtilityNetworkLink.maxWattageRating = ExtendedWire.WattageRating.Max1GW.ToWireWattageRating(); return(wireUtilityNetworkLink); }
protected override WireUtilityNetworkLink AddNetworkLink(GameObject go) { WireUtilityNetworkLink utilityNetworkLink = base.AddNetworkLink(go); utilityNetworkLink.maxWattageRating = Wire.WattageRating.Max20000; return(utilityNetworkLink); }
public override void DoPostConfigureComplete(GameObject go) { WireUtilityNetworkLink wireUtilityNetworkLink = this.AddNetworkLink(go); wireUtilityNetworkLink.visualizeOnly = false; go.AddOrGet <BuildingCellVisualizer>(); }
public override void DoPostConfigureUnderConstruction(GameObject go) { base.DoPostConfigureUnderConstruction(go); WireUtilityNetworkLink wireUtilityNetworkLink = this.AddNetworkLink(go); wireUtilityNetworkLink.visualizeOnly = true; go.AddOrGet <BuildingCellVisualizer>(); }
public override void DoPostConfigurePreview(BuildingDef def, GameObject go) { base.DoPostConfigurePreview(def, go); WireUtilityNetworkLink wireUtilityNetworkLink = this.AddNetworkLink(go); wireUtilityNetworkLink.visualizeOnly = true; go.AddOrGet <BuildingCellVisualizer>(); }
protected virtual WireUtilityNetworkLink AddNetworkLink(GameObject go) { WireUtilityNetworkLink utilityNetworkLink = go.AddOrGet <WireUtilityNetworkLink>(); utilityNetworkLink.maxWattageRating = Wire.WattageRating.Max50000; utilityNetworkLink.link1 = new CellOffset(-1, 0); utilityNetworkLink.link2 = new CellOffset(1, 0); return(utilityNetworkLink); }
public void Disconnect(WireUtilityNetworkLink bridge) { bridges.Remove(bridge); dirty = true; }
public void Connect(WireUtilityNetworkLink bridge) { bridges.Add(bridge); dirty = true; }
public void Rebuild() { for (int i = 0; i < this.circuitInfo.Count; i++) { CircuitInfo value = this.circuitInfo[i]; value.generators.Clear(); value.consumers.Clear(); value.batteries.Clear(); value.inputTransformers.Clear(); value.outputTransformers.Clear(); value.minBatteryPercentFull = 1f; for (int j = 0; j < value.bridgeGroups.Length; j++) { value.bridgeGroups[j].Clear(); } this.circuitInfo[i] = value; } consumersShadow.AddRange(consumers); List <IEnergyConsumer> .Enumerator enumerator = consumersShadow.GetEnumerator(); while (enumerator.MoveNext()) { IEnergyConsumer current = enumerator.Current; int powerCell = current.PowerCell; ushort circuitID = GetCircuitID(powerCell); if (circuitID != 65535) { Battery battery = current as Battery; if ((Object)battery != (Object)null) { Operational component = battery.GetComponent <Operational>(); if ((Object)component == (Object)null || component.IsOperational) { CircuitInfo value2 = this.circuitInfo[circuitID]; PowerTransformer powerTransformer = battery.powerTransformer; if ((Object)powerTransformer != (Object)null) { value2.inputTransformers.Add(battery); } else { value2.batteries.Add(battery); CircuitInfo circuitInfo = this.circuitInfo[circuitID]; value2.minBatteryPercentFull = Mathf.Min(circuitInfo.minBatteryPercentFull, battery.PercentFull); } this.circuitInfo[circuitID] = value2; } } else { CircuitInfo circuitInfo2 = this.circuitInfo[circuitID]; circuitInfo2.consumers.Add(current); } } } consumersShadow.Clear(); for (int k = 0; k < this.circuitInfo.Count; k++) { CircuitInfo circuitInfo3 = this.circuitInfo[k]; circuitInfo3.consumers.Sort((IEnergyConsumer a, IEnergyConsumer b) => a.WattsNeededWhenActive.CompareTo(b.WattsNeededWhenActive)); } HashSet <Generator> .Enumerator enumerator2 = generators.GetEnumerator(); while (enumerator2.MoveNext()) { Generator current2 = enumerator2.Current; int powerCell2 = current2.PowerCell; ushort circuitID2 = GetCircuitID(powerCell2); if (circuitID2 != 65535) { if (current2.GetType() == typeof(PowerTransformer)) { CircuitInfo circuitInfo4 = this.circuitInfo[circuitID2]; circuitInfo4.outputTransformers.Add(current2); } else { CircuitInfo circuitInfo5 = this.circuitInfo[circuitID2]; circuitInfo5.generators.Add(current2); } } } HashSet <WireUtilityNetworkLink> .Enumerator enumerator3 = bridges.GetEnumerator(); while (enumerator3.MoveNext()) { WireUtilityNetworkLink current3 = enumerator3.Current; current3.GetCells(out int linked_cell, out int _); ushort circuitID3 = GetCircuitID(linked_cell); if (circuitID3 != 65535) { Wire.WattageRating maxWattageRating = current3.GetMaxWattageRating(); CircuitInfo circuitInfo6 = this.circuitInfo[circuitID3]; circuitInfo6.bridgeGroups[(int)maxWattageRating].Add(current3); } } dirty = false; }
public void DrawIcons(HashedString mode) { if (mode == OverlayModes.Power.ID) { if (RequiresPower) { bool flag = (UnityEngine.Object)(building as BuildingPreview) != (UnityEngine.Object)null; BuildingEnabledButton component = building.GetComponent <BuildingEnabledButton>(); int powerInputCell = building.GetPowerInputCell(); if (RequiresPowerInput) { int circuitID = Game.Instance.circuitManager.GetCircuitID(powerInputCell); Color tint = (!((UnityEngine.Object)component != (UnityEngine.Object)null) || component.IsEnabled) ? Color.white : Color.gray; Sprite icon_img = (flag || circuitID == 65535) ? resources.electricityInputIcon : resources.electricityConnectedIcon; DrawUtilityIcon(powerInputCell, icon_img, ref inputVisualizer, tint, GetWireColor(powerInputCell), 1f, false); } if (RequiresPowerOutput) { int powerOutputCell = building.GetPowerOutputCell(); int circuitID2 = Game.Instance.circuitManager.GetCircuitID(powerOutputCell); Color color = (!building.Def.UseWhitePowerOutputConnectorColour) ? resources.electricityOutputColor : Color.white; Color32 c = (!((UnityEngine.Object)component != (UnityEngine.Object)null) || component.IsEnabled) ? color : Color.gray; Sprite icon_img2 = (flag || circuitID2 == 65535) ? resources.electricityInputIcon : resources.electricityConnectedIcon; DrawUtilityIcon(powerOutputCell, icon_img2, ref outputVisualizer, c, GetWireColor(powerOutputCell), 1f, false); } } else { bool flag2 = true; Switch component2 = GetComponent <Switch>(); if ((UnityEngine.Object)component2 != (UnityEngine.Object)null) { int cell = Grid.PosToCell(base.transform.GetPosition()); Color32 c2 = (!component2.IsHandlerOn()) ? resources.switchOffColor : resources.switchColor; DrawUtilityIcon(cell, resources.switchIcon, ref outputVisualizer, c2, Color.white, 1f, false); flag2 = false; } else { WireUtilityNetworkLink component3 = GetComponent <WireUtilityNetworkLink>(); if ((UnityEngine.Object)component3 != (UnityEngine.Object)null) { component3.GetCells(out int linked_cell, out int linked_cell2); DrawUtilityIcon(linked_cell, (Game.Instance.circuitManager.GetCircuitID(linked_cell) != 65535) ? resources.electricityConnectedIcon : resources.electricityBridgeIcon, ref inputVisualizer, resources.electricityInputColor, Color.white, 1f, false); DrawUtilityIcon(linked_cell2, (Game.Instance.circuitManager.GetCircuitID(linked_cell2) != 65535) ? resources.electricityConnectedIcon : resources.electricityBridgeIcon, ref outputVisualizer, resources.electricityInputColor, Color.white, 1f, false); flag2 = false; } } if (flag2) { DisableIcons(); } } } else if (mode == OverlayModes.GasConduits.ID) { if (RequiresGas || (secondary_ports & (Ports.GasIn | Ports.GasOut)) != 0) { if ((ports & Ports.GasIn) != 0) { bool flag3 = (UnityEngine.Object)null != (UnityEngine.Object)Grid.Objects[building.GetUtilityInputCell(), 12]; BuildingCellVisualizerResources.ConnectedDisconnectedColours input = resources.gasIOColours.input; Color tint2 = (!flag3) ? input.disconnected : input.connected; DrawUtilityIcon(building.GetUtilityInputCell(), resources.gasInputIcon, ref inputVisualizer, tint2); } if ((ports & Ports.GasOut) != 0) { bool flag4 = (UnityEngine.Object)null != (UnityEngine.Object)Grid.Objects[building.GetUtilityOutputCell(), 12]; BuildingCellVisualizerResources.ConnectedDisconnectedColours output = resources.gasIOColours.output; Color tint3 = (!flag4) ? output.disconnected : output.connected; DrawUtilityIcon(building.GetUtilityOutputCell(), resources.gasOutputIcon, ref outputVisualizer, tint3); } if ((secondary_ports & Ports.GasIn) != 0) { CellOffset secondaryConduitOffset = building.GetComponent <ISecondaryInput>().GetSecondaryConduitOffset(); int visualizerCell = GetVisualizerCell(building, secondaryConduitOffset); DrawUtilityIcon(visualizerCell, resources.gasInputIcon, ref secondaryInputVisualizer, secondInputColour, Color.white, 1.5f, false); } if ((secondary_ports & Ports.GasOut) != 0) { CellOffset secondaryConduitOffset2 = building.GetComponent <ISecondaryOutput>().GetSecondaryConduitOffset(); int visualizerCell2 = GetVisualizerCell(building, secondaryConduitOffset2); DrawUtilityIcon(visualizerCell2, resources.gasOutputIcon, ref secondaryOutputVisualizer, secondOutputColour, Color.white, 1.5f, false); } } else { DisableIcons(); } } else if (mode == OverlayModes.LiquidConduits.ID) { if (RequiresLiquid || (secondary_ports & (Ports.LiquidIn | Ports.LiquidOut)) != 0) { if ((ports & Ports.LiquidIn) != 0) { bool flag5 = (UnityEngine.Object)null != (UnityEngine.Object)Grid.Objects[building.GetUtilityInputCell(), 16]; BuildingCellVisualizerResources.ConnectedDisconnectedColours input2 = resources.liquidIOColours.input; Color tint4 = (!flag5) ? input2.disconnected : input2.connected; DrawUtilityIcon(building.GetUtilityInputCell(), resources.liquidInputIcon, ref inputVisualizer, tint4); } if ((ports & Ports.LiquidOut) != 0) { bool flag6 = (UnityEngine.Object)null != (UnityEngine.Object)Grid.Objects[building.GetUtilityOutputCell(), 16]; BuildingCellVisualizerResources.ConnectedDisconnectedColours output2 = resources.liquidIOColours.output; Color tint5 = (!flag6) ? output2.disconnected : output2.connected; DrawUtilityIcon(building.GetUtilityOutputCell(), resources.liquidOutputIcon, ref outputVisualizer, tint5); } if ((secondary_ports & Ports.LiquidIn) != 0) { CellOffset secondaryConduitOffset3 = building.GetComponent <ISecondaryInput>().GetSecondaryConduitOffset(); int visualizerCell3 = GetVisualizerCell(building, secondaryConduitOffset3); DrawUtilityIcon(visualizerCell3, resources.liquidInputIcon, ref secondaryInputVisualizer, secondInputColour, Color.white, 1.5f, false); } if ((secondary_ports & Ports.LiquidOut) != 0) { CellOffset secondaryConduitOffset4 = building.GetComponent <ISecondaryOutput>().GetSecondaryConduitOffset(); int visualizerCell4 = GetVisualizerCell(building, secondaryConduitOffset4); DrawUtilityIcon(visualizerCell4, resources.liquidOutputIcon, ref secondaryOutputVisualizer, secondOutputColour, Color.white, 1.5f, false); } } else { DisableIcons(); } } else if (mode == OverlayModes.SolidConveyor.ID) { if (RequiresSolid) { if ((ports & Ports.SolidIn) != 0) { bool flag7 = (UnityEngine.Object)null != (UnityEngine.Object)Grid.Objects[building.GetUtilityInputCell(), 20]; BuildingCellVisualizerResources.ConnectedDisconnectedColours input3 = resources.liquidIOColours.input; Color tint6 = (!flag7) ? input3.disconnected : input3.connected; DrawUtilityIcon(building.GetUtilityInputCell(), resources.liquidInputIcon, ref inputVisualizer, tint6); } if ((ports & Ports.SolidOut) != 0) { bool flag8 = (UnityEngine.Object)null != (UnityEngine.Object)Grid.Objects[building.GetUtilityOutputCell(), 20]; BuildingCellVisualizerResources.ConnectedDisconnectedColours output3 = resources.liquidIOColours.output; Color tint7 = (!flag8) ? output3.disconnected : output3.connected; DrawUtilityIcon(building.GetUtilityOutputCell(), resources.liquidOutputIcon, ref outputVisualizer, tint7); } } else { DisableIcons(); } } else if (mode == OverlayModes.Disease.ID && (UnityEngine.Object)diseaseSourceSprite != (UnityEngine.Object)null) { int utilityOutputCell = building.GetUtilityOutputCell(); DrawUtilityIcon(utilityOutputCell, diseaseSourceSprite, ref inputVisualizer, diseaseSourceColour); } }