예제 #1
0
        /// <summary>
        /// Tries to attach the given siren to the vehicle, replacing any existing siren.
        /// </summary>
        /// <param name="aVehicle">The vehicle.</param>
        /// <param name="aSiren">The siren.</param>
        /// <param name="anInitialState">The initial siren state.</param>
        /// <param name="aPlayer">The calling player.</param>
        private void AttachSirens(BaseVehicle aVehicle, Siren aSiren, SirenController.States anInitialState, IPlayer aPlayer = null)
        {
            DetachSirens(aVehicle);
            SirenController theController = CreateSirenController(aVehicle, aSiren);

            if (aVehicle as ModularCar)
            {
                if (aSiren.Modules == null)
                {
                    Message(aPlayer, I18N_NOT_SUPPORTED, aSiren.Name, KEY_MODULAR_CAR);
                    DetachSirens(aVehicle);
                    return;
                }
                foreach (BaseVehicleModule eachModule in aVehicle.GetComponentsInChildren <BaseVehicleModule>())
                {
                    SpawnAttachments(aSiren.Modules, aPlayer, theController, eachModule);
                }
            }
            else if (!SpawnAttachments(aSiren.Vehicles, aPlayer, theController, aVehicle))
            {
                Message(aPlayer, I18N_NOT_SUPPORTED, aSiren.Name, aVehicle.PrefabName);
                DetachSirens(aVehicle);
                return;
            }
            theController.SetState(anInitialState);
        }
예제 #2
0
 public VehicleContainer(string aSirenName, SirenController.States aState, IEnumerable <uint> someNetIDs)
 {
     SirenName = aSirenName;
     State     = aState;
     NetIDs.UnionWith(someNetIDs);
 }