Beispiel #1
0
        public static void Init()
        {
            if (!TryLoadData(out _lineData))
            {
                Utils.Log((object)"Loading default transport line data.");
                NetManager       instance1 = Singleton <NetManager> .instance;
                TransportManager instance2 = Singleton <TransportManager> .instance;
                int length = instance2.m_lines.m_buffer.Length;
                for (ushort index = 0; index < length; ++index)
                {
                    if (instance2.m_lines.m_buffer[index].Complete)
                    {
                        _lineData[index].TargetVehicleCount = TransportLineDetour.CountLineActiveVehicles(index, out int _);
                    }
                    else
                    {
                        _lineData[index].TargetVehicleCount =
                            OptionsWrapper <Settings> .Options.DefaultVehicleCount;
                    }
                    _lineData[index].BudgetControl = OptionsWrapper <Settings> .Options.BudgetControl;
                    _lineData[index].Depot         = DepotUtil.GetClosestDepot((ushort)index,
                                                                               instance1.m_nodes.m_buffer[(int)instance2.m_lines.m_buffer[index].GetStop(0)].m_position);
                    _lineData[index].Unbunching = OptionsWrapper <Settings> .Options.Unbunching;
                }
            }
            SerializableDataExtension.instance.EventSaveData +=
                new SerializableDataExtension.SaveDataEventHandler(OnSaveData);

            _init = true;
        }
Beispiel #2
0
        //based off code in TransportLine.SimulationStep
        public static void RemoveActiveVehicle(ushort lineID, bool descreaseTargetVehicleCount, int activeVehiclesCount)
        {
            ushort activeVehicle = TransportLineDetour.GetActiveVehicle(
                ref Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID],
                Singleton <SimulationManager> .instance.m_randomizer.Int32((uint)activeVehiclesCount));

            if ((int)activeVehicle != 0)
            {
                TransportLineUtil.RemoveVehicle(lineID, activeVehicle, descreaseTargetVehicleCount);
            }
        }
 private void OnRemoveVehicleClick(UIComponent component, UIMouseEventParameter eventParam)
 {
     SimulationManager.instance.AddAction(() =>
     {
         ushort firstVehicle = 0;
         ushort lineId       = this.GetLineID(out firstVehicle);
         if ((int)lineId == 0 || (int)firstVehicle == 0)
         {
             return;
         }
         CachedTransportLineData.SetBudgetControlState(lineId, false);
         TransportLineDetour.RemoveVehicle(lineId, firstVehicle, true);
     });
 }