コード例 #1
0
ファイル: ModuleWWC.cs プロジェクト: Gedas-S/WWC
        private ModuleTurret turretCheck()
        {
            ModuleTurret turret = null;

            turret = part.FindModuleImplementing <ModuleTurret>();

            return(turret);
        }
コード例 #2
0
ファイル: ModuleWWC.cs プロジェクト: Gedas-S/WWC
 public override void OnStart(StartState state)
 {
     if (HighLogic.LoadedSceneIsFlight)
     {
         weapon = weaponCheck();
         turret = turretCheck();
     }
     base.OnStart(state);
 }
コード例 #3
0
 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}");
         }
     }
 }
コード例 #4
0
ファイル: ModuleRadar.cs プロジェクト: XOC2008/BDArmory
        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!");
            }
        }