public override void OnStart(PartModule.StartState state) { if (HighLogic.LoadedSceneIsFlight) { part.force_activate(); aimerTexture = BDArmorySettings.Instance.greenPointCircleTexture; // GameDatabase.Instance.GetTexture("BDArmory/Textures/grayCircle", false); sfAudioSource = gameObject.AddComponent <AudioSource>(); sfAudioSource.minDistance = 1; sfAudioSource.maxDistance = 2000; sfAudioSource.dopplerLevel = 0; sfAudioSource.priority = 230; sfAudioSource.spatialBlend = 1; MakeRocketArray(); UpdateRocketScales(); if (shortName == string.Empty) { shortName = part.partInfo.title; } UpdateAudio(); BDArmorySettings.OnVolumeChange += UpdateAudio; } if (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneIsEditor) { foreach (var turr in part.FindModulesImplementing <ModuleTurret>()) { if (turr.turretID == turretID) { turret = turr; targetInTurretView = false; break; } } if (turret) { Events["GuiFire"].guiActive = false; Events["Jettison"].guiActive = false; Actions["AGFire"].active = false; if (HighLogic.LoadedSceneIsFlight) { Events["ToggleTurret"].guiActive = true; } } if (!string.IsNullOrEmpty(deployAnimationName)) { deployAnimState = Misc.SetUpSingleAnimation(deployAnimationName, part); hasDeployAnimation = true; readyToFire = false; } } }
public override void OnStart(PartModule.StartState state) { // extension for feature_engagementenvelope InitializeEngagementRange(0, maxTargetingRange); if (HighLogic.LoadedSceneIsFlight) { part.force_activate(); aimerTexture = BDArmorySettings.Instance.greenPointCircleTexture; // GameDatabase.Instance.GetTexture("BDArmory/Textures/grayCircle", false); MakeRocketArray(); UpdateRocketScales(); if (shortName == string.Empty) { shortName = part.partInfo.title; } UpdateAudio(); BDArmorySettings.OnVolumeChange += UpdateAudio; } if (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneIsEditor) { foreach (var turr in part.FindModulesImplementing <ModuleTurret>()) { if (turr.turretID == turretID) { turret = turr; targetInTurretView = false; break; } } if (turret) { Events["GuiFire"].guiActive = false; Events["Jettison"].guiActive = false; Actions["AGFire"].active = false; if (HighLogic.LoadedSceneIsFlight) { Events["ToggleTurret"].guiActive = true; } } if (!string.IsNullOrEmpty(deployAnimationName)) { deployAnimState = Misc.SetUpSingleAnimation(deployAnimationName, part); hasDeployAnimation = true; readyToFire = false; } } SetupAudio(); }
public override void OnStart(StartState state) { base.OnStart(state); part.force_activate(); //setup anim if (!string.IsNullOrEmpty(deployAnimationName)) { hasDeployAnimation = true; deployAnimState = Misc.SetUpSingleAnimation(deployAnimationName, part); if (state == StartState.Editor) { Events["EditorToggleAnimation"].guiActiveEditor = true; } } if (HighLogic.LoadedSceneIsFlight) { foreach (var tur in part.FindModulesImplementing <ModuleTurret>()) { if (tur.turretID == turretID) { turret = tur; break; } } attachedRadar = part.FindModuleImplementing <ModuleRadar>(); if (attachedRadar) { hasAttachedRadar = true; } finalTransform = part.FindModelTransform(finalTransformName); UpdateMissileChildren(); if (!autoReturn) { Events["ReturnTurret"].guiActive = true; } } }
public override void OnStart (StartState state) { base.OnStart (state); ParseWeaponType(); ParseBulletDragType(); bulletBallisticCoefficient = bulletMass / bulletDragArea * 1000; //1000 to convert from tonnes to kilograms if(shortName == string.Empty) { shortName = part.partInfo.title; } foreach(var emitter in part.FindModelComponents<KSPParticleEmitter>()) { emitter.emit = false; } if(airDetonation) { var detRange = (UI_FloatRange)Fields["defaultDetonationRange"].uiControlEditor; detRange.maxValue = maxAirDetonationRange; } else { Fields["defaultDetonationRange"].guiActive = false; Fields["defaultDetonationRange"].guiActiveEditor = false; } if(HighLogic.LoadedSceneIsFlight) { if(eWeaponType != WeaponTypes.Laser) { if(bulletPool == null) { SetupBulletPool(); } if(shellPool == null) { SetupShellPool(); } } //setup transforms fireTransforms = part.FindModelTransforms(fireTransformName); shellEjectTransforms = part.FindModelTransforms(shellEjectTransformName); //setup emitters foreach(var pe in part.FindModelComponents<KSPParticleEmitter>()) { pe.maxSize *= part.rescaleFactor; pe.minSize *= part.rescaleFactor; pe.shape3D *= part.rescaleFactor; pe.shape2D *= part.rescaleFactor; pe.shape1D *= part.rescaleFactor; if(pe.useWorldSpace && !oneShotWorldParticles) { BDAGaplessParticleEmitter gpe = pe.gameObject.AddComponent<BDAGaplessParticleEmitter>(); gpe.part = part; gaplessEmitters.Add(gpe); } } //setup projectile colors projectileColorC = Misc.ParseColor255(projectileColor); startColorC = Misc.ParseColor255(startColor); //init and zero points targetPosition = Vector3.zero; pointingAtPosition = Vector3.zero; bulletPrediction = Vector3.zero; //setup audio SetupAudio(); //laser setup if(eWeaponType == WeaponTypes.Laser) { SetupLaserSpecifics(); } } else if(HighLogic.LoadedSceneIsEditor) { fireTransforms = part.FindModelTransforms(fireTransformName); } //turret setup foreach(var turr in part.FindModulesImplementing<ModuleTurret>()) { if(turr.turretID == turretID) { turret = turr; break; } } if(!turret) { Fields["onlyFireInRange"].guiActive = false; Fields["onlyFireInRange"].guiActiveEditor = false; } //setup animations if(hasDeployAnim) { deployState = Misc.SetUpSingleAnimation(deployAnimName, this.part); deployState.normalizedTime = 0; deployState.speed = 0; deployState.enabled = true; } if(hasFireAnimation) { fireState = Misc.SetUpSingleAnimation (fireAnimName, this.part); fireState.enabled = false; } BDArmorySettings.OnVolumeChange += UpdateVolume; }