public void PlaneUpdate(Packet packet)
    {
        lastMessage = (Message_PlaneUpdate)((PacketSingle)packet).message;
        if (lastMessage.networkUID != networkUID)
        {
            return;
        }
        if (lastMessage.landingGear)
        {
            aiPilot.gearAnimator.Extend();
        }
        else
        {
            aiPilot.gearAnimator.Retract();
        }

        for (int i = 0; i < autoPilot.outputs.Length; i++)
        {
            autoPilot.outputs[i].SetPitchYawRoll(new Vector3(lastMessage.pitch, lastMessage.yaw, lastMessage.roll));
            autoPilot.outputs[i].SetBrakes(lastMessage.breaks);
            autoPilot.outputs[i].SetFlaps(lastMessage.flaps);
            autoPilot.outputs[i].SetWheelSteer(lastMessage.yaw);
        }
        for (int i = 0; i < autoPilot.engines.Count; i++)
        {
            autoPilot.engines[i].SetThrottle(lastMessage.throttle);
        }
    }
Exemple #2
0
    private void Awake()
    {
        lastMessage              = new Message_PlaneUpdate(false, 0, 0, 0, 0, 0, 0, false, false, networkUID);
        lastFiringMessage        = new Message_WeaponFiring(-1, networkUID);
        lastStoppedFiringMessage = new Message_WeaponStoppedFiring(networkUID);


        wheelsController = GetComponent <WheelsController>();
        aeroController   = GetComponent <AeroController>();
        vRThrottle       = gameObject.GetComponentInChildren <VRThrottle>();
        if (vRThrottle == null)
        {
            Debug.Log("Cound't find throttle");
        }
        else
        {
            vRThrottle.OnSetThrottle.AddListener(SetThrottle);
        }

        weaponManager = GetComponent <WeaponManager>();
        if (weaponManager == null)
        {
            Debug.LogError("Weapon Manager was null on our vehicle");
        }
        cmManager = GetComponentInChildren <CountermeasureManager>();
        if (cmManager == null)
        {
            Debug.LogError("CountermeasureManager was null on our vehicle");
        }
        fuelTank = GetComponent <FuelTank>();
        if (fuelTank == null)
        {
            Debug.LogError("FuelTank was null on our vehicle");
        }

        Networker.WeaponSet += WeaponSet;

        traverse = Traverse.Create(weaponManager);
        Debug.Log("Done Plane Sender");
    }
Exemple #3
0
    private void Awake()
    {
        actor             = gameObject.GetComponent <Actor>();
        lastFiringMessage = new Message_WeaponFiring(-1, false, false, networkUID);
        // lastStoppedFiringMessage = new Message_WeaponStoppedFiring(networkUID);
        lastCountermeasureMessage = new Message_FireCountermeasure(true, true, networkUID);
        lastDeathMessage          = new Message_Death(networkUID, false);
        wheelsController          = GetComponent <WheelsController>();
        aeroController            = GetComponent <AeroController>();
        isPlayer       = actor.isPlayer;
        sequenceNumber = 0;
        lastMessage    = new Message_PlaneUpdate(false, 0, 0, 0, 0, 0, 0, false, false, false, networkUID, sequenceNumber);

        engine = gameObject.GetComponentInChildren <ModuleEngine>();
        if (engine == null)
        {
            Debug.Log("engine was null on vehicle " + gameObject.name);
        }

        weaponManager = GetComponent <WeaponManager>();
        if (weaponManager == null)
        {
            Debug.LogError("Weapon Manager was null on vehicle " + gameObject.name);
        }
        else
        {
            traverse             = Traverse.Create(weaponManager);
            Networker.WeaponSet += WeaponSet;
            //weaponManager.OnWeaponEquipped += Rearm;
            //weaponManager.OnWeaponUnequippedHPIdx +=Rearm;

            //detect player rearm
            PlayerVehicleSetup pv = gameObject.GetComponent <PlayerVehicleSetup>();
            if (pv != null)
            {
                pv.OnEndRearming.AddListener(Rearm);
            }

            if (actor.isPlayer && weaponManager.GetIWBForEquip(3) != null)
            {
                iwb = weaponManager.GetIWBForEquip(3);
            }
        }

        cmManager = GetComponentInChildren <CountermeasureManager>();
        if (cmManager == null)
        {
            Debug.LogError("CountermeasureManager was null on vehicle " + gameObject.name);
        }
        else
        {
            cmManager.OnFiredCM += FireCountermeasure;
        }

        fuelTank = GetComponent <FuelTank>();
        if (fuelTank == null)
        {
            Debug.LogError("FuelTank was null on vehicle " + gameObject.name);
        }


        Debug.Log("Done Plane Sender");
        tailhook   = GetComponentInChildren <Tailhook>();
        launchBar  = GetComponentInChildren <CatapultHook>();
        refuelPort = GetComponentInChildren <RefuelPort>();
    }
    public void PlaneUpdate(Packet packet)
    {
        Message_PlaneUpdate newMessage = (Message_PlaneUpdate)((PacketSingle)packet).message;

        if (newMessage.networkUID != networkUID)
        {
            return;
        }
        // If already received this message or a newer one, don't need to update
        if (newMessage.sequenceNumber <= mostCurrentUpdateNumber)
        {
            return;
        }

        mostCurrentUpdateNumber = newMessage.sequenceNumber;

        if (!firstMessageReceived)
        {
            firstMessageReceived = true;
            SetLandingGear(newMessage.landingGear);
            SetTailHook(newMessage.tailHook);
            SetLaunchBar(newMessage.launchBar);
            SetFuelPort(newMessage.fuelPort);
            SetOrientation(newMessage.pitch, newMessage.yaw, newMessage.roll);
            SetFlaps(newMessage.flaps);
            SetBrakes(newMessage.brakes);
            SetThrottle(newMessage.throttle);
        }
        else
        {
            if (lastMessage.landingGear != newMessage.landingGear)
            {
                SetLandingGear(newMessage.landingGear);
            }
            if (lastMessage.tailHook != newMessage.tailHook)
            {
                SetTailHook(newMessage.tailHook);
            }
            if (lastMessage.launchBar != newMessage.launchBar)
            {
                SetLaunchBar(newMessage.launchBar);
            }
            if (lastMessage.fuelPort != newMessage.fuelPort)
            {
                SetFuelPort(newMessage.fuelPort);
            }
            if (lastMessage.pitch != newMessage.pitch || lastMessage.yaw != newMessage.yaw || lastMessage.roll != newMessage.roll)
            {
                SetOrientation(newMessage.pitch, newMessage.yaw, newMessage.roll);
            }
            if (lastMessage.flaps != newMessage.flaps)
            {
                SetFlaps(newMessage.flaps);
            }
            if (lastMessage.brakes != newMessage.brakes)
            {
                SetBrakes(newMessage.brakes);
            }
            if (lastMessage.throttle != newMessage.throttle)
            {
                SetThrottle(newMessage.throttle);
            }
        }
        lastMessage = newMessage;

        if (ownerActor != null)
        {
            ownerActor.flightInfo.PauseGCalculations();
            ownerActor.flightInfo.OverrideRecordedAcceleration(Vector3.zero);
        }
    }