public override void OnUpdate(float realTimeDelta, float simulationTimeDelta)
        {
            if (Event.current.alt && Input.GetKeyDown(KeyCode.T))
            {
                var manager = Singleton <InfoManager> .instance;
                UIView.playSoundDelegate(UIView.GetAView().defaultClickSound, 1f);

                if (manager.CurrentMode != InfoManager.InfoMode.TerrainHeight)
                {
                    BuildingTool currentTool = ToolsModifierControl.GetCurrentTool <BuildingTool>();
                    if (currentTool != null && currentTool.m_relocate != 0)
                    {
                        currentTool.CancelRelocate();
                    }
                    Singleton <InfoViewsPanel> .instance.CloseToolbar();

                    WorldInfoPanel.HideAllWorldInfoPanels();
                    if (Singleton <InfoManager> .exists)
                    {
                        m_previousMode        = manager.CurrentMode;
                        m_previousSubInfoMode = manager.CurrentSubMode;
                        Singleton <InfoManager> .instance.SetCurrentMode(InfoManager.InfoMode.TerrainHeight, InfoManager.SubInfoMode.Default);

                        Singleton <GuideManager> .instance.InfoViewUsed();
                    }
                }
                else
                {
                    Singleton <InfoViewsPanel> .instance.CloseToolbar();

                    manager.SetCurrentMode(m_previousMode, m_previousSubInfoMode);
                    Singleton <GuideManager> .instance.InfoViewUsed();
                }
            }
        }
Exemple #2
0
 public void Update()
 {
     if (!InfoManager.exists || InfoManager.instance.CurrentMode == cachedInfoMode)
     {
         return;
     }
     if (InfoManager.instance.CurrentMode == InfoManager.InfoMode.None)
     {
         if (!NaturalResourceManager.exists)
         {
             return;
         }
         if (NaturalResourceManager.instance.m_resourceTexture != null)
         {
             Shader.SetGlobalTexture("_NaturalResources", (Texture)NaturalResourceManager.instance.m_resourceTexture);
         }
         if (NaturalResourceManager.instance.m_destructionTexture != null)
         {
             Shader.SetGlobalTexture("_NaturalDestruction", (Texture)NaturalResourceManager.instance.m_destructionTexture);
         }
     }
     else
     {
         if (NaturalResourcesManagerDetour.infoViewTexture != null)
         {
             Shader.SetGlobalTexture("_NaturalResources", (Texture)NaturalResourcesManagerDetour.infoViewTexture);
         }
         if (NaturalResourcesManagerDetour.infoViewTextureB != null)
         {
             Shader.SetGlobalTexture("_NaturalDestruction", (Texture)NaturalResourcesManagerDetour.infoViewTextureB);
         }
     }
     cachedInfoMode = InfoManager.instance.CurrentMode;
 }
        //UI stuff

        public override Color GetColor(
            ushort vehicleID,
            ref Vehicle data,
            InfoManager.InfoMode infoMode)
        {
            switch (infoMode)
            {
            case InfoManager.InfoMode.Transport:
                return(Singleton <TransportManager> .instance.m_properties.m_transportColors[(int)this.m_transportInfo.m_transportType]);

            case InfoManager.InfoMode.Connections:
                InfoManager.SubInfoMode        currentSubMode = Singleton <InfoManager> .instance.CurrentSubMode;
                TransferManager.TransferReason transferType   = (TransferManager.TransferReason)data.m_transferType;
                if (currentSubMode == InfoManager.SubInfoMode.Default && (data.m_flags & Vehicle.Flags.Importing) != ~(Vehicle.Flags.Created | Vehicle.Flags.Deleted | Vehicle.Flags.Spawned | Vehicle.Flags.Inverted | Vehicle.Flags.TransferToTarget | Vehicle.Flags.TransferToSource | Vehicle.Flags.Emergency1 | Vehicle.Flags.Emergency2 | Vehicle.Flags.WaitingPath | Vehicle.Flags.Stopped | Vehicle.Flags.Leaving | Vehicle.Flags.Arriving | Vehicle.Flags.Reversed | Vehicle.Flags.TakingOff | Vehicle.Flags.Flying | Vehicle.Flags.Landing | Vehicle.Flags.WaitingSpace | Vehicle.Flags.WaitingCargo | Vehicle.Flags.GoingBack | Vehicle.Flags.WaitingTarget | Vehicle.Flags.Importing | Vehicle.Flags.Exporting | Vehicle.Flags.Parking | Vehicle.Flags.CustomName | Vehicle.Flags.OnGravel | Vehicle.Flags.WaitingLoading | Vehicle.Flags.Congestion | Vehicle.Flags.DummyTraffic | Vehicle.Flags.Underground | Vehicle.Flags.Transition | Vehicle.Flags.InsideBuilding | Vehicle.Flags.LeftHandDrive) && transferType != TransferManager.TransferReason.None)
                {
                    return(Singleton <TransferManager> .instance.m_properties.m_resourceColors[(int)transferType]);
                }
                return(currentSubMode == InfoManager.SubInfoMode.WaterPower && (data.m_flags & Vehicle.Flags.Exporting) != ~(Vehicle.Flags.Created | Vehicle.Flags.Deleted | Vehicle.Flags.Spawned | Vehicle.Flags.Inverted | Vehicle.Flags.TransferToTarget | Vehicle.Flags.TransferToSource | Vehicle.Flags.Emergency1 | Vehicle.Flags.Emergency2 | Vehicle.Flags.WaitingPath | Vehicle.Flags.Stopped | Vehicle.Flags.Leaving | Vehicle.Flags.Arriving | Vehicle.Flags.Reversed | Vehicle.Flags.TakingOff | Vehicle.Flags.Flying | Vehicle.Flags.Landing | Vehicle.Flags.WaitingSpace | Vehicle.Flags.WaitingCargo | Vehicle.Flags.GoingBack | Vehicle.Flags.WaitingTarget | Vehicle.Flags.Importing | Vehicle.Flags.Exporting | Vehicle.Flags.Parking | Vehicle.Flags.CustomName | Vehicle.Flags.OnGravel | Vehicle.Flags.WaitingLoading | Vehicle.Flags.Congestion | Vehicle.Flags.DummyTraffic | Vehicle.Flags.Underground | Vehicle.Flags.Transition | Vehicle.Flags.InsideBuilding | Vehicle.Flags.LeftHandDrive) && transferType != TransferManager.TransferReason.None ? Singleton <TransferManager> .instance.m_properties.m_resourceColors[(int)transferType] : Singleton <InfoManager> .instance.m_properties.m_neutralColor);

            case InfoManager.InfoMode.TrafficRoutes:
                if (Singleton <InfoManager> .instance.CurrentSubMode == InfoManager.SubInfoMode.Default)
                {
                    InstanceID empty = InstanceID.Empty;
                    empty.Vehicle = vehicleID;
                    return(Singleton <NetManager> .instance.PathVisualizer.IsPathVisible(empty) ? Singleton <InfoManager> .instance.m_properties.m_routeColors[3] : Singleton <InfoManager> .instance.m_properties.m_neutralColor);
                }
                break;
            }
            return(base.GetColor(vehicleID, ref data, infoMode));
        }
        public void Render()
        {
            if (m_mesh == null)
            {
                return;
            }

            float magnitude = m_bounds.extents.magnitude;
            float num       = magnitude + 16f;
            float num2      = magnitude * m_zoom;

            m_camera.transform.position = -Vector3.forward * num2;
            m_camera.transform.rotation = Quaternion.identity;
            m_camera.nearClipPlane      = Mathf.Max(num2 - num * 1.5f, 0.01f);
            m_camera.farClipPlane       = num2 + num * 1.5f;

            Quaternion quaternion = Quaternion.Euler(-20f, 0f, 0f) * Quaternion.Euler(0f, m_rotation, 0f);
            Vector3    pos        = quaternion * -m_bounds.center;
            Matrix4x4  matrix     = Matrix4x4.TRS(pos, quaternion, Vector3.one);

            InfoManager infoManager = Singleton <InfoManager> .instance;

            InfoManager.InfoMode    currentMod    = infoManager.CurrentMode;
            InfoManager.SubInfoMode currentSubMod = infoManager.CurrentSubMode;;
            infoManager.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.Default);

            Graphics.DrawMesh(m_mesh, matrix, material, 0, m_camera, 0, null, true, true);
            m_camera.RenderWithShader(material.shader, "");

            infoManager.SetCurrentMode(currentMod, currentSubMod);
        }
        //taken from MetroAI
        public override Color GetColor(ushort nodeID, ref NetNode data, InfoManager.InfoMode infoMode)
        {
            switch (infoMode)
            {
            case InfoManager.InfoMode.Transport:
                return(Singleton <TransportManager> .instance.m_properties.m_transportColors[(int)TransportInfo.TransportType.Metro] * 0.2f);

            case InfoManager.InfoMode.Traffic:
                NetManager instance = Singleton <NetManager> .instance;
                int        num1     = 0;
                int        num2     = 0;
                for (int index = 0; index < 8; ++index)
                {
                    ushort segment = data.GetSegment(index);
                    if ((int)segment != 0)
                    {
                        num1 += (int)instance.m_segments.m_buffer[(int)segment].m_trafficDensity;
                        ++num2;
                    }
                }
                if (num2 != 0)
                {
                    num1 /= num2;
                }
                return(Color.Lerp(Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_targetColor, Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_negativeColor, Mathf.Clamp01((float)num1 * 0.01f)) * 0.2f);

            case InfoManager.InfoMode.Maintenance:
                return(Singleton <TransportManager> .instance.m_properties.m_transportColors[(int)TransportInfo.TransportType.Metro] * 0.2f);

            default:
                return(base.GetColor(nodeID, ref data, infoMode));
            }
        }
Exemple #6
0
        public static bool Prefix(ref Color __result,
                                  ushort buildingID,
                                  ref Building data,
                                  InfoManager.InfoMode infoMode)
        {
            // When the Parking AI is enabled and the traffic info view is active,
            // colorizes buildings depending on the number of succeeded/failed parking
            // maneuvers, or if the public transport info view is active, colorizes
            // buildings depending on the current unfulfilled incoming/outgoing demand
            // for public transport.
            if (Options.parkingAI && infoMode != InfoManager.InfoMode.None)
            {
                if (AdvancedParkingManager.Instance.GetBuildingInfoViewColor(
                        buildingID,
                        ref data,
                        ref ExtBuildingManager.Instance.ExtBuildings[buildingID],
                        infoMode,
                        out Color? color))
                {
                    __result = color ?? InfoManager.instance.m_properties.m_neutralColor;
                    return(false);
                }
            }

            return(true);
        }
Exemple #7
0
        public void SetInfoMode(string name)
        {
            try
            {
                InfoManager infoManager = Singleton <InfoManager> .instance;

                if (infoManager != null)
                {
                    InfoManager.InfoMode    infoMode    = InfoManager.InfoMode.None;
                    InfoManager.SubInfoMode subInfoMode = InfoManager.SubInfoMode.None;

                    GetInfoModes(name, out infoMode, out subInfoMode);

                    if (infoManager.CurrentMode == infoMode && infoManager.CurrentSubMode == subInfoMode)
                    {
                        infoManager.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.None);
                    }
                    else
                    {
                        infoManager.SetCurrentMode(infoMode, subInfoMode);
                    }
                }
            }
            catch (Exception e)
            {
                Debug.Log("[Watch It!] Watch:SetInfoMode -> Exception: " + e.Message);
            }
        }
Exemple #8
0
        public override Color GetColor(ushort buildingID, ref Building data, InfoManager.InfoMode infoMode)
        {
            if (infoMode == InfoManager.InfoMode.Water)
            {
                if (this.m_naturalDrainageMultiplier != 0 && Singleton <WeatherManager> .instance.m_currentRain > 0)
                {
                    return(Color.cyan);
                }
                if ((data.m_flags & Building.Flags.Active) == Building.Flags.None)
                {
                    return(Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_inactiveColor);
                }

                return(base.GetColor(buildingID, ref data, infoMode));
            }
            else
            {
                if (infoMode == InfoManager.InfoMode.TerrainHeight)
                {
                    if ((data.m_flags & Building.Flags.Active) == Building.Flags.None)
                    {
                        return(Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_inactiveColor);
                    }
                }
                if (infoMode != InfoManager.InfoMode.Pollution)
                {
                    return(base.GetColor(buildingID, ref data, infoMode));
                }

                return(base.GetColor(buildingID, ref data, infoMode));
            }
        }
        public override void OnUpdate(float realTimeDelta, float simulationTimeDelta)
        {
            if (Event.current.alt && Input.GetKeyDown(KeyCode.T))
            {
                var manager = Singleton<InfoManager>.instance;
                UIView.playSoundDelegate(UIView.GetAView().defaultClickSound, 1f);

                if (manager.CurrentMode != InfoManager.InfoMode.TerrainHeight) {
                    BuildingTool currentTool = ToolsModifierControl.GetCurrentTool<BuildingTool>();
                    if (currentTool != null && currentTool.m_relocate != 0) {
                        currentTool.CancelRelocate();
                    }
                    Singleton<InfoViewsPanel>.instance.CloseToolbar();
                    WorldInfoPanel.HideAllWorldInfoPanels();
                    if (Singleton<InfoManager>.exists) {
                        m_previousMode = manager.CurrentMode;
                        m_previousSubInfoMode = manager.CurrentSubMode;
                        Singleton<InfoManager>.instance.SetCurrentMode(InfoManager.InfoMode.TerrainHeight, InfoManager.SubInfoMode.Default);
                        Singleton<GuideManager>.instance.InfoViewUsed();
                    }
                } else {
                    Singleton<InfoViewsPanel>.instance.CloseToolbar();
                    manager.SetCurrentMode(m_previousMode, m_previousSubInfoMode);
                    Singleton<GuideManager>.instance.InfoViewUsed();
                }
            }
        }
Exemple #10
0
 //The exact execution of GetColor is handled by a separate class, which this class stores a reference to.
 public override Color GetColor(ushort buildingID, ref Building data, InfoManager.InfoMode infoMode)
 {
     foreach (var module in ColorModules)
     {
         module(buildingID, ref data, infoMode, ref color);
     }
     return(color);
 }
Exemple #11
0
        private void RememberCurrentTool()
        {
            _previousTool = CurrentTool;
            var im = InfoManager.instance;

            _previousInfoMode    = im.NextMode;
            _previousSubInfoMode = im.NextSubMode;
            DebugLog.Info($"Remembering {_previousTool?.GetType().Name} and {im.NextMode},{im.NextSubMode}");
        }
Exemple #12
0
 static bool Prefix(ref Color __result, ushort buildingID, InfoManager.InfoMode infoMode)
 {
     if (Painter.instance.Colors.TryGetValue(buildingID, out SerializableColor color) && infoMode == InfoManager.InfoMode.None)
     {
         __result = color;
         return(false);
     }
     return(true);
 }
 private static void ApplyForcedMode(ref InfoManager.InfoMode mode, ref InfoManager.SubInfoMode subMode)
 {
     if (!_forceMode)
     {
         return;
     }
     mode    = _forcedMode;
     subMode = _forcesSubMode;
 }
        protected override void OnEnable()
        {
            InfoManager.InfoMode    currentMode    = Singleton <InfoManager> .instance.CurrentMode;
            InfoManager.SubInfoMode currentSubMode = Singleton <InfoManager> .instance.CurrentSubMode;
            m_prevRenderZones            = Singleton <TerrainManager> .instance.RenderZones;
            m_toolController.CurrentTool = this;
            Singleton <InfoManager> .instance.SetCurrentMode(currentMode, currentSubMode);

            Singleton <TerrainManager> .instance.RenderZones = false;
        }
        public Color CustomGetColor(ushort buildingId,
                                    ref Building data,
                                    InfoManager.InfoMode infoMode)
        {
            if (infoMode != InfoManager.InfoMode.None)
            {
                // NON-STOCK CODE START

                // When the Parking AI is enabled and the traffic info view is active,
                // colorizes buildings depending on the number of succeeded/failed parking
                // maneuvers, or if the public transport info view is active, colorizes
                // buildings depending on the current unfulfilled incoming/outgoing demand
                // for public transport.
                if (Options.parkingAI)
                {
                    if (AdvancedParkingManager.Instance.GetBuildingInfoViewColor(
                            buildingId,
                            ref data,
                            ref ExtBuildingManager.Instance.ExtBuildings[buildingId],
                            infoMode,
                            out Color? color))
                    {
                        return((Color)color);
                    }
                }

                // NON-STOCK CODE END
                return(Singleton <InfoManager> .instance.m_properties.m_neutralColor);
            }

            if (!m_info.m_useColorVariations)
            {
                return(m_info.m_color0);
            }

            Randomizer randomizer = new Randomizer(buildingId);

            switch (randomizer.Int32(4u))
            {
            case 0:
                return(m_info.m_color0);

            case 1:
                return(m_info.m_color1);

            case 2:
                return(m_info.m_color2);

            case 3:
                return(m_info.m_color3);

            default:
                return(m_info.m_color0);
            }
        }
Exemple #16
0
        /// <summary>
        /// return the color of the vehicle
        /// same Prefix routine is used for all vehicle AI types
        /// </summary>
        /// <returns>whether or not to do base processing</returns>
        public static bool VehicleAIGetColor(ushort vehicleID, ref Vehicle data, InfoManager.InfoMode infoMode, ref Color __result)
        {
            // do processing for this mod only for Outside Connections info view
            if (infoMode == InfoManager.InfoMode.Connections)
            {
                return(EOCVUserInterface.GetVehicleColor(vehicleID, ref data, ref __result));
            }

            // do base processing
            return(true);
        }
Exemple #17
0
        private void ForgetPreviousTool()
        {
            if (_previousTool == null)
            {
                return;
            }

            DebugLog.Info($"Remembering {_previousTool?.GetType().Name} and {_previousInfoMode},{_previousSubInfoMode}");
            _previousTool        = null;
            _previousInfoMode    = InfoManager.InfoMode.None;
            _previousSubInfoMode = InfoManager.SubInfoMode.Default;
        }
Exemple #18
0
 public override void GetPlacementInfoMode(out InfoManager.InfoMode mode, out InfoManager.SubInfoMode subMode, float elevation)
 {
     if (m_incomingResources[0] == TransferManager.TransferReason.Fish)
     {
         mode    = InfoManager.InfoMode.Fishing;
         subMode = InfoManager.SubInfoMode.Default;
     }
     else
     {
         base.GetPlacementInfoMode(out mode, out subMode, elevation);
     }
 }
        public new static void ForceInfoMode(InfoManager.InfoMode mode, InfoManager.SubInfoMode subMode)
        {
            var currentTool = ToolsModifierControl.GetCurrentTool <ToolBase>();

            switch (currentTool.GetType().Name)
            {
            case "BuildingTool":
            case "TreeTool":
            case "ResourceTool":
            case "DistrictTool":
            case "TransportTool":
            case "CustomTransportTool":
                if (!Util.IsInfoViewsPanelVisible())
                {
                    mode    = InfoManager.InfoMode.None;
                    subMode = InfoManager.SubInfoMode.Default;
                }
                else
                {
                    ApplyForcedMode(ref mode, ref subMode);
                }
                break;

            case "NetTool":
                if (Util.IsInfoViewsPanelVisible())
                {
                    ApplyForcedMode(ref mode, ref subMode);
                    if (mode == InfoManager.InfoMode.None)
                    {
                        mode    = InfoManager.InfoMode.Traffic;
                        subMode = InfoManager.SubInfoMode.Default;
                    }
                }
                else
                {
                    mode    = InfoManager.InfoMode.None;
                    subMode = InfoManager.SubInfoMode.Default;
                }
                break;

            default:
                break;
            }

            if (mode == InfoManager.InfoMode.None &&
                (InfoManager.InfoMode)m_forcedInfoMode.GetValue(null) == InfoManager.InfoMode.None)
            {
                return;
            }

            m_forcedInfoMode.SetValue(null, mode);
            Singleton <InfoManager> .instance.SetCurrentMode(mode, subMode);
        }
        internal void ToggleTool(bool newState, InfoManager.InfoMode viewMode, InfoManager.SubInfoMode submode)
        {
            if (newState)
            {
                InfoManager.instance.SetCurrentMode(viewMode, submode);
            }
            else
            {
                InfoManager.instance.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.None);
            }

            StartCoroutine(ToggleTool_Internal(newState));
        }
Exemple #21
0
 /// <param name="index">Used as index in an array.</param>
 /// <param name="name">Must be a unique string.</param>
 private ItemData(
     int index,
     string name,
     string icon,
     InfoManager.InfoMode infoMode,
     InfoManager.SubInfoMode subInfoMode)
 {
     Index       = index;
     Name        = name;
     Icon        = icon;
     InfoMode    = infoMode;
     SubInfoMode = subInfoMode;
 }
Exemple #22
0
        private InfoViewManager()
        {
            InfoViewResourceTexture = new Texture2D(512, 512, TextureFormat.RGB24, false, true)
            {
                wrapMode = TextureWrapMode.Clamp
            };

            InfoViewDestructionTexture = new Texture2D(512, 512, TextureFormat.RGB24, false, true)
            {
                wrapMode = TextureWrapMode.Clamp
            };

            _cachedInfoMode = InfoManager.InfoMode.None;
        }
        public Color CustomGetColor(ushort buildingID, ref Building data, InfoManager.InfoMode infoMode)
        {
            // NON-STOCK CODE START
            if (Options.prohibitPocketCars)
            {
                if (infoMode == InfoManager.InfoMode.Traffic)
                {
                    // parking space demand info view
                    ExtBuilding extBuilding = ExtBuildingManager.Instance.GetExtBuilding(buildingID);
                    return(Color.Lerp(Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_targetColor, Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_negativeColor, Mathf.Clamp01((float)extBuilding.ParkingSpaceDemand * 0.01f)));
                }
                else if (infoMode == InfoManager.InfoMode.Transport && !(data.Info.m_buildingAI is DepotAI))
                {
                    // public transport demand info view
                    ExtBuilding extBuilding = ExtBuildingManager.Instance.GetExtBuilding(buildingID);
                    return(Color.Lerp(Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)InfoManager.InfoMode.Traffic].m_targetColor, Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)InfoManager.InfoMode.Traffic].m_negativeColor, Mathf.Clamp01((float)(TrafficManagerTool.CurrentTransportDemandViewMode == TransportDemandViewMode.Outgoing ? extBuilding.OutgoingPublicTransportDemand : extBuilding.IncomingPublicTransportDemand) * 0.01f)));
                }
            }
            // NON-STOCK CODE END

            if (infoMode != InfoManager.InfoMode.None)
            {
                return(Singleton <InfoManager> .instance.m_properties.m_neutralColor);
            }
            if (!this.m_info.m_useColorVariations)
            {
                return(this.m_info.m_color0);
            }
            Randomizer randomizer = new Randomizer((int)buildingID);

            switch (randomizer.Int32(4u))
            {
            case 0:
                return(this.m_info.m_color0);

            case 1:
                return(this.m_info.m_color1);

            case 2:
                return(this.m_info.m_color2);

            case 3:
                return(this.m_info.m_color3);

            default:
                return(this.m_info.m_color0);
            }
        }
        private void OnImpactChartClick(UIComponent component, UIMouseEventParameter eventParam)
        {
            try
            {
                InfoManager.InfoMode    infoMode    = InfoManager.InfoMode.LandValue;
                InfoManager.SubInfoMode subInfoMode = InfoManager.SubInfoMode.Default;

                GetEffectInfoModes((ImmaterialResourceManager.Resource)component.objectUserData, out infoMode, out subInfoMode);

                Singleton <InfoManager> .instance.SetCurrentMode(infoMode, subInfoMode);
            }
            catch (Exception e)
            {
                Debug.Log("[Show It!] ZonedBuildingExtenderPanel:OnImpactChartClick -> Exception: " + e.Message);
            }
        }
        //taken from MetroAI
        public override Color GetColor(ushort segmentID, ref NetSegment data, InfoManager.InfoMode infoMode)
        {
            switch (infoMode)
            {
            case InfoManager.InfoMode.Transport:
                return(Singleton <TransportManager> .instance.m_properties.m_transportColors[(int)TransportInfo.TransportType.Metro] * 0.2f);

            case InfoManager.InfoMode.Traffic:
                return(Color.Lerp(Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_targetColor, Singleton <InfoManager> .instance.m_properties.m_modeProperties[(int)infoMode].m_negativeColor, Mathf.Clamp01((float)data.m_trafficDensity * 0.01f)) * 0.2f);

            case InfoManager.InfoMode.Maintenance:
                return(Singleton <TransportManager> .instance.m_properties.m_transportColors[(int)TransportInfo.TransportType.Metro] * 0.2f);

            default:
                return(base.GetColor(segmentID, ref data, infoMode));
            }
        }
Exemple #26
0
            private static void Postfix(ushort buildingID, InfoManager.InfoMode infoMode, ref Color __result)
            {
                switch (infoMode)
                {
                case InfoManager.InfoMode.TrafficRoutes:
                    __result = Color.Lerp(negativeColor, targetColor, RealTimeAI.GetBuildingReachingTroubleFactor(buildingID));
                    return;

                case InfoManager.InfoMode.None:
                    if (RealTimeAI.ShouldSwitchBuildingLightsOff(buildingID))
                    {
                        __result.a = 0f;
                    }

                    return;
                }
            }
        public Color CustomGetColor(ushort buildingID, ref Building data, InfoManager.InfoMode infoMode)
        {
            if (infoMode != InfoManager.InfoMode.None)
            {
                // NON-STOCK CODE START
#if BENCHMARK
                using (var bm = new Benchmark()) {
#endif
                if (Options.prohibitPocketCars)
                {
                    Color?color;
                    if (AdvancedParkingManager.Instance.GetBuildingInfoViewColor(buildingID, ref data, ref ExtBuildingManager.Instance.ExtBuildings[buildingID], infoMode, out color))
                    {
                        return((Color)color);
                    }
                }
#if BENCHMARK
            }
#endif
                // NON-STOCK CODE END

                return(Singleton <InfoManager> .instance.m_properties.m_neutralColor);
            }
            if (!this.m_info.m_useColorVariations)
            {
                return(this.m_info.m_color0);
            }
            Randomizer randomizer = new Randomizer((int)buildingID);
            switch (randomizer.Int32(4u))
            {
            case 0:
                return(this.m_info.m_color0);

            case 1:
                return(this.m_info.m_color1);

            case 2:
                return(this.m_info.m_color2);

            case 3:
                return(this.m_info.m_color3);

            default:
                return(this.m_info.m_color0);
            }
        }
Exemple #28
0
        public static void SetCurrentMode(InfoManager.InfoMode Mode, InfoManager.SubInfoMode SubMode)
        {
            WorldInfoPanel.Hide <CityServiceWorldInfoPanel>();
            ToolsModifierControl.mainToolbar.CloseToolbar();
            var IM = Singleton <InfoManager> .instance;
            var mm = IM.CurrentMode;
            var sm = IM.CurrentSubMode;

            if (mm == Mode && sm == SubMode)
            {
                Singleton <InfoManager> .instance.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.Default);
            }
            else
            {
                Singleton <InfoManager> .instance.SetCurrentMode(Mode, SubMode);
            }
        }
Exemple #29
0
 public static bool PreGetColor(ushort vehicleID, ref Vehicle data, InfoManager.InfoMode infoMode, ref Color __result)
 {
     if (infoMode != InfoManager.InfoMode.None)
     {
         LogUtils.DoLog($"NOT GETTING COLOR FOR VEHICLE: {vehicleID} INFO = {infoMode}");
         return(true);
     }
     if (!m_colorConfigData.TryGetValue(data.Info.name, out ColorConfigurationXml itemData) &&
         !m_colorConfigData.TryGetValue(data.Info.m_vehicleAI.GetType().Name, out itemData) &&
         !m_colorConfigData.TryGetValue("*", out itemData))
     {
         LogUtils.DoLog($"NOT GETTING COLOR FOR VEHICLE: {vehicleID} ({data.Info.m_vehicleAI.GetType().Name} | {data.Info.name}) - not found");
         return(true);
     }
     LogUtils.DoLog($"GETTING COLOR FOR VEHICLE: {vehicleID}  ({data.Info.m_vehicleAI.GetType().Name} | {data.Info.name}) ");
     return(GetNewColor(vehicleID, ref __result, itemData));
 }
Exemple #30
0
 static void Postfix(InfoManager.InfoMode mode, InfoManager.SubInfoMode subMode)
 {
     try
     {
         if (mode == InfoManager.InfoMode.TrafficRoutes && subMode == InfoManager.SubInfoMode.JunctionSettings)
         {
             Singleton <NotificationManager> .instance.NotificationsVisible = true;
         }
         else
         {
             Singleton <NotificationManager> .instance.NotificationsVisible = ModConfig.Instance.NotificationIcons;
         }
     }
     catch (Exception e)
     {
         Debug.Log("[Toggle It!] InfoManagerSetCurrentModePatch:Postfix -> Exception: " + e.Message);
     }
 }
Exemple #31
0
 public override Color GetColor(ushort instanceID, ref CitizenInstance data, InfoManager.InfoMode infoMode)
 {
     //begin mod
     if (!IsCagedAnimal(data) && !LivestockAIDetour.isFreeAnimal(data))
     {
         if (infoMode == InfoManager.InfoMode.Transport)
         {
             ushort instanceID1 = data.m_targetBuilding;
             if ((int)instanceID1 != 0)
             {
                 CitizenManager instance = Singleton <CitizenManager> .instance;
                 return(instance.m_instances.m_buffer[(int)instanceID1].Info.m_citizenAI.GetColor(instanceID1, ref instance.m_instances.m_buffer[(int)instanceID1], infoMode));
             }
         }
     }
     //end mod
     return(base.GetColor(instanceID, ref data, infoMode));
 }
        public override void OnUpdate(float realTimeDelta, float simulationTimeDelta)
        {
            if(PersistentResourceViewLoader.toggleOn){
                if (!Singleton<InfoManager>.instance.CurrentMode.Equals(currentInfomode)){
                    if (Singleton<InfoManager>.instance.CurrentMode.Equals(InfoManager.InfoMode.None)){
                        Singleton<InfoManager>.instance.SetCurrentMode(currentInfomode, InfoManager.SubInfoMode.Default);
                    }
                    else{
                        PersistentResourceViewLoader.toggleOn = false;
                        currentInfomode = InfoManager.InfoMode.None;
                    }
                }
                if (Input.GetKeyUp(KeyCode.Escape)){
                    PersistentResourceViewLoader.toggleOn = false;
                    currentInfomode = InfoManager.InfoMode.None;
                    Singleton<InfoManager>.instance.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.Default);
                }

            }
        }
 public static void ForceMode(InfoManager.InfoMode mode, InfoManager.SubInfoMode subMode)
 {
     _forceMode = true;
     _forcedMode = mode;
     _forcesSubMode = subMode;
 }