quakeball/Assets/Scripts/Networking/Packets/PlayerUpdatePckt.cs

71 lines
2.0 KiB
C#

using UnityEngine;
using NeonTea.Quakeball.TeaNet.Packets;
namespace NeonTea.Quakeball.Networking.Packets {
public class PlayerUpdatePckt : Packet {
public ulong PlayerId;
public Vector3 MoveDirection;
public byte MoveStyle;
public float Pitch;
public float Yaw;
public PlayerUpdatePckt() { }
public PlayerUpdatePckt(Vector3 moveDirection, byte moveStyle, float pitch, float yaw, ulong id = 0) {
MoveDirection = moveDirection;
MoveStyle = moveStyle;
Pitch = pitch;
Yaw = yaw;
PlayerId = id;
}
public override void Read(ByteBuffer buffer) {
PlayerId = buffer.ReadULong();
MoveDirection = buffer.ReadVector3();
MoveStyle = buffer.Read();
Pitch = buffer.ReadFloat();
Yaw = buffer.ReadFloat();
}
public override void Write(ByteBuffer buffer) {
buffer.Write(PlayerId);
buffer.Write(MoveDirection);
buffer.Write(MoveStyle);
buffer.Write(Pitch);
buffer.Write(Yaw);
}
}
public class PlayerSyncPacket : Packet {
public ulong PlayerId;
public bool Unsynced;
public Vector3 Location;
public Vector3 GroundVelocity;
public PlayerSyncPacket() { }
public PlayerSyncPacket(ulong id, bool unsynced, Vector3 location, Vector3 groundVelocity) {
PlayerId = id;
Unsynced = unsynced;
Location = location;
GroundVelocity = groundVelocity;
}
public override void Read(ByteBuffer buffer) {
PlayerId = buffer.ReadULong();
Unsynced = buffer.ReadBool();
Location = buffer.ReadVector3();
GroundVelocity = buffer.ReadVector3();
}
public override void Write(ByteBuffer buffer) {
buffer.Write(PlayerId);
buffer.Write(Unsynced);
buffer.Write(Location);
buffer.Write(GroundVelocity);
}
}
}