public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            int    electricityRate = this.GetElectricityRate(buildingID, ref data);
            string text            = LocaleFormatter.FormatGeneric("AIINFO_ELECTRICITY_PRODUCTION", new object[]
            {
                (electricityRate * 16 + 500) / 1000
            });

            if (this.m_resourceType == TransferManager.TransferReason.Coal)
            {
                text += Environment.NewLine;
                int resourceDuration = this.GetResourceDuration(buildingID, ref data);
                text += LocaleFormatter.FormatGeneric("AIINFO_COAL_STORED", new object[]
                {
                    resourceDuration
                });
            }
            else if (this.m_resourceType == TransferManager.TransferReason.Petrol)
            {
                text += Environment.NewLine;
                int resourceDuration2 = this.GetResourceDuration(buildingID, ref data);
                text += LocaleFormatter.FormatGeneric("AIINFO_OIL_STORED", new object[]
                {
                    resourceDuration2
                });
            }
            else if (this.m_resourceType == TransferManager.TransferReason.Grain)
            {
                text += Environment.NewLine;
                int resourceDuration3 = this.GetResourceDuration(buildingID, ref data);
                text += "Crops stored for " + resourceDuration3 + "weeks";
            }
            return(text);
        }
        public override string GetLocalizedTooltip()
        {
            string text = LocaleFormatter.FormatGeneric("AIINFO_WATER_CONSUMPTION", new object[]
            {
                this.GetWaterConsumption() * 16
            }) + Environment.NewLine + LocaleFormatter.FormatGeneric("AIINFO_ELECTRICITY_CONSUMPTION", new object[]
            {
                this.GetElectricityConsumption() * 16
            });

            if (this.m_waterConsumption > 0)
            {
                return(TooltipHelper.Append(base.GetLocalizedTooltip(), TooltipHelper.Format(new string[]
                {
                    LocaleFormatter.Info1,
                    text,
                    LocaleFormatter.Info2,
                    LocaleFormatter.FormatGeneric("AIINFO_WATER_INTAKE", new object[]
                    {
                        this.m_waterConsumption * 16 * m_consumption_multiplier
                    })
                })));
            }
            return(TooltipHelper.Append(base.GetLocalizedTooltip(), TooltipHelper.Format(new string[]
            {
                LocaleFormatter.Info1,
                text,
                LocaleFormatter.Info2,
                LocaleFormatter.FormatGeneric("AIINFO_WATER_OUTLET", new object[]
                {
                    this.m_waterConsumption * 16 * m_consumption_multiplier
                })
            })));
        }
Esempio n. 3
0
        static void Postfix(UIComponent comp, int sel)
        {
            try
            {
                if (ModConfig.Instance.Enabled)
                {
                    UISprite    m_AchNope    = comp.parent.Find <UISprite>("AchNope");
                    UIComponent m_Ach        = comp.parent.Find("Ach");
                    UIComponent m_AchAvLabel = comp.parent.Find("AchAvLabel");

                    m_AchNope.isVisible = false;
                    string tooltip = string.Empty;

                    tooltip  = Locale.Get("LOADPANEL_ACHSTATUS_ENABLED");
                    tooltip += "<color #50869a>";
                    if (Singleton <PluginManager> .instance.enabledModCountNoOverride > 0)
                    {
                        tooltip += Environment.NewLine;
                        tooltip += LocaleFormatter.FormatGeneric("LOADPANEL_ACHSTATUS_MODSACTIVE", Singleton <PluginManager> .instance.enabledModCount);
                    }
                    tooltip += "</color>";

                    m_Ach.tooltip        = tooltip;
                    m_AchAvLabel.tooltip = tooltip;
                }
            }
            catch (Exception e)
            {
                Debug.Log("[Achieve It!] LoadPanelPatch:Postfix -> Exception: " + e.Message);
            }
        }
        private void UpdateProgress()
        {
            VehicleManager instance     = Singleton <VehicleManager> .instance;
            ushort         vehicle      = WorldInfoPanel.GetCurrentInstanceID().Vehicle;
            ushort         firstVehicle = instance.m_vehicles.m_buffer[(int)vehicle].GetFirstVehicle(vehicle);
            float          current;
            float          max;

            if (GetProgressStatus(firstVehicle, ref instance.m_vehicles.m_buffer[(int)firstVehicle], out current, out max) || (int)firstVehicle != (int)(ushort)this._cachedProgressVehicle.GetValue((object)this._publicTransportVehicleWorldInfoPanel))
            {
                this._cachedCurrentProgress.SetValue((object)this._publicTransportVehicleWorldInfoPanel, (object)current);
                this._cachedTotalProgress.SetValue((object)this._publicTransportVehicleWorldInfoPanel, (object)max);
                this._cachedProgressVehicle.SetValue((object)this._publicTransportVehicleWorldInfoPanel, (object)firstVehicle);
            }
            else
            {
                current = (float)this._cachedCurrentProgress.GetValue((object)this._publicTransportVehicleWorldInfoPanel);
                max     = (float)this._cachedTotalProgress.GetValue((object)this._publicTransportVehicleWorldInfoPanel);
            }
            if ((double)max == 0.0)
            {
                return;
            }
            this._distanceTraveled.parent.Show();
            this._distanceProgress.parent.Show();
            float num = current / max;
            int   p   = Mathf.RoundToInt(num * 100f);

            this._distanceTraveled.value = num;
            this._distanceProgress.text  = LocaleFormatter.FormatPercentage(p);
        }
        private static void WorkshopAdPanelSetModsString()
        {
            if (m_ModsButton == null)
            {
                try
                {
                    DebugUtils.Log("Getting MenuContainer");
                    var menuContainerObject = GameObject.Find("MenuContainer");
                    DebugUtils.Log("MenuContainer: " + menuContainerObject);
                    var menuContainer = menuContainerObject.GetComponent <UIPanel>();
                    DebugUtils.Log("Finding Mods Button");
                    m_ModsButton = menuContainer.Find <UIButton>("Mods");

                    if (m_ActiveSprite == null)
                    {
                        m_ActiveSprite = new GameObject("EA_ActiveSprite")
                        {
                            transform = { parent = m_ModsButton.transform }
                        }.AddComponent <UISprite>();
                        m_ActiveSprite.spriteName       = "ThumbnailTrophy";
                        m_ActiveSprite.size             = new Vector2(29f, 20f);
                        m_ActiveSprite.relativePosition = new Vector3(225f, 3f);
                    }
                }
                catch (Exception ex) { DebugUtils.Log(ex.Message); }
            }

            if (m_ModsButton != null && m_ActiveSprite == null)
            {
                try
                {
                    m_ActiveSprite = new GameObject("EA_ActiveSprite")
                    {
                        transform = { parent = m_ModsButton.transform }
                    }.AddComponent <UISprite>();
                    m_ActiveSprite.spriteName       = "ThumbnailTrophy";
                    m_ActiveSprite.size             = new Vector2(29f, 20f);
                    m_ActiveSprite.relativePosition = new Vector3(225f, 3f);
                }
                catch (Exception ex) { DebugUtils.Log(ex.Message); }
            }

            UpdateActiveModCount();

            var text = LocaleFormatter.FormatGeneric("MOD_ENABLED_STATUS", new object[] { m_ActiveModCount, Singleton <PluginManager> .instance.modCount });

            DebugUtils.Log(text);

            if (m_ModsButton != null)
            {
                m_ModsButton.text = text;
            }

            if (m_ActiveSprite != null)
            {
                m_ActiveSprite.isVisible = (m_ActiveModCount == 0 || m_ActiveModCount > Singleton <PluginManager> .instance.enabledModCount);
            }
        }
Esempio n. 6
0
 public override string GetLocalizedTooltip()
 {
     return(TooltipHelper.Append(base.GetLocalizedTooltip(), TooltipHelper.Format(new string[]
     {
         LocaleFormatter.Info2,
         LocaleFormatter.FormatGeneric("AIINFO_WATER_OUTLET", new object[]
         {
             0
         })
     })));
 }
        /// <summary>
        /// Creates a tooltip string for a building, including key stats.
        /// </summary>
        /// <param name="building">Building to generate for</param>
        /// <returns>A tooltip string</returns>
        private string BuildingTooltip(BuildingData building)
        {
            // Safety check.
            if (building?.prefab == null)
            {
                return(String.Empty);
            }

            StringBuilder tooltip = new StringBuilder();

            tooltip.AppendLine(building.DisplayName);

            // Construction cost.
            try
            {
                tooltip.AppendLine(LocaleFormatter.FormatCost(building.prefab.GetConstructionCost(), false));
            }
            catch
            {
                // Don't care - just don't show construction cost in the tooltip.
            }

            // Only add households or workplaces for Private AI types, not for e.g. Beautification (dummy service).
            if (building.prefab.GetAI() is PrivateBuildingAI thisAI)
            {
                // Household or workplace count.
                if (building.prefab.GetService() == ItemClass.Service.Residential)
                {
                    // Residential - households.
                    tooltip.Append(Translations.Translate("PRR_HOU"));
                    tooltip.Append(": ");
                    tooltip.AppendLine(thisAI.CalculateHomeCount(building.prefab.GetClassLevel(), new Randomizer(), building.prefab.GetWidth(), building.prefab.GetLength()).ToString());
                }
                else
                {
                    // Non-residential - workplaces.
                    int[] workplaces = new int[4];

                    tooltip.Append(Translations.Translate("PRR_WOR"));
                    tooltip.Append(": ");
                    thisAI.CalculateWorkplaceCount(building.prefab.GetClassLevel(), new Randomizer(), building.prefab.GetWidth(), building.prefab.GetLength(), out workplaces[0], out workplaces[1], out workplaces[2], out workplaces[3]);
                    tooltip.AppendLine(workplaces.Sum().ToString());
                }
            }

            // Physical size.
            tooltip.Append("Size: ");
            tooltip.Append(building.prefab.GetWidth());
            tooltip.Append("x");
            tooltip.AppendLine(building.prefab.GetLength().ToString());

            return(tooltip.ToString());
        }
Esempio n. 8
0
        public static string GetLocalizedTooltip(Asset asset, PrefabInfo prefab, string title)
        {
            MilestoneInfo unlockMilestone = prefab.GetUnlockMilestone();

            string text = TooltipHelper.Format(new string[]
            {
                LocaleFormatter.Title,
                title,
                LocaleFormatter.Sprite,
                (!string.IsNullOrEmpty(prefab.m_InfoTooltipThumbnail)) ? prefab.m_InfoTooltipThumbnail : prefab.name,
                LocaleFormatter.Text,
                (asset.findIt2Description + Asset.GetLocalizedDescription(prefab)),
                LocaleFormatter.Locked,
                (!ToolsModifierControl.IsUnlocked(unlockMilestone)).ToString()
            });

            ToolsModifierControl.GetUnlockingInfo(unlockMilestone, out string unlockDesc, out string currentValue, out string targetValue, out string progress, out string locked);

            string addTooltip = TooltipHelper.Format(new string[]
            {
                LocaleFormatter.LockedInfo,
                locked,
                LocaleFormatter.UnlockDesc,
                unlockDesc,
                LocaleFormatter.UnlockPopulationProgressText,
                progress,
                LocaleFormatter.UnlockPopulationTarget,
                targetValue,
                LocaleFormatter.UnlockPopulationCurrent,
                currentValue
            });

            text = TooltipHelper.Append(text, addTooltip);
            PrefabAI aI = prefab.GetAI();

            if (aI != null)
            {
                text = TooltipHelper.Append(text, aI.GetLocalizedTooltip());
            }

            if (prefab is PropInfo || prefab is TreeInfo)
            {
                text = TooltipHelper.Append(text, TooltipHelper.Format(new string[]
                {
                    LocaleFormatter.Cost,
                    LocaleFormatter.FormatCost(prefab.GetConstructionCost(), false)
                }));
            }

            return(text);
        }
 public override string GetLocalizedTooltip()
 {
     return(TooltipHelper.Format(new string[]
     {
         LocaleFormatter.Cost,
         LocaleFormatter.FormatCost(this.GetConstructionCost(), true),
         LocaleFormatter.Upkeep,
         LocaleFormatter.FormatUpkeep(this.GetMaintenanceCost(), true),
         LocaleFormatter.Speed,
         LocaleFormatter.FormatGeneric("AIINFO_SPEED", new object[]
         {
             15f
         })
     }));
 }
        private void SetProgress(UIProgressBar serviceBar, float val, float start, float target, bool isPositive)
        {
            float finalValue = (val - start) / (target - start);

            serviceBar.tooltip = string.Format(serviceBar.tooltip, LocaleFormatter.FormatPercentage((int)(finalValue * 100)));
            if (isPositive)
            {
                serviceBar.progressColor = Color.Lerp(Color.yellow, Color.green, finalValue);
            }
            else
            {
                serviceBar.progressColor = Color.Lerp(Color.yellow, Color.red, finalValue);
            }

            serviceBar.value = Mathf.Clamp01(finalValue);
        }
Esempio n. 11
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            string str = string.Empty;

            if ((UnityEngine.Object) this.m_transportInfo != (UnityEngine.Object)null && this.m_maxVehicleCount != 0)
            {
                switch (this.m_transportInfo.m_transportType)
                {
                case TransportInfo.TransportType.Taxi:
                    int vehicleCount1 = this.GetVehicleCount(buildingID, ref data);
                    int num1          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += LocaleFormatter.FormatGeneric("AIINFO_TAXIDEPOT_VEHICLES", (object)vehicleCount1, (object)num1);
                    break;

                case TransportInfo.TransportType.Tram:
                    int vehicleCount2 = this.GetVehicleCount(buildingID, ref data);
                    int num2          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", (object)vehicleCount2, (object)num2);
                    break;

                case TransportInfo.TransportType.Bus:
                    int vehicleCount3 = this.GetVehicleCount(buildingID, ref data);
                    int num3          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += LocaleFormatter.FormatGeneric("AIINFO_BUSDEPOT_BUSCOUNT", (object)vehicleCount3, (object)num3);
                    break;

                //begin mod
                case TransportInfo.TransportType.Metro:
                    int vehicleCount4 = this.GetVehicleCount(buildingID, ref data);
                    int num4          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += $"Metro trains in use: {vehicleCount4}";    // of {num4}";
                    break;

                case TransportInfo.TransportType.Train:
                    int vehicleCount5 = this.GetVehicleCount(buildingID, ref data);
                    int num5          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += $"Trains in use: {vehicleCount5}";    // of {num5}";
                    break;
                    //end mod
                }
            }
            return(str);
        }
Esempio n. 12
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            string text = string.Empty;

            if (this.m_waterConsumption > 0)
            {
                int num = this.GetWaterRate(buildingID, ref data) * 16 * m_consumption_multiplier;
                text += LocaleFormatter.FormatGeneric("AIINFO_WATER_INTAKE", new object[]
                {
                    num
                });
            }
            else
            {
                int num2 = -this.GetWaterRate(buildingID, ref data) * 16 * m_consumption_multiplier;
                text += LocaleFormatter.FormatGeneric("AIINFO_WATER_OUTLET", new object[] { num2 });
            }
            text += "\nStored water: " + (data.m_waterBuffer * m_bufferMultiplier) + " m³";
            text += "\nRunning at: " + (data.m_productionRate) + "%";
            return(text);
        }
Esempio n. 13
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            if (!MarketBuffers.ContainsKey(buildingID))
            {
                AddMarketBufferToBuildingData(buildingID);
            }
            var    marketBuffer = MarketBuffers[buildingID];
            string str          = "";
            int    num;

            for (int i = 0; i < m_incomingResources.Length; i++)
            {
                string name = m_incomingResources[i].ToString();
                name = name.Replace("Grain", "Crops");
                name = name.Replace("Flours", "Flour");
                name = name.Replace("AnimalProducts", "Meat");
                num  = (int)(marketBuffer.amountSold2[i] * 10);
                str += name + " sold last week: " + num;
                str += Environment.NewLine;
            }
            str += Environment.NewLine;
            for (int i = 0; i < m_incomingResources.Length; i++)
            {
                string name = m_incomingResources[i].ToString();
                name = name.Replace("Grain", "Crops");
                name = name.Replace("Flours", "Flour");
                name = name.Replace("AnimalProducts", "Meat");
                num  = (int)(marketBuffer.inputAmountBuffer[i]);
                str += name + " stored in market: " + num + "/" + m_goodsCapacity;
                str += Environment.NewLine;
            }
            str += Environment.NewLine;
            MarketBuffers[buildingID] = marketBuffer;
            int finalExport = (int)data.m_finalExport;

            return(str + LocaleFormatter.FormatGeneric("AIINFO_TOURISTS", new object[]
            {
                finalExport
            }));
        }
Esempio n. 14
0
        public static void Postfix(PowerPlantAI __instance, ushort buildingID, ref Building data, ref string __result)
        {
            int    electricityRate = __instance.GetElectricityRate(buildingID, ref data);
            string text            = LocaleFormatter.FormatGeneric("AIINFO_ELECTRICITY_PRODUCTION", new object[]
            {
                (electricityRate * 16 + 500) / 1000
            });

            text += Environment.NewLine;
            if (__instance.m_resourceType != TransferManager.TransferReason.None)
            {
                string name = __instance.m_resourceType.ToString();
                name = name.Replace("Grain", "Crops");
                name = name.Replace("Flours", "Flour");
                name = name.Replace("Metals", "Metal");
                name = name.Replace("Petroleum", "Petroleum");
                name = name.Replace("Logs", "Raw Forest Products");
                name = name.Replace("Lumber", "Zoned Forest Goods");
                int resourceDuration = __instance.GetResourceDuration(buildingID, ref data);
                text += name + " stored for " + resourceDuration + " weeks";
            }
            __result = text;
        }
Esempio n. 15
0
        public void updateBidings()
        {
            ushort        lineID         = m_lineIdSelecionado.TransportLine;
            TransportLine tl             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID];
            TransportInfo info           = tl.Info;
            int           turistas       = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_touristPassengers.m_averageCount;
            int           residentes     = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_residentPassengers.m_averageCount;
            int           residentesPorc = residentes;

            if (residentesPorc == 0)
            {
                residentesPorc = 1;
            }
            int criancas         = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_childPassengers.m_averageCount;
            int adolescentes     = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_teenPassengers.m_averageCount;
            int jovens           = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_youngPassengers.m_averageCount;
            int adultos          = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_adultPassengers.m_averageCount;
            int idosos           = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_seniorPassengers.m_averageCount;
            int motoristas       = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_carOwningPassengers.m_averageCount;
            int veiculosLinha    = TLMLineUtils.GetVehiclesCount(lineID);
            int porcCriancas     = (criancas * 100 / residentesPorc);
            int porcAdolescentes = (adolescentes * 100 / residentesPorc);
            int porcJovens       = (jovens * 100 / residentesPorc);
            int porcAdultos      = (adultos * 100 / residentesPorc);
            int porcIdosos       = (idosos * 100 / residentesPorc);
            int soma             = porcCriancas + porcAdolescentes + porcJovens + porcAdultos + porcIdosos;

            if (soma != 0 && soma != 100)
            {
                porcAdultos = 100 - (porcCriancas + porcAdolescentes + porcJovens + porcIdosos);
            }
            agesPanel.SetValues(new int[]
            {
                porcCriancas,
                porcAdolescentes,
                porcJovens,
                porcAdultos,
                porcIdosos
            });
            passageirosEturistasLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
            {
                residentes,
                turistas
            });

            int viagensSalvas      = 0;
            int coeficienteViagens = 0;

            if (residentes + turistas != 0)
            {
                coeficienteViagens += criancas * 0;
                coeficienteViagens += adolescentes * 5;
                coeficienteViagens += jovens * ((15 * residentes + 20 * turistas + (residentes + turistas >> 1)) / (residentes + turistas));
                coeficienteViagens += adultos * ((20 * residentes + 20 * turistas + (residentes + turistas >> 1)) / (residentes + turistas));
                coeficienteViagens += idosos * ((10 * residentes + 20 * turistas + (residentes + turistas >> 1)) / (residentes + turistas));
            }
            if (coeficienteViagens != 0)
            {
                viagensSalvas = (int)(((long)motoristas * 10000L + (long)(coeficienteViagens >> 1)) / (long)coeficienteViagens);
                viagensSalvas = Mathf.Clamp(viagensSalvas, 0, 100);
            }
            viagensEvitadasLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_TRIPSAVED", new object[] {
                viagensSalvas
            });

            if (daytimeChange != null && daytimeChange.completedOrFailed)
            {
                linearMap.redrawLine();
                daytimeChange = null;
            }
            else
            {
                linearMap.updateBidings();
            }


            //lines info
            int stopsCount = TLMLineUtils.GetStopsCount(lineID);

            if (lastStopsCount != stopsCount)
            {
                float totalSize = TLMLineUtils.GetLineLength(lineID);
                lineLenghtLabel.text = string.Format(Locale.Get("TLM_LENGHT_AND_STOPS"), totalSize, stopsCount);
                lastStopsCount       = stopsCount;
            }

            //estatisticas novas
            veiculosLinhaLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_VEHICLECOUNT", new object[] { veiculosLinha });

            uint prefix = 0;

            if (TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
            {
                prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
            }

            float overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

            float prefixMultiplier = TLMUtils.getExtensionFromConfigIndex(TLMCW.getConfigIndexForTransportInfo(info)).getBudgetMultiplierForHour(prefix, (int)Singleton <SimulationManager> .instance.m_currentDayTimeHour) / 100f;

            detailedStatsLabel.text    = string.Format("{0:0%}", overallBudget * prefixMultiplier);
            detailedStatsLabel.tooltip = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN"),
                                                       TLMCW.getNameForTransportType(TLMCW.getConfigIndexForTransportInfo(info)),
                                                       TLMUtils.getStringOptionsForPrefix((ModoNomenclatura)TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX), true)[prefix + 1],
                                                       overallBudget, prefixMultiplier,
                                                       overallBudget * prefixMultiplier);

            //bool isZeroed = ((int)tl.m_flags & (int)TLMTransportLineFlags.ZERO_BUDGET_SETTED) > 0;
            //lineTime.isVisible = !isZeroed;
            //if (isZeroed)
            //{
            //    lineTimeTitle.localeID = ("TLM_LINE_DISABLED_NO_BUDGET");
            //    lineTimeTitle.tooltipLocaleID = ("TLM_LINE_DISABLED_NO_BUDGET_DESC");
            //}
            //else
            //{
            //    lineTimeTitle.localeID = ("TRANSPORT_LINE_ACTIVITY");
            //    lineTimeTitle.tooltipLocaleID = ("");
            //}

            //generalDebugLabel.enabled = TransportLinesManagerMod.debugMode.value;
            //if (TransportLinesManagerMod.debugMode.value)
            //{
            //    string debugTxt = "!";
            //    var extraDatas = ExtraVehiclesStats.instance.getLineVehiclesData(lineID);
            //    if (extraDatas.Count == 0)
            //    {
            //        debugTxt = "none";
            //    }
            //    else
            //    {
            //        foreach (var item in extraDatas)
            //        {
            //            debugTxt += string.Format("BUS ID {0} - {1} Fill, {2} per lap ||", item.Key, item.Value.avgFill.ToString("0.00%"), string.Format("{0}d {1}h{2}m", item.Value.timeTakenLap.TotalDays, item.Value.timeTakenLap.Hours, item.Value.timeTakenLap.Minutes));
            //        }
            //    }

            //    generalDebugLabel.text = debugTxt;
            //}

            //			//custos da linha
            //			float costVehicles = 0;
            //			ushort nextVehId = tl.m_vehicles;
            //			while (nextVehId >0) {
            //				costVehicles += Singleton<VehicleManager>.instance.m_vehicles.m_buffer [(int)nextVehId].Info.GetMaintenanceCost () ;
            //				nextVehId = Singleton<VehicleManager>.instance.m_vehicles.m_buffer [(int)nextVehId].m_nextLineVehicle;
            //			}
            //			float costStops = 0;
            //			int a = tl.m_stops;
            //			for (int i = 0; i< stopsCount; i++) {
            //				costStops += Singleton<NetManager>.instance.m_nodes.m_buffer [(int)tl.GetStop (i)].Info.GetMaintenanceCost () ;
            //			}
            //			custosLabel.text = String.Format (costsFormat, costVehicles, costStops, costVehicles + costStops);
        }
        public void Update()
        {
            if (!this.m_buildingInfoPanel.isVisible)
            {
                return;
            }
            Building b = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building];

            if (!(b.Info.GetAI() is BuildingAI basicAI))
            {
                closeBuildingInfo(null, null);
                return;
            }

            var           ssds         = ServiceSystemDefinition.from(b.Info);
            List <string> textVehicles = new List <string>();

            foreach (var ssd in ssds)
            {
                int count    = 0;
                int cargo    = 0;
                int capacity = 0;
                int inbound  = 0;
                int outbound = 0;
                var ext      = SVMBuildingAIOverrideUtils.getBuildingOverrideExtension(b.Info);
                SVMBuildingUtils.CalculateOwnVehicles(m_buildingIdSelecionado.Building, ref b, ext.GetManagedReasons(b.Info).Keys, ref count, ref cargo, ref capacity, ref inbound, ref outbound);
                var    maxField       = ext.GetVehicleMaxCountField(ssd.vehicleType);
                int    maxVehicles    = (SVMUtils.GetPrivateField <int>(b.Info.GetAI(), maxField) * SVMBuildingUtils.GetProductionRate(ref b) / 100);
                string maxVehiclesStr = maxField == null || maxVehicles > 0x3FFF ? "∞" : maxVehicles.ToString();
                textVehicles.Add($"{count}/{maxVehiclesStr} ({Locale.Get("SVM_VEHICLE_TYPE", ssd.vehicleType.ToString())})");
            }
            vehiclesInUseLabel.text = string.Join(" | ", textVehicles.ToArray());
            upkeepCost.text         = LocaleFormatter.FormatUpkeep(basicAI.GetResourceRate(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[(int)m_buildingIdSelecionado.Building], EconomyManager.Resource.Maintenance), false);

            uint num         = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building].m_citizenUnits;
            int  num2        = 0;
            int  num3        = 0;
            int  unskill     = 0;
            int  oneSchool   = 0;
            int  twoSchool   = 0;
            int  threeSchool = 0;

            CitizenManager instance = Singleton <CitizenManager> .instance;

            while (num != 0u)
            {
                uint nextUnit = instance.m_units.m_buffer[(int)((UIntPtr)num)].m_nextUnit;
                if ((ushort)(instance.m_units.m_buffer[(int)((UIntPtr)num)].m_flags & CitizenUnit.Flags.Work) != 0)
                {
                    for (int i = 0; i < 5; i++)
                    {
                        uint citizen = instance.m_units.m_buffer[(int)((UIntPtr)num)].GetCitizen(i);
                        if (citizen != 0u && !instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].Dead && (instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].m_flags & Citizen.Flags.MovingIn) == Citizen.Flags.None)
                        {
                            num3++;
                            switch (instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].EducationLevel)
                            {
                            case Citizen.Education.Uneducated:
                                unskill++;
                                break;

                            case Citizen.Education.OneSchool:
                                oneSchool++;
                                break;

                            case Citizen.Education.TwoSchools:
                                twoSchool++;
                                break;

                            case Citizen.Education.ThreeSchools:
                                threeSchool++;
                                break;
                            }
                        }
                    }
                }
                num = nextUnit;
                if (++num2 > 524288)
                {
                    CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace);

                    break;
                }
            }

            workerChart.SetValues(new int[] { unskill, oneSchool, twoSchool, threeSchool }, new int[] { SVMUtils.GetPrivateField <int>(basicAI, "m_workPlaceCount0"), SVMUtils.GetPrivateField <int>(basicAI, "m_workPlaceCount1"), SVMUtils.GetPrivateField <int>(basicAI, "m_workPlaceCount2"), SVMUtils.GetPrivateField <int>(basicAI, "m_workPlaceCount3") });
        }
        private void UpdateBindings()
        {
            ushort vehicleID = 0;
            ushort lineId    = this.GetLineID(out vehicleID);

            if ((int)lineId == 0)
            {
                this._passengerPanel.Hide();
                this._statsPanel.Hide();
                this._buttonPanel.Hide();
                this._publicTransportVehicleWorldInfoPanel.component.height = 229f;
            }
            else
            {
                this._publicTransportVehicleWorldInfoPanel.component.height = 332f;
                this._editType.isVisible = !OptionsWrapper <Settings> .Options.HideVehicleEditor;
                ItemClass            itemClass  = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineId].Info.m_class;
                ItemClass.SubService subService = itemClass.m_subService;
                ItemClass.Service    service    = itemClass.m_service;
                ItemClass.Level      level      = itemClass.m_level;

                switch (subService)
                {
                case ItemClass.SubService.PublicTransportBus:
                case ItemClass.SubService.PublicTransportTours:
                case ItemClass.SubService.PublicTransportMetro:
                case ItemClass.SubService.PublicTransportTrain:
                case ItemClass.SubService.PublicTransportTram:
                case ItemClass.SubService.PublicTransportShip:
                case ItemClass.SubService.PublicTransportPlane:
                case ItemClass.SubService.PublicTransportMonorail:
                case ItemClass.SubService.PublicTransportCableCar:
                case ItemClass.SubService.PublicTransportTrolleybus:
                    this._passengerPanel.Show();
                    if ((int)vehicleID != 0)
                    {
                        this._lastStopExchange.text = string.Format(Localization.Get("VEHICLE_PANEL_LAST_STOP_EXCHANGE"),
                                                                    (object)CachedVehicleData.m_cachedVehicleData[(int)vehicleID].LastStopGonePassengers,
                                                                    (object)CachedVehicleData.m_cachedVehicleData[(int)vehicleID].LastStopNewPassengers);
                    }
                    break;

                case ItemClass.SubService.None:
                    if (service == ItemClass.Service.Disaster && level == ItemClass.Level.Level4)
                    {
                        this._passengerPanel.Show();
                        if ((int)vehicleID != 0)
                        {
                            this._lastStopExchange.text = string.Format(Localization.Get("VEHICLE_PANEL_LAST_STOP_EXCHANGE"),
                                                                        (object)CachedVehicleData.m_cachedVehicleData[(int)vehicleID].LastStopGonePassengers,
                                                                        (object)CachedVehicleData.m_cachedVehicleData[(int)vehicleID].LastStopNewPassengers);
                        }
                    }
                    else
                    {
                        this._passengerPanel.Hide();
                    }
                    break;

                default:
                    this._passengerPanel.Hide();
                    break;
                }
                this._distanceTraveled.parent.Show();
                this._distanceProgress.parent.Show();
                VehicleManager vm = Singleton <VehicleManager> .instance;
                if ((vm.m_vehicles.m_buffer[(int)vehicleID].m_flags & Vehicle.Flags.Stopped) != ~(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))
                {
                    if (CachedVehicleData.m_cachedVehicleData[(int)vehicleID].IsUnbunchingInProgress)
                    {
                        this._status.text = Localization.Get("VEHICLE_PANEL_STATUS_UNBUNCHING");
                    }
                    this._distance.text = this._status.text;
                    float num = (float)vm.m_vehicles.m_buffer[(int)vehicleID].m_waitCounter / 12f;
                    int   p   = Mathf.RoundToInt(num * 100f);
                    this._distanceTraveled.value         = num;
                    this._distanceTraveled.progressColor = (Color32)Color.green;
                    this._distanceProgress.text          = LocaleFormatter.FormatPercentage(p);
                }
                else
                {
                    bool   flag = true;
                    string text = Localization.Get("VEHICLE_PANEL_STATUS_NEXT_STOP");
                    if (subService == ItemClass.SubService.PublicTransportShip)
                    {
                        this.UpdateProgress();
                    }
                    else if (subService == ItemClass.SubService.PublicTransportPlane)
                    {
                        if ((vm.m_vehicles.m_buffer[(int)vehicleID].m_flags & Vehicle.Flags.Landing) != ~(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) || (vm.m_vehicles.m_buffer[(int)vehicleID].m_flags & Vehicle.Flags.TakingOff) != ~(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) || (vm.m_vehicles.m_buffer[(int)vehicleID].m_flags & Vehicle.Flags.Flying) == ~(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))
                        {
                            text = this._status.text;
                            flag = false;
                        }
                        this.UpdateProgress();
                    }
                    this._status.text = text;
                    if (flag)
                    {
                        ushort     targetBuilding = vm.m_vehicles.m_buffer[(int)vehicleID].m_targetBuilding;
                        InstanceID id             = new InstanceID();
                        id.NetNode = targetBuilding;
                        string name = Singleton <InstanceManager> .instance.GetName(id);

                        this._target.objectUserData = (object)id;
                        this._target.text           = name == null?string.Format(Localization.Get("STOP_LIST_BOX_ROW_STOP"), (object)(TransportLineUtil.GetStopIndex(lineId, targetBuilding) + 1)) : name;

                        this._target.Enable();
                        this._target.Show();
                    }
                    this._distance.text = ColossalFramework.Globalization.Locale.Get(this._distance.localeID);
                    this._distanceTraveled.progressColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
                }
                this._statsPanel.Show();
                this._passengersCurrentWeek.text = CachedVehicleData.m_cachedVehicleData[(int)vehicleID].PassengersThisWeek.ToString();
                this._passengersLastWeek.text    = CachedVehicleData.m_cachedVehicleData[(int)vehicleID].PassengersLastWeek.ToString();
                this._passengersAverage.text     = CachedVehicleData.m_cachedVehicleData[(int)vehicleID].PassengersAverage.ToString();
                PrefabData prefabData          = Array.Find(VehiclePrefabs.instance.GetPrefabs(service, subService, level), item => item.PrefabDataIndex == vm.m_vehicles.m_buffer[(int)vehicleID].Info.m_prefabDataIndex);
                int        num1                = CachedVehicleData.m_cachedVehicleData[(int)vehicleID].IncomeThisWeek - prefabData.MaintenanceCost;
                UILabel    earningsCurrentWeek = this._earningsCurrentWeek;
                float      num2                = (float)num1 * 0.01f;
                string     str1                = num2.ToString(ColossalFramework.Globalization.Locale.Get("MONEY_FORMAT"), (IFormatProvider)LocaleManager.cultureInfo);
                earningsCurrentWeek.text            = str1;
                this._earningsCurrentWeek.textColor = (Color32)this.GetColor((float)num1);
                int     incomeLastWeek   = CachedVehicleData.m_cachedVehicleData[(int)vehicleID].IncomeLastWeek;
                UILabel earningsLastWeek = this._earningsLastWeek;
                num2 = (float)incomeLastWeek * 0.01f;
                string str2 = num2.ToString(ColossalFramework.Globalization.Locale.Get("MONEY_FORMAT"), (IFormatProvider)LocaleManager.cultureInfo);
                earningsLastWeek.text            = str2;
                this._earningsLastWeek.textColor = (Color32)this.GetColor((float)incomeLastWeek);
                int     incomeAverage   = CachedVehicleData.m_cachedVehicleData[(int)vehicleID].IncomeAverage;
                UILabel earningsAverage = this._earningsAverage;
                num2 = (float)incomeAverage * 0.01f;
                string str3 = num2.ToString(ColossalFramework.Globalization.Locale.Get("MONEY_FORMAT"), (IFormatProvider)LocaleManager.cultureInfo);
                earningsAverage.text            = str3;
                this._earningsAverage.textColor = (Color32)this.GetColor((float)incomeAverage);
                this._buttonPanel.Show();
            }
        }
Esempio n. 18
0
        public void RefreshData(bool colors, bool visible)
        {
            if (Singleton <TransportManager> .exists)
            {
                bool isRowVisible;

                if (this.m_LineOperation == null || this.m_LineOperation.completedOrFailed)
                {
                    //this.m_DayLine.isVisible = (!isZeroed);
                    //this.m_NightLine.isVisible = (!isZeroed);
                    //this.m_DayNightLine.isVisible = (!isZeroed);
                    //this.m_DisabledLine.isVisible = (!isZeroed);
                    //this.m_noBudgetWarn.isVisible = (isZeroed);


                    TLMLineUtils.getLineActive(ref Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID], out bool dayActive, out bool nightActive);
                    bool zeroed;
                    unchecked
                    {
                        zeroed = (Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID].m_flags & (TransportLine.Flags)TLMTransportLineFlags.ZERO_BUDGET_CURRENT) != 0;
                    }
                    if (!dayActive || !nightActive || zeroed)
                    {
                        m_LineColor.normalBgSprite = zeroed ? "NoBudgetIcon" : dayActive ? "DayIcon" : nightActive ? "NightIcon" : "DisabledIcon";
                    }
                    else
                    {
                        m_LineColor.normalBgSprite = "";
                    }

                    this.m_DayLine.isChecked        = (dayActive && !nightActive);
                    this.m_NightLine.isChecked      = (nightActive && !dayActive);
                    this.m_DayNightLine.isChecked   = (dayActive && nightActive);
                    this.m_DisabledLine.isChecked   = (!dayActive && !nightActive);
                    m_DisabledLine.relativePosition = new Vector3(730, 8);
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(dayActive, nightActive) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                else
                {
                    m_LineColor.normalBgSprite = "DisabledIcon";
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(false, false) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                if (!isRowVisible)
                {
                    GetComponent <UIComponent>().isVisible = false;
                    return;
                }
                GetComponent <UIComponent>().isVisible = true;
                this.m_LineName.text = Singleton <TransportManager> .instance.GetLineName(this.m_LineID);

                m_LineNumber             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_lineNumber;
                this.m_LineStops.text    = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountStops(this.m_LineID).ToString("N0");
                this.m_LineVehicles.text = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountVehicles(this.m_LineID).ToString("N0");
                uint          prefix = 0;
                TransportInfo info   = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].Info;
                if (TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
                {
                    prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
                }

                float overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

                this.m_lineBudgetLabel.text = string.Format("{0:0%}", TLMLineUtils.getEffectiveBugdet(lineID));//585+1/7 = frames/week

                string vehTooltip = string.Format("{0} {1}", this.m_LineVehicles.text, Locale.Get("PUBLICTRANSPORT_VEHICLES"));


                this.m_LineVehicles.tooltip = vehTooltip;


                int averageCount  = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_residentPassengers.m_averageCount;
                int averageCount2 = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_touristPassengers.m_averageCount;
                this.m_LinePassengers.text = (averageCount + averageCount2).ToString("N0");


                //   this.m_LineEarnings.text = string.Format("~₡ {0:0.00}", (averageCount + averageCount2) / 50f);
                //    m_LineEarnings.relativePosition = m_LinePassengers.relativePosition + new Vector3(0, 20, 0);


                this.m_LinePassengers.tooltip = string.Format("{0}", LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
                {
                    averageCount,
                    averageCount2
                }));
                TLMLineUtils.setLineNumberCircleOnRef(lineID, m_LineNumberFormatted, 0.8f);
                m_LineColor.normalFgSprite = TLMLineUtils.getIconForLine(lineID);

                m_lineBudgetLabel.tooltip = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN_2"),
                                                          TLMCW.getNameForTransportType(TLMCW.getConfigIndexForTransportInfo(info)),
                                                          overallBudget, Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_budget / 100f, TLMLineUtils.getEffectiveBugdet(lineID));

                this.m_PassengerCount = averageCount + averageCount2;

                this.m_lineIncompleteWarning.isVisible = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Complete) == TransportLine.Flags.None);
                if (colors)
                {
                    this.m_LineColor.selectedColor = Singleton <TransportManager> .instance.GetLineColor(this.m_LineID);
                }
                if (visible)
                {
                    this.m_LineIsVisible.isChecked = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Hidden) == TransportLine.Flags.None);
                }


                m_lineBudgetLabel.relativePosition = new Vector3(m_LineVehicles.relativePosition.x, 19, 0);

                bool tlmPerHour = TLMLineUtils.isPerHourBudget(m_LineID);
                m_DayLine.isVisible           = !tlmPerHour;
                m_DayNightLine.isVisible      = !tlmPerHour;
                m_NightLine.isVisible         = !tlmPerHour;
                m_DisabledLine.isVisible      = !tlmPerHour;
                m_perHourBudgetInfo.isVisible = tlmPerHour;

                m_perHourBudgetInfo.relativePosition = new Vector3(615, 2);
            }
        }
Esempio n. 19
0
        public void updateBidings()
        {
            BuildingInfo basicInfo = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building].Info;
            DepotAI      basicAI   = basicInfo.GetAI() as DepotAI;

            if (basicAI == null)
            {
                closeDepotInfo(null, null);
                return;
            }

            TransportStationAI stationAI = basicInfo.GetAI() as TransportStationAI;
            HarborAI           harborAI  = basicInfo.GetAI() as HarborAI;


            vehiclesInUseLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_VEHICLECOUNT", new object[] { basicAI.GetVehicleCount(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building]).ToString() });
            if (stationAI != null)
            {
                passengersLastWeek.isVisible = true;
                int passengerCount = stationAI.GetPassengerCount(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building]);
                passengersLastWeek.text = LocaleFormatter.FormatGeneric("AIINFO_PASSENGERS_SERVICED", new object[] { passengerCount });
            }
            else
            {
                passengersLastWeek.isVisible = false;
            }

            upkeepCost.text = LocaleFormatter.FormatUpkeep(basicAI.GetResourceRate(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[(int)m_buildingIdSelecionado.Building], EconomyManager.Resource.Maintenance), false);

            uint num         = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building].m_citizenUnits;
            int  num2        = 0;
            int  num3        = 0;
            int  unskill     = 0;
            int  oneSchool   = 0;
            int  twoSchool   = 0;
            int  threeSchool = 0;

            CitizenManager instance = Singleton <CitizenManager> .instance;

            while (num != 0u)
            {
                uint nextUnit = instance.m_units.m_buffer[(int)((UIntPtr)num)].m_nextUnit;
                if ((ushort)(instance.m_units.m_buffer[(int)((UIntPtr)num)].m_flags & CitizenUnit.Flags.Work) != 0)
                {
                    for (int i = 0; i < 5; i++)
                    {
                        uint citizen = instance.m_units.m_buffer[(int)((UIntPtr)num)].GetCitizen(i);
                        if (citizen != 0u && !instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].Dead && (instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].m_flags & Citizen.Flags.MovingIn) == Citizen.Flags.None)
                        {
                            num3++;
                            switch (instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].EducationLevel)
                            {
                            case Citizen.Education.Uneducated:
                                unskill++;
                                break;

                            case Citizen.Education.OneSchool:
                                oneSchool++;
                                break;

                            case Citizen.Education.TwoSchools:
                                twoSchool++;
                                break;

                            case Citizen.Education.ThreeSchools:
                                threeSchool++;
                                break;
                            }
                        }
                    }
                }
                num = nextUnit;
                if (++num2 > 524288)
                {
                    CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace);

                    break;
                }
            }

            workerChart.SetValues(new int[] { unskill, oneSchool, twoSchool, threeSchool }, new int[] { basicAI.m_workPlaceCount0, basicAI.m_workPlaceCount1, basicAI.m_workPlaceCount2, basicAI.m_workPlaceCount3 });
        }
        public void RefreshData(bool colors, bool visible)
        {
            if (Singleton <TransportManager> .exists)
            {
                bool isRowVisible;

                if (this.m_LineOperation == null || this.m_LineOperation.completedOrFailed)
                {
                    //this.m_DayLine.isVisible = (!isZeroed);
                    //this.m_NightLine.isVisible = (!isZeroed);
                    //this.m_DayNightLine.isVisible = (!isZeroed);
                    //this.m_DisabledLine.isVisible = (!isZeroed);
                    //this.m_noBudgetWarn.isVisible = (isZeroed);

                    bool isZeroed;
                    bool dayActive;
                    bool nightActive;

                    TLMLineUtils.getLineActive(ref Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID], out dayActive, out nightActive, out isZeroed);
                    if (!isZeroed)
                    {
                        if (!dayActive || !nightActive)
                        {
                            m_LineColor.normalBgSprite = dayActive ? "DayIcon" : nightActive ? "NightIcon" : "DisabledIcon";
                        }
                        else
                        {
                            m_LineColor.normalBgSprite = "";
                        }
                    }
                    else
                    {
                        m_LineColor.normalBgSprite = "NoBudgetIcon";
                        //m_noBudgetWarn.relativePosition = new Vector3(615, 2);
                    }
                    this.m_DayLine.isChecked        = (dayActive && !nightActive);
                    this.m_NightLine.isChecked      = (nightActive && !dayActive);
                    this.m_DayNightLine.isChecked   = (dayActive && nightActive);
                    this.m_DisabledLine.isChecked   = (!dayActive && !nightActive);
                    m_DisabledLine.relativePosition = new Vector3(730, 8);
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(dayActive, nightActive) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                else
                {
                    m_LineColor.normalBgSprite = "DisabledIcon";
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(false, false) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                if (!isRowVisible)
                {
                    GetComponent <UIComponent>().isVisible = false;
                    return;
                }
                GetComponent <UIComponent>().isVisible = true;
                this.m_LineName.text = Singleton <TransportManager> .instance.GetLineName(this.m_LineID);

                m_LineNumber             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_lineNumber;
                this.m_LineStops.text    = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountStops(this.m_LineID).ToString("N0");
                this.m_LineVehicles.text = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountVehicles(this.m_LineID).ToString("N0");
                uint          prefix = 0;
                TransportInfo info   = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].Info;
                if (TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
                {
                    prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
                }

                float overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

                float prefixMultiplier = TLMUtils.getExtensionFromConfigIndex(TLMCW.getConfigIndexForTransportInfo(info)).getBudgetMultiplierForHour(prefix, (int)Singleton <SimulationManager> .instance.m_currentDayTimeHour) / 100f;

                this.m_budgetEffective.text = string.Format("{0:0%}", overallBudget * prefixMultiplier);//585+1/7 = frames/week

                string vehTooltip = string.Format("{0} {1}", this.m_LineVehicles.text, Locale.Get("PUBLICTRANSPORT_VEHICLES"));


                this.m_LineVehicles.tooltip = vehTooltip;


                int averageCount  = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_residentPassengers.m_averageCount;
                int averageCount2 = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_touristPassengers.m_averageCount;
                this.m_LinePassengers.text = (averageCount + averageCount2).ToString("N0");


                //   this.m_LineEarnings.text = string.Format("~₡ {0:0.00}", (averageCount + averageCount2) / 50f);
                //    m_LineEarnings.relativePosition = m_LinePassengers.relativePosition + new Vector3(0, 20, 0);


                this.m_LinePassengers.tooltip = string.Format("{0}", LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
                {
                    averageCount,
                    averageCount2
                }));
                ModoNomenclatura prefixMode;
                Separador        sep;
                ModoNomenclatura suffix;
                ModoNomenclatura nonPrefix;
                bool             zerosEsquerda;
                bool             invertPrefixSuffix;
                string           bgSprite;
                TLMLineUtils.getLineNamingParameters(lineID, out prefixMode, out sep, out suffix, out nonPrefix, out zerosEsquerda, out invertPrefixSuffix, out bgSprite);
                TLMLineUtils.setLineNumberCircleOnRef(lineNumber, prefixMode, sep, suffix, nonPrefix, zerosEsquerda, m_LineNumberFormatted, invertPrefixSuffix, 0.8f);
                m_LineColor.normalFgSprite = bgSprite;

                m_budgetEffective.tooltip = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN"), TLMCW.getNameForTransportType(TLMCW.getConfigIndexForTransportInfo(info)), TLMUtils.getStringOptionsForPrefix(prefixMode, true)[prefix + 1], overallBudget, prefixMultiplier, overallBudget * prefixMultiplier);

                this.m_PassengerCount = averageCount + averageCount2;
                if (colors)
                {
                    this.m_LineColor.selectedColor = Singleton <TransportManager> .instance.GetLineColor(this.m_LineID);
                }
                if (visible)
                {
                    this.m_LineIsVisible.isChecked = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Hidden) == TransportLine.Flags.None);
                }


                m_budgetEffective.relativePosition = new Vector3(m_LineVehicles.relativePosition.x, 19, 0);
            }
        }
Esempio n. 21
0
        public void RefreshData(bool updateColors, bool updateVisibility)
        {
            if (this.m_LineOperation == null || this.m_LineOperation.completedOrFailed)
            {
                TLMLineUtils.getLineActive(ref Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID], out bool dayActive, out bool nightActive);
                bool zeroed;
                unchecked
                {
                    zeroed = (Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID].m_flags & (TransportLine.Flags)TLMTransportLineFlags.ZERO_BUDGET_CURRENT) != 0;
                }
                if (!dayActive || !nightActive || zeroed)
                {
                    m_LineColor.normalBgSprite = zeroed ? "NoBudgetIcon" : dayActive ? "DayIcon" : nightActive ? "NightIcon" : "DisabledIcon";
                }
                else
                {
                    m_LineColor.normalBgSprite = "";
                }

                this.m_DayLine.isChecked        = (dayActive && !nightActive);
                this.m_NightLine.isChecked      = (nightActive && !dayActive);
                this.m_DayNightLine.isChecked   = (dayActive && nightActive);
                this.m_DisabledLine.isChecked   = (!dayActive && !nightActive);
                m_DisabledLine.relativePosition = new Vector3(730, 8);
            }
            else
            {
                m_LineColor.normalBgSprite = "DisabledIcon";
            }
            this.m_LineName.text = Singleton <TransportManager> .instance.GetLineName(this.m_LineID);

            m_LineNumber             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_lineNumber;
            this.m_LineStops.text    = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountStops(this.m_LineID).ToString("N0");
            this.m_LineVehicles.text = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountVehicles(this.m_LineID).ToString("N0");
            uint prefix = 0;

            var tsd = Singleton <T> .instance.GetTSD();

            if (TLMConfigWarehouse.getCurrentConfigInt(tsd.toConfigIndex() | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
            {
                prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
            }


            int averageCount  = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_residentPassengers.m_averageCount;
            int averageCount2 = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_touristPassengers.m_averageCount;

            this.m_LinePassengers.text = (averageCount + averageCount2).ToString("N0");

            this.m_LinePassengers.tooltip = string.Format("{0}", LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
            {
                averageCount,
                averageCount2
            }));
            TLMLineUtils.setLineNumberCircleOnRef(lineID, m_LineNumberFormatted, 0.8f);
            m_LineColor.normalFgSprite = TLMLineUtils.getIconForLine(lineID);

            this.m_PassengerCount = averageCount + averageCount2;

            this.m_lineIncompleteWarning.isVisible = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Complete) == TransportLine.Flags.None);

            if (updateColors)
            {
                this.m_LineColor.selectedColor = Singleton <TransportManager> .instance.GetLineColor(this.m_LineID);
            }
            if (updateVisibility)
            {
                this.m_LineIsVisible.isChecked = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Hidden) == TransportLine.Flags.None);
            }


            if (tsd.hasVehicles())
            {
                TransportInfo info          = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].Info;
                float         overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

                string vehTooltip = string.Format("{0} {1}", this.m_LineVehicles.text, Locale.Get("PUBLICTRANSPORT_VEHICLES"));
                this.m_LineVehicles.tooltip = vehTooltip;
                if (!TLMTransportLineExtension.instance.IsUsingCustomConfig(this.lineID) || !TLMTransportLineExtension.instance.IsUsingAbsoluteVehicleCount(this.lineID))
                {
                    this.m_lineBudgetLabel.text = string.Format("{0:0%}", TLMLineUtils.getEffectiveBugdet(lineID));//585+1/7 = frames/week
                    m_lineBudgetLabel.tooltip   = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN_2"),
                                                                TLMConfigWarehouse.getNameForTransportType(tsd.toConfigIndex()),
                                                                overallBudget, Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_budget / 100f, TLMLineUtils.getEffectiveBugdet(lineID));
                    m_lineBudgetLabel.relativePosition = new Vector3(m_LineVehicles.relativePosition.x, 19, 0);
                    m_lineBudgetLabel.isVisible        = true;
                }
                else
                {
                    m_lineBudgetLabel.isVisible = false;
                }


                bool tlmPerHour = TLMLineUtils.isPerHourBudget(m_LineID);
                m_DayLine.isVisible           = !tlmPerHour;
                m_DayNightLine.isVisible      = !tlmPerHour;
                m_NightLine.isVisible         = !tlmPerHour;
                m_DisabledLine.isVisible      = !tlmPerHour;
                m_perHourBudgetInfo.isVisible = tlmPerHour;

                m_perHourBudgetInfo.relativePosition = new Vector3(615, 2);
            }
            else
            {
                m_DayLine.isVisible      = true;
                m_DayNightLine.isVisible = true;
                m_NightLine.isVisible    = true;
                m_DisabledLine.isVisible = true;
            }
        }
Esempio n. 22
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            string text = string.Empty;

            if ((UnityEngine.Object) this.m_transportInfo != (UnityEngine.Object)null && this.m_maxVehicleCount != 0)
            {
                switch (this.m_transportInfo.m_transportType)
                {
                case TransportInfo.TransportType.Bus:
                case TransportInfo.TransportType.TouristBus:
                {
                    int vehicleCount = this.GetVehicleCount(buildingID, ref data);
                    int budget       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate = PlayerBuildingAI.GetProductionRate(100, budget);
                    int num            = (productionRate * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_BUSDEPOT_BUSCOUNT", new object[]
                        {
                            vehicleCount,
                            num
                        });
                    break;
                }

                case TransportInfo.TransportType.Ship:
                    if (this.m_transportInfo.m_vehicleType == VehicleInfo.VehicleType.Ferry)
                    {
                        int vehicleCount2 = this.GetVehicleCount(buildingID, ref data);
                        int budget2       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                        int productionRate2 = PlayerBuildingAI.GetProductionRate(100, budget2);
                        int num2            = (productionRate2 * this.m_maxVehicleCount + 99) / 100;
                        text += LocaleFormatter.FormatGeneric("AIINFO_FERRYDEPOT_FERRYCOUNT", new object[]
                        {
                            vehicleCount2,
                            num2
                        });
                    }
                    break;

                case TransportInfo.TransportType.Airplane:
                    if (this.m_transportInfo.m_vehicleType == VehicleInfo.VehicleType.Blimp)
                    {
                        int vehicleCount3 = this.GetVehicleCount(buildingID, ref data);
                        int budget3       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                        int productionRate3 = PlayerBuildingAI.GetProductionRate(100, budget3);
                        int num3            = (productionRate3 * this.m_maxVehicleCount + 99) / 100;
                        text += LocaleFormatter.FormatGeneric("AIINFO_BLIMPDEPOT_BLIMPCOUNT", new object[]
                        {
                            vehicleCount3,
                            num3
                        });
                    }
                    break;

                case TransportInfo.TransportType.Taxi:
                {
                    int vehicleCount4 = this.GetVehicleCount(buildingID, ref data);
                    int budget4       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate4 = PlayerBuildingAI.GetProductionRate(100, budget4);
                    int num4            = (productionRate4 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TAXIDEPOT_VEHICLES", new object[]
                        {
                            vehicleCount4,
                            num4
                        });
                    break;
                }

                case TransportInfo.TransportType.Tram:
                {
                    int vehicleCount5 = this.GetVehicleCount(buildingID, ref data);
                    int budget5       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate5 = PlayerBuildingAI.GetProductionRate(100, budget5);
                    int num5            = (productionRate5 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", new object[]
                        {
                            vehicleCount5,
                            num5
                        });
                    break;
                }

                //begin mod
                case TransportInfo.TransportType.Metro:
                {
                    int vehicleCount6 = this.GetVehicleCount(buildingID, ref data);
                    int budget6       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate6 = PlayerBuildingAI.GetProductionRate(100, budget6);
                    int num6            = (productionRate6 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", new object[]
                        {
                            vehicleCount6,
                            num6
                        }).Replace("Tram", "Metro");
                    break;
                }

                case TransportInfo.TransportType.Train:
                {
                    int vehicleCount7 = this.GetVehicleCount(buildingID, ref data);
                    int budget7       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate7 = PlayerBuildingAI.GetProductionRate(100, budget7);
                    int num7            = (productionRate7 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", new object[]
                        {
                            vehicleCount7,
                            num7
                        }).Replace("Tram", "Train");
                    break;
                    //end mod
                }
                }
            }
            return(text);
        }
        private void SpawnEntry(string name, bool enabled, MilestoneInfo info)
        {
            var landscapingInfo = (LandscapingPanel.LandscapingInfo)
                                  typeof(LandscapingPanel).GetProperty("landscapingInfo", BindingFlags.NonPublic | BindingFlags.Instance)
                                  .GetValue(this, null);

            landscapingInfo.m_DirtPrice = Singleton <TerrainManager> .instance.m_properties.m_dirtPrice;
            float  cost = (float)((double)landscapingInfo.m_DirtPrice * 65536.0 / 262144.0 * 512.0 / 100.0);
            string str  = TooltipHelper.Format(LocaleFormatter.Title, Locale.Get("LANDSCAPING_TITLE", name), LocaleFormatter.Sprite, name, LocaleFormatter.Text, Locale.Get("LANDSCAPING_DESC", name), LocaleFormatter.Locked, (!enabled).ToString(), LocaleFormatter.Cost, LocaleFormatter.FormatCubicCost(cost));

            if (Singleton <UnlockManager> .exists)
            {
                string unlockDesc;
                string currentValue;
                string targetValue;
                string progress;
                string locked;
                ToolsModifierControl.GetUnlockingInfo(info, out unlockDesc, out currentValue, out targetValue, out progress, out locked);
                string addTooltip = TooltipHelper.Format(LocaleFormatter.LockedInfo, locked, LocaleFormatter.UnlockDesc, unlockDesc, LocaleFormatter.UnlockPopulationProgressText, progress, LocaleFormatter.UnlockPopulationTarget, targetValue, LocaleFormatter.UnlockPopulationCurrent, currentValue);
                str = TooltipHelper.Append(str, addTooltip);
            }
            //begin mod
            string         buttonName;
            UITextureAtlas buttonAtlas;
            UIComponent    tooltipBox;

            if (name == "Ditch")
            {
                buttonName  = "TerrainDitch";
                buttonAtlas = Util.CreateAtlasFromEmbeddedResources(Assembly.GetExecutingAssembly(), "NaturalResourcesBrush.resources", new List <string> {
                    "TerrainDitch"
                });
                tooltipBox = GeneratedPanel.landscapingTooltipBox;
            }
            else if (name == "Sand")
            {
                buttonName  = "ResourceSand";
                tooltipBox  = GeneratedPanel.tooltipBox;
                buttonAtlas = UIView.GetAView().defaultAtlas;
            }
            else
            {
                buttonName  = "Landscaping" + name;
                buttonAtlas = null;
                tooltipBox  = GeneratedPanel.landscapingTooltipBox;
            }
            var button = (UIButton)this.SpawnEntry(name, str, buttonName, (UITextureAtlas)buttonAtlas, tooltipBox, enabled);

            button.objectUserData = (object)landscapingInfo;
            //end mod
        }
Esempio n. 24
0
#pragma warning disable CS1591

        protected Stage(Blob data)
        {
            _data = data;

            Locale = new(this);
        }