// Called when a module is mounted on one of the vehicle's module mounts. protected override void OnModuleMounted(Module module) { // Look for target leading weapons TargetLeader targetLeader = module.GetComponent <TargetLeader>(); if (targetLeader != null) { if (!targetLeaders.Contains(targetLeader)) { targetLeaders.Add(targetLeader); onTargetLeaderLoaded.Invoke(targetLeader); } } // Look for locking weapons TargetLocker targetLocker = module.GetComponent <TargetLocker>(); if (targetLocker != null) { if (!targetLockers.Contains(targetLocker)) { targetLockers.Add(targetLocker); onTargetLockerLoaded.Invoke(targetLocker); } } // Look for aim assists AimAssist aimAssist = module.GetComponent <AimAssist>(); if (aimAssist != null) { if (!aimAssists.Contains(aimAssist)) { aimAssist.IndependentUpdate = aimAssistEnabled; aimAssists.Add(aimAssist); } } // Look for gimbaled weapons GimbalController gimbalController = module.GetComponentInChildren <GimbalController>(); if (gimbalController != null) { if (!gimbaledWeapons.Contains(gimbalController)) { gimbaledWeapons.Add(gimbalController); } } }
// Called when a module is unmounted from one of the vehicle's module mounts. protected override void OnModuleUnmounted(Module module) { // Unlink target leading weapons TargetLeader targetLeader = module.GetComponent <TargetLeader>(); if (targetLeader != null) { if (targetLeaders.Contains(targetLeader)) { targetLeaders.Remove(targetLeader); } } // Unlink target locking weapons TargetLocker targetLocker = module.GetComponent <TargetLocker>(); if (targetLocker != null) { if (targetLockers.Contains(targetLocker)) { targetLockers.Remove(targetLocker); } } // Unlink target locking weapons AimAssist aimAssist = module.GetComponent <AimAssist>(); if (aimAssist != null) { if (aimAssists.Contains(aimAssist)) { aimAssists.Remove(aimAssist); } } // Look for gimbaled weapons GimbalController gimbalController = module.GetComponentInChildren <GimbalController>(); if (gimbalController != null) { if (gimbaledWeapons.Contains(gimbalController)) { gimbaledWeapons.Remove(gimbalController); } } }