/// <summary> /// Release all the locks (update and control) of a vessel /// </summary> public void ReleaseAllVesselLocks(IEnumerable <string> crewNames, Guid vesselId, int msDelay = 0) { TaskFactory.StartNew(() => { if (msDelay > 0) { Thread.Sleep(msDelay); } if (LockQuery.UnloadedUpdateLockBelongsToPlayer(vesselId, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.UnloadedUpdate, SettingsSystem.CurrentSettings.PlayerName, vesselId)); } if (LockQuery.UpdateLockBelongsToPlayer(vesselId, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.Update, SettingsSystem.CurrentSettings.PlayerName, vesselId)); } if (LockQuery.ControlLockBelongsToPlayer(vesselId, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.Control, SettingsSystem.CurrentSettings.PlayerName, vesselId)); } foreach (var kerbal in crewNames) { if (LockQuery.KerbalLockBelongsToPlayer(kerbal, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.Kerbal, SettingsSystem.CurrentSettings.PlayerName, kerbal)); } } }); }
/// <summary> /// Aquire the kerbal lock on the given kerbal /// </summary> public void AcquireKerbalLock(string kerbalName, bool force = false) { if (!LockQuery.KerbalLockBelongsToPlayer(kerbalName, SettingsSystem.CurrentSettings.PlayerName)) { AcquireLock(new LockDefinition(LockType.Kerbal, SettingsSystem.CurrentSettings.PlayerName, kerbalName), force); } }
private void ReleaseAllVesselLocksImpl(IEnumerable <string> crewNames, Guid vesselId) { if (LockQuery.UnloadedUpdateLockBelongsToPlayer(vesselId, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.UnloadedUpdate, SettingsSystem.CurrentSettings.PlayerName, vesselId)); } if (LockQuery.UpdateLockBelongsToPlayer(vesselId, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.Update, SettingsSystem.CurrentSettings.PlayerName, vesselId)); } if (LockQuery.ControlLockBelongsToPlayer(vesselId, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.Control, SettingsSystem.CurrentSettings.PlayerName, vesselId)); } if (crewNames != null) { foreach (var kerbal in crewNames) { if (LockQuery.KerbalLockBelongsToPlayer(kerbal, SettingsSystem.CurrentSettings.PlayerName)) { ReleaseLock(new LockDefinition(LockType.Kerbal, SettingsSystem.CurrentSettings.PlayerName, kerbal)); } } } }
/// <summary> /// Aquire the kerbal lock on the given vessel /// </summary> public void AcquireKerbalLock(Vessel vessel, bool force = false) { foreach (var kerbal in vessel.GetVesselCrew()) { if (!LockQuery.KerbalLockBelongsToPlayer(kerbal.name, SettingsSystem.CurrentSettings.PlayerName)) { AcquireLock(new LockDefinition(LockType.Kerbal, SettingsSystem.CurrentSettings.PlayerName, kerbal.name), force); } } }
/// <summary> /// Acquire the kerbal lock on the given vessel /// </summary> public void AcquireKerbalLock(Vessel vessel, bool force = false, bool immediate = false) { if (vessel == null) { return; } foreach (var kerbal in vessel.GetVesselCrew()) { if (kerbal == null) { continue; } if (!LockQuery.KerbalLockBelongsToPlayer(kerbal.name, SettingsSystem.CurrentSettings.PlayerName)) { AcquireLock(new LockDefinition(LockType.Kerbal, SettingsSystem.CurrentSettings.PlayerName, kerbal.name), force, immediate); } } }