Steering Angle sync

This commit is contained in:
EntenKoeniq
2021-07-10 22:01:36 +02:00
parent 00a372c280
commit 7b8af52ae1
5 changed files with 14 additions and 0 deletions

View File

@ -49,6 +49,7 @@ namespace CoopClient
public Vector3 VehiclePosition { get; set; }
public Quaternion VehicleRotation { get; set; }
public float VehicleSpeed { get; set; }
public float VehicleSteeringAngle { get; set; }
#endregion
public void DisplayLocally(string username)
@ -243,6 +244,8 @@ namespace CoopClient
Character.IsVisible = true;
}
MainVehicle.SteeringAngle = VehicleSteeringAngle;
float range = MainVehicle.Position.DistanceTo(VehiclePosition);
// Good enough for now, but we need to create a better sync

View File

@ -299,6 +299,7 @@ namespace CoopClient
DebugSyncPed.VehiclePosition = veh.Position;
DebugSyncPed.VehicleRotation = veh.Quaternion;
DebugSyncPed.VehicleSpeed = veh.Speed;
DebugSyncPed.VehicleSteeringAngle = veh.SteeringAngle;
}
DebugSyncPed.IsInVehicle = (flags.Value & (byte)PedDataFlags.IsInVehicle) > 0;

View File

@ -393,6 +393,7 @@ namespace CoopClient
npc.VehiclePosition = packet.VehPosition.ToVector();
npc.VehicleRotation = packet.VehRotation.ToQuaternion();
npc.VehicleSpeed = packet.VehSpeed;
npc.VehicleSteeringAngle = packet.VehSteeringAngle;
npc.LastSyncWasFull = (packet.Flag.Value & (byte)PedDataFlags.LastSyncWasFull) > 0;
npc.IsInVehicle = (packet.Flag.Value & (byte)PedDataFlags.IsInVehicle) > 0;
}
@ -410,6 +411,7 @@ namespace CoopClient
VehiclePosition = packet.VehPosition.ToVector(),
VehicleRotation = packet.VehRotation.ToQuaternion(),
VehicleSpeed = packet.VehSpeed,
VehicleSteeringAngle = packet.VehSteeringAngle,
LastSyncWasFull = (packet.Flag.Value & (byte)PedDataFlags.LastSyncWasFull) > 0,
IsInVehicle = (packet.Flag.Value & (byte)PedDataFlags.IsInVehicle) > 0
});

View File

@ -461,6 +461,9 @@ namespace CoopClient
public float VehSpeed { get; set; }
[ProtoMember(11)]
public float VehSteeringAngle { get; set; }
[ProtoMember(12)]
public byte? Flag { get; set; } = 0;
public override void PacketToNetOutGoingMessage(NetOutgoingMessage message)
@ -489,6 +492,7 @@ namespace CoopClient
VehPosition = data.VehPosition;
VehRotation = data.VehRotation;
VehSpeed = data.VehSpeed;
VehSteeringAngle = data.VehSteeringAngle;
Flag = data.Flag;
}
}

View File

@ -424,6 +424,9 @@ namespace CoopServer
public float VehSpeed { get; set; }
[ProtoMember(11)]
public float VehSteeringAngle { get; set; }
[ProtoMember(12)]
public byte? Flag { get; set; } = 0;
public override void PacketToNetOutGoingMessage(NetOutgoingMessage message)
@ -452,6 +455,7 @@ namespace CoopServer
VehPosition = data.VehPosition;
VehRotation = data.VehRotation;
VehSpeed = data.VehSpeed;
VehSteeringAngle = data.VehSteeringAngle;
Flag = data.Flag;
}
}