Example #1
0
        protected override WireUtilityNetworkLink AddNetworkLink(GameObject go)
        {
            WireUtilityNetworkLink wireUtilityNetworkLink = base.AddNetworkLink(go);

            wireUtilityNetworkLink.maxWattageRating = ExtendedWire.WattageRating.Max1GW.ToWireWattageRating();
            return(wireUtilityNetworkLink);
        }
Example #2
0
        protected override WireUtilityNetworkLink AddNetworkLink(GameObject go)
        {
            WireUtilityNetworkLink utilityNetworkLink = base.AddNetworkLink(go);

            utilityNetworkLink.maxWattageRating = Wire.WattageRating.Max20000;
            return(utilityNetworkLink);
        }
Example #3
0
    public override void DoPostConfigureComplete(GameObject go)
    {
        WireUtilityNetworkLink wireUtilityNetworkLink = this.AddNetworkLink(go);

        wireUtilityNetworkLink.visualizeOnly = false;
        go.AddOrGet <BuildingCellVisualizer>();
    }
Example #4
0
    public override void DoPostConfigureUnderConstruction(GameObject go)
    {
        base.DoPostConfigureUnderConstruction(go);
        WireUtilityNetworkLink wireUtilityNetworkLink = this.AddNetworkLink(go);

        wireUtilityNetworkLink.visualizeOnly = true;
        go.AddOrGet <BuildingCellVisualizer>();
    }
Example #5
0
    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;
 }
Example #10
0
 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);
     }
 }