public void Start()
        {
            iv = gameObject.GetComponent <InteractableVehicle>();

            backup_Engine      = iv.asset.engine;
            backup_LockedMouse = iv.asset.hasLockMouse;
            backup_Sleds       = iv.asset.hasSleds;
            backup_Traction    = iv.asset.hasTraction;
            backup_Lift        = iv.asset.lift;
            backup_Breaks      = iv.asset.brake;
            backup_SteerMin    = iv.asset.steerMin;
            backup_SteerMax    = iv.asset.steerMax;
        }
示例#2
0
        public void SetFly(InteractableVehicle pass)
        {
            if (LastVehicHandle == null)
            {
                LastVehicHandle = pass;
                LastVehicEngine = pass.asset.engine;
            }

            //This could use work
            Engine.SetValue(pass.asset, EEngine.PLANE);
            hasLockMouse.SetValue(pass.asset, true);
            airsteerMin.SetValue(pass.asset, 1);
            airsteerMax.SetValue(pass.asset, 1);
            airturnResponsiveness.SetValue(pass.asset, 100);
            Lift.SetValue(pass.asset, Global.VehicleSettings.VehicLift);
        }
示例#3
0
 public void Update()
 {
     car = tool_ToolZ.getLocalPlayer().movement.getVehicle();
     if (car == null)
     {
         fly      = false;
         car_load = false;
     }
     else
     {
         if (!car_load)
         {
             startEngine = car.asset.engine;
             car_load    = true;
         }
         if (Input.GetKeyDown(ControlsSettings.interact))
         {
             VehicleManager.exitVehicle();
         }
     }
 }
示例#4
0
 public void AddEngine(EEngine engine)
 {
     this.parts.Add(engine);
 }
示例#5
0
 public void BuildEngine(EEngine engine)
 {
     this.product.AddEngine(engine);
 }
示例#6
0
        private void setEngine(EEngine engine)
        {
            VehicleAsset asset = car.asset;

            asset.GetType().GetField("_engine", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(asset, engine);
        }
示例#7
0
        //Called every tick
        public void Update()
        {
            if (!Global.VehicleEnabled || Global.AllOff)
            {
                return;
            }

            if (!Provider.isConnected)
            {
                return;
            }

            if (Provider.clients.Count < 1)
            {
                return;
            }

            if (Player.player == null)
            {
                return;
            }

            //Player is in vehicle
            if (Player.player.movement?.getVehicle() != null)
            {
                InteractableVehicle x = Player.player.movement.getVehicle();

                if (Global.VehicleSettings.Fly || Global.VehicleSettings.Ping)
                {
                    if (LastVehicHandle == null)
                    {
                        LastVehicHandle = x;
                        LastVehicEngine = x.asset.engine;
                    }
                }

                if (Global.VehicleSettings.Fly)
                {
                    SetFly(x);
                }

                if (Global.VehicleSettings.Ping)
                {
                    Vector3 dir = Vector3.zero;
                    if (Input.GetKey(KeyCode.UpArrow))
                    {
                        dir = MainCamera.instance.transform.forward * Global.VehicleSettings.PingForce;
                    }
                    if (Input.GetKey(KeyCode.DownArrow))
                    {
                        dir = (MainCamera.instance.transform.forward * -1) * Global.VehicleSettings.PingForce;
                    }
                    if (Input.GetKey(KeyCode.KeypadMinus))
                    {
                        dir.y += Global.VehicleSettings.PingForce;
                    }
                    if (Input.GetKey(KeyCode.KeypadPlus))
                    {
                        dir.y -= Global.VehicleSettings.PingForce;
                    }

                    if (!Global.VehicleSettings.BypassOne)
                    {
                        x.tellRecov(dir + x.transform.position, 1);
                    }
                    else
                    {
                        x.GetComponent <Rigidbody>().useGravity = false;
                        x.GetComponent <Rigidbody>().velocity   = dir;
                        x.GetComponent <Rigidbody>().rotation   = Quaternion.identity;
                    }

                    foreach (Collider p in x.gameObject.GetComponentsInChildren <Collider>())
                    {
                        if (p.enabled)
                        {
                            Colliders.Add(p);
                            p.enabled = false;
                        }
                    }
                }
            }
            else if (LastVehicHandle != null)
            {
                Engine.SetValue(LastVehicHandle.asset, LastVehicEngine);
                Lift.SetValue(LastVehicHandle.asset, 0f);
                hasLockMouse.SetValue(LastVehicHandle.asset, false);
                foreach (Collider p in Colliders)
                {
                    if (p != null)
                    {
                        p.enabled = true;
                    }
                }
                Colliders.Clear();
                LastVehicHandle = null;
            }
        }
示例#8
0
 public static void ChangeEngine(InteractableVehicle car, EEngine engine)
 {
     car.asset.GetType().GetField("_engine", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).SetValue(car.asset, engine);
 }