private ModuleTurret turretCheck() { ModuleTurret turret = null; turret = part.FindModuleImplementing <ModuleTurret>(); return(turret); }
public override void OnStart(StartState state) { if (HighLogic.LoadedSceneIsFlight) { weapon = weaponCheck(); turret = turretCheck(); } base.OnStart(state); }
private void Awake() { lastMessage = new Message_TurretUpdate(new Vector3D(), networkUID, turretID); if (turret == null) { turret = base.GetComponentInChildren <ModuleTurret>(); if (turret == null) { Debug.LogError($"Turret was null on ID {networkUID}"); } } }
public override void OnStart(StartState state) { base.OnStart(state); if (HighLogic.LoadedSceneIsFlight) { myVesselID = vessel.id.ToString(); RadarUtils.SetupResources(); if (string.IsNullOrEmpty(radarName)) { radarName = part.partInfo.title; } linkedToVessels = new List <VesselRadarData>(); signalPersistTime = omnidirectional ? 360 / (scanRotationSpeed + 5) : directionalFieldOfView / (scanRotationSpeed + 5); rwrType = (RadarWarningReceiver.RWRThreatTypes)rwrThreatType; if (rwrType == RadarWarningReceiver.RWRThreatTypes.Sonar) { signalPersistTimeForRwr = RadarUtils.ACTIVE_MISSILE_PING_PERISTS_TIME; } else { signalPersistTimeForRwr = signalPersistTime / 2; } if (rotationTransformName != string.Empty) { rotationTransform = part.FindModelTransform(rotationTransformName); } attemptedLocks = new TargetSignatureData[3]; TargetSignatureData.ResetTSDArray(ref attemptedLocks); lockedTargets = new List <TargetSignatureData>(); referenceTransform = (new GameObject()).transform; referenceTransform.parent = transform; referenceTransform.localPosition = Vector3.zero; List <ModuleTurret> .Enumerator turr = part.FindModulesImplementing <ModuleTurret>().GetEnumerator(); while (turr.MoveNext()) { if (turr.Current == null) { continue; } if (turr.Current.turretID != turretID) { continue; } lockingTurret = turr.Current; break; } turr.Dispose(); List <MissileFire> .Enumerator wm = vessel.FindPartModulesImplementing <MissileFire>().GetEnumerator(); while (wm.MoveNext()) { if (wm.Current == null) { continue; } wm.Current.radars.Add(this); } wm.Dispose(); //GameEvents.onVesselGoOnRails.Add(OnGoOnRails); //not needed EnsureVesselRadarData(); StartCoroutine(StartUpRoutine()); } else if (HighLogic.LoadedSceneIsEditor) { //Editor only: List <ModuleTurret> .Enumerator tur = part.FindModulesImplementing <ModuleTurret>().GetEnumerator(); while (tur.MoveNext()) { if (tur.Current == null) { continue; } if (tur.Current.turretID != turretID) { continue; } lockingTurret = tur.Current; break; } tur.Dispose(); if (lockingTurret) { lockingTurret.Fields["minPitch"].guiActiveEditor = false; lockingTurret.Fields["maxPitch"].guiActiveEditor = false; lockingTurret.Fields["yawRange"].guiActiveEditor = false; } } // check for not updated legacy part: if ((canScan && (radarMinDistanceDetect == float.MaxValue)) || (canLock && (radarMinDistanceLockTrack == float.MaxValue))) { Debug.Log("[BDArmory]: WARNING: " + part.name + " has legacy definition, missing new radarDetectionCurve and radarLockTrackCurve definitions! Please update for the part to be usable!"); } }