Esempio n. 1
0
        private void DirectSetStateFromCmd(VehicleEntity vehicle, IVehicleCmd cmd)
        {
            var vehicleCmd = (VehicleCmd)cmd;
            var body = vehicleCmd.Body;
            var controller = GetController(vehicle);
            SetRudderAnglesFromCmd(controller, vehicleCmd);
            VehicleDynamicPredictionUtility.SetControllerState(controller, 
                body.Position, body.Rotation, 
                body.LinearVelocity, body.AngularVelocity, 
                controller.IsSleeping, 0);

            //            var state = controller.GetShipState();
            //
            //            state.IsFlagSync = true;
            //
            //            state.Position = vehicleCmd.Body.Position;
            //            state.Rotation = vehicleCmd.Body.Rotation;
            //            state.BodyState.Body2WorldPosition = vehicleCmd.Body.Body2WorldPosition;
            //            state.BodyState.Body2WorldRotation = vehicleCmd.Body.Body2WorldRotation;
            //            state.BodyState.LinearVelocity = vehicleCmd.Body.LinearVelocity;
            //            state.BodyState.AngularVelocity = vehicleCmd.Body.AngularVelocity;
            //
            //            var rudders = state.RudderStates;
            //            for (int i = 0; i < vehicleCmd.SteerableCount; ++i)
            //            {
            //                var rudder = rudders[i];
            //                var shipSteerable = vehicleCmd.Steerables[i].Ship;
            //                rudder.Angle = shipSteerable.Angle;
            //                rudder.Rpm = shipSteerable.Rpm;
            //                rudder.SpinVelocity = shipSteerable.SpinVelocity;
            //                rudder.Submerged = shipSteerable.Submerged;
            //            }
            //
            //            controller.ApplyShipState();
        }
 private void SetControllerState(VehicleAbstractController controller, Vector3 position, Quaternion rotation,
                                 Vector3 linearVelocity, Vector3 angularVelocity, bool crashed, bool isSleeping, int sleepingOutSync)
 {
     controller.IsCrashed = crashed;
     VehicleDynamicPredictionUtility.SetControllerState(controller,
                                                        position, rotation,
                                                        linearVelocity, angularVelocity,
                                                        isSleeping, sleepingOutSync);
 }
        private void DynamicSyncFromComponentToController(VehicleEntity vehicle, VehicleAbstractInternState internalState)
        {
            var controller = GetController(vehicle);
            var state      = VehicleDynamicPredictionUtility.MoveToState(controller, internalState);

            SetWheelAngleFromState(controller, internalState);
            SetWheelEntityInput(controller, internalState);
            SetControllerState(controller,
                               state.Position, state.Rotation,
                               state.LinearVelocity, state.AngularVelocity,
                               state.Crashed, state.IsSleeping, state.SleepingOutSync);
        }
Esempio n. 4
0
        private void DynamicSyncFromComponentToDWP(VehicleEntity vehicle, ShipInternState internalState)
        {
            var controller = GetController(vehicle);
            var state      = VehicleDynamicPredictionUtility.MoveToState(controller, internalState);

            SetRudderAnglesFromState(controller, internalState);
            SetShipInput(controller, internalState);
            VehicleDynamicPredictionUtility.SetControllerState(controller,
                                                               state.Position, state.Rotation,
                                                               state.LinearVelocity, state.AngularVelocity,
                                                               state.IsSleeping, state.SleepingOutSync);
        }
Esempio n. 5
0
        private void DynamicPredictState(VehicleEntity vehicle, IVehicleCmd cmd)
        {
            var vehicleCmd = (VehicleCmd)cmd;
            var controller = GetController(vehicle);

            var state = VehicleDynamicPredictionUtility.MoveToState(controller, vehicleCmd);
            SetRudderAnglesFromCmd(controller, vehicleCmd);
            VehicleDynamicPredictionUtility.SetControllerState(controller, 
                state.Position, state.Rotation, 
                state.LinearVelocity, state.AngularVelocity, 
                state.IsSleeping, state.SleepingOutSync);
        }