static void SwapFlowColour(BuildingCellVisualizerResources instance)
        {
            BuildingCellVisualizerResources.ConnectedDisconnectedColours input = instance.liquidIOColours.input;
            instance.liquidIOColours.input  = instance.liquidIOColours.output;
            instance.liquidIOColours.output = input;

            BuildingCellVisualizerResources.ConnectedDisconnectedColours input2 = instance.gasIOColours.input;
            instance.gasIOColours.input  = instance.gasIOColours.output;
            instance.gasIOColours.output = input2;
        }
Exemplo n.º 2
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);
     }
 }