/*public override void onPartDestroy() * { * this.VPI.scanVessel(); * }*/ public void init() { if (PowSys == null) { PowSys = new LCARS_PowerSystem(); PowSys.SetShip(this.CurrentMotherShip); PT1 = this.PowSys.setPowerTaker("TransporterSystem", "SubSystem", 1250, 2500, 500); } if (planetScanner == null) { planetScanner = new LCARS_PlanetScanner(); LCARS_Utilities.SetLoadDistance(100000, 100000); } /* */ if (TransporterSound == null) { TransporterSound = new FXGroup("TransporterSound"); GameObject audioObj = new GameObject(); audioObj.transform.position = FlightGlobals.ActiveVessel.transform.position; audioObj.transform.parent = FlightGlobals.ActiveVessel.transform; // add to parent TransporterSound.audio = audioObj.AddComponent <AudioSource>(); TransporterSound.audio.dopplerLevel = 0f; TransporterSound.audio.Stop(); TransporterSound.audio.clip = GameDatabase.Instance.GetAudioClip(TransporterSoundFile); TransporterSound.audio.loop = false; TransporterSound.audio.Play(); TransporterSound.audio.enabled = false; TransporterSound.audio.time = 0; } }
// ////////////////////////////////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////////////////////////////////// internal void transportKerbal_ShipToGround(ProtoCrewMember kerbalToMove) { if (kerbalToMove != null) { //UnityEngine.Debug.Log("ImpulseDrive Transporter ShipToGround Button begin " + kerbalToMove.name); //Kerbal kerbal = new Kerbal(); Guid MotherShipGuid = this.CurrentMotherShip.id; foreach (Part p in this.CurrentMotherShip.parts) { if (p.protoModuleCrew.Count == 0) { //UnityEngine.Debug.Log("nobody inside"); continue; } kerbal = null; foreach (ProtoCrewMember availableKerbal in p.protoModuleCrew) { if (kerbalToMove.name == availableKerbal.name) { kerbal = availableKerbal; } } if (kerbal == null) //Probably not necessary { continue; } //this.CurrentMotherShip.save(); //this.CurrentMotherShip.GoOffRails(); LCARS_Utilities.SetLoadDistance(fixed_height * 2, fixed_height * 2); TransportMode = null; FlightEVA.fetch.spawnEVA(kerbal, p, p.airlock); for (int i = FlightGlobals.Vessels.Count - 1; i >= 0; i--) { if (kerbal.name == FlightGlobals.Vessels[i].vesselName) { //UnityEngine.Debug.Log("adding force"); Vessel v = FlightGlobals.Vessels[i]; //FlightGlobals.Vessels[i].distancePackThreshold = fixed_height * 2; //StarTrekTricorder f = new StarTrekTricorder(); //FlightGlobals.Vessels[i].rootPart.AddModule("LCARS_Tricorder"); if (!FlightGlobals.Vessels[i].rootPart.Modules.Contains("LCARS_Tricorder")) { v.rootPart.AddModule("LCARS_Tricorder"); } //FlightGlobals.Vessels[i].rootPart.Rigidbody.AddForce(FlightGlobals.Vessels[i].rootPart.transform.up * ejectionForce); FlightGlobals.Vessels[i].transform.position = transporter_target.transform.position; continue; } } for (int i = FlightGlobals.Vessels.Count - 1; i >= 0; i--) { if (MotherShipGuid == FlightGlobals.Vessels[i].id) { FlightGlobals.Vessels[i].MakeActive(); return; } } } //Part.RemoveCrewmember(ProtoCrewMember) /* * ProtoCrewMember protoCrewMember = new ProtoCrewMember(); * UnityEngine.Debug.Log("ImpulseDrive Transporter EVA Button 1 "); * * Kerbal kerbal = new Kerbal(); * UnityEngine.Debug.Log("ImpulseDrive Transporter EVA Button 2 "); * * kerbal = protoCrewMember.Spawn(); * UnityEngine.Debug.Log("ImpulseDrive Transporter EVA Button 3 "); * * FlightEVA.SpawnEVA(kerbal); * UnityEngine.Debug.Log("ImpulseDrive Transporter EVA Button 4 "); */ /* * KerbalEVA.GetEjectPoint(UnityEngine.Vector3, float, float, float) * KerbalEVA.BoardPart(Part) * KerbalEVA.BoardSeat(KerbalSeat) */ //UnityEngine.Debug.Log("ImpulseDrive Transporter ShipToGround Button end:"); } float power = PT1.L2_usage; this.PowSys.draw(PT1.takerName, power); }