コード例 #1
0
        public static void DoCreate(TrainCar car)
        {
            try
            {
                string carId = (car.logicCar != null) ? car.ID : "[No ID]";

                switch (car.carType)
                {
                default:
                    Main.Log($"Skipping LocoLights creation for train car {carId} ({car.carType})");
                    return;

                // locomotives
                case TrainCarType.LocoSteamHeavy:
                    SH282LightDefinition.SetupEngine(car);
                    break;

                case TrainCarType.LocoShunter:
                    DE2LightDefinition.SetupLights(car);
                    break;

                case TrainCarType.LocoDiesel:
                    DE6LightDefinition.SetupLights(car);
                    break;

                // train cars
                case TrainCarType.PassengerBlue:
                case TrainCarType.PassengerGreen:
                case TrainCarType.PassengerRed:
                    PassengerCarLightDefinition.SetupLights(car);
                    break;

                case TrainCarType.CabooseRed:
                    CabooseLightDefinitions.SetupLights(car);
                    break;
                }
                Main.Log($"Created LocoLights for train car {carId} ({car.carType})");
            }
            catch (Exception e) { Main.LogError(e); }
        }
コード例 #2
0
        public static void DoDestroy(TrainCar car)
        {
            try
            {
                var tcLights = car.gameObject.GetComponent <TrainCarLights>();
                if (tcLights == null)
                {
                    return;
                }

                if (car.carType == TrainCarType.LocoSteamHeavy)
                {
                    SH282LightDefinition.TeardownTender(car.rearCoupler?.coupledTo?.train, car);
                }

                string carId = (car.logicCar != null) ? car.ID : "[No ID]";

                Main.Log($"Destroying LocoLights for train car {carId}");
                GameObject.Destroy(tcLights);
            }
            catch (Exception e) { Main.LogError(e); }
        }