private void GetStateFromDynamicData(VehicleEntity vehicle, ShipInternState state) { var data = (ShipDynamicDataComponent)vehicle.GetDynamicData(); state.Flag = data.Flag; state.IsAccelerated = data.IsAccelerated; state.SteerInput = data.SteerInput; state.ThrottleInput = data.ThrottleInput; state.Position = data.Position.ShiftedVector3(); state.Rotation = data.Rotation; state.IsSleeping = data.IsSleeping; state.LinearVelocity = data.LinearVelocity; state.AngularVelocity = data.AngularVelocity; var indexArray = VehicleIndexHelper.GetRudderIndexArray(); for (int i = 0; i < indexArray.Length; ++i) { var index = indexArray[i]; if (ShipEntityUtility.HasRudder(vehicle, index)) { state.RudderStates[i] = GetRudderState(ShipEntityUtility.GetRudder(vehicle, index)); } } data.Clear(); }
private void SetShipRudderState(VehicleEntity vehicle, VehiclePartIndex index, RudderState state) { var rudder = ShipEntityUtility.GetRudder(vehicle, index); rudder.Angle = state.Angle; }