/// <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); }
public VehicleContainer(string aSirenName, SirenController.States aState, IEnumerable <uint> someNetIDs) { SirenName = aSirenName; State = aState; NetIDs.UnionWith(someNetIDs); }