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; }
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); } }