Exemplo n.º 1
0
        /*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;
            }
        }
Exemplo n.º 2
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);
        }