Beispiel #1
0
        public void SetVehicleCapacity(string assetName, int newCapacity)
        {
            VehicleInfo vehicle = PrefabCollection <VehicleInfo> .FindLoaded(assetName);

            if (vehicle != null && !VehicleUtils.IsTrailer(vehicle))
            {
                Dictionary <string, MutableTuple <float, int> > assetsCapacitiesPercentagePerTrailer = GetCapacityRelative(vehicle);
                int capacityUsed = 0;
                foreach (KeyValuePair <string, MutableTuple <float, int> > entry in assetsCapacitiesPercentagePerTrailer)
                {
                    SafeGetAsset(entry.Key).Capacity = Mathf.RoundToInt(newCapacity <= 0 ? -1f : entry.Value.First *newCapacity);
                    capacityUsed += SafeGetAsset(entry.Key).Capacity *entry.Value.Second;
                }
                if (newCapacity > 0 && capacityUsed != newCapacity)
                {
                    SafeGetAsset(assetsCapacitiesPercentagePerTrailer.Keys.ElementAt(0)).Capacity += (newCapacity - capacityUsed) / assetsCapacitiesPercentagePerTrailer[assetsCapacitiesPercentagePerTrailer.Keys.ElementAt(0)].Second;
                }
                foreach (string entry in assetsCapacitiesPercentagePerTrailer.Keys)
                {
                    VehicleAI vai = PrefabCollection <VehicleInfo> .FindLoaded(entry).m_vehicleAI;

                    SetVehicleCapacity(vai, SafeGetAsset(entry).Capacity);
                }
                SimulationManager.instance.StartCoroutine(TLMVehicleUtils.UpdateCapacityUnitsFromTSD());
            }
        }
Beispiel #2
0
        private void InitCapacitiesInAssets()
        {
            var keys = AssetConfigurations.Keys.ToList();

            foreach (string entry in keys)
            {
                try
                {
                    VehicleInfo info = PrefabCollection <VehicleInfo> .FindLoaded(entry);

                    if (info != null)
                    {
                        VehicleAI ai = info.m_vehicleAI;
                        UpdateDefaultCapacity(ai);
                        SetVehicleCapacity(ai, SafeGetAsset(entry).Capacity);
                    }
                    else
                    {
                        AssetConfigurations.Remove(entry);
                    }
                }
                catch (Exception e)
                {
                    LogUtils.DoErrorLog($"ERROR LOADING ASSET CONFIG: {e}=> {e.Message}\n{e.StackTrace}");
                }
            }
            SimulationManager.instance.StartCoroutine(TLMVehicleUtils.UpdateCapacityUnitsFromTSD());
        }
        private void CreateRemoveUndesiredModelsButton()
        {
            KlyteMonoUtils.CreateUIElement <UIButton>(out UIButton removeUndesired, MainPanel.transform);
            removeUndesired.relativePosition = new Vector3(MainPanel.width - 25f, 0f);
            removeUndesired.textScale        = 0.6f;
            removeUndesired.width            = 20;
            removeUndesired.height           = 20;
            removeUndesired.tooltip          = Locale.Get("K45_TLM_REMOVE_UNWANTED_TOOLTIP");
            KlyteMonoUtils.InitButton(removeUndesired, true, "ButtonMenu");
            removeUndesired.name        = "DeleteLineButton";
            removeUndesired.isVisible   = true;
            removeUndesired.eventClick += (component, eventParam) =>
            {
                TLMVehicleUtils.RemoveAllUnwantedVehicles();
            };

            UISprite icon = removeUndesired.AddUIComponent <UISprite>();

            icon.relativePosition = new Vector3(2, 2);
            icon.width            = 18;
            icon.height           = 18;
            icon.spriteName       = KlyteResourceLoader.GetDefaultSpriteNameFor(CommonsSpriteNames.K45_RemoveUnwantedIcon);
        }