feat: Paddle Transform Over Network

This commit is contained in:
Syntriax 2024-07-29 23:18:48 +03:00
parent 7f169fc788
commit 05dfb92bab
1 changed files with 8 additions and 4 deletions

View File

@ -60,16 +60,17 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp
inputs.UnregisterOnRelease(Down, OnDownReleased); inputs.UnregisterOnRelease(Down, OnDownReleased);
} }
private void OnUpPressed(IButtonInputs<Keys> inputs, Keys keys) { isUpPressed = true; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed }); } private void OnUpPressed(IButtonInputs<Keys> inputs, Keys keys) { isUpPressed = true; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed, PositionY = Transform.Position.Y }); }
private void OnUpReleased(IButtonInputs<Keys> inputs, Keys keys) { isUpPressed = false; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed }); } private void OnUpReleased(IButtonInputs<Keys> inputs, Keys keys) { isUpPressed = false; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed, PositionY = Transform.Position.Y }); }
private void OnDownPressed(IButtonInputs<Keys> inputs, Keys keys) { isDownPressed = true; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed }); } private void OnDownPressed(IButtonInputs<Keys> inputs, Keys keys) { isDownPressed = true; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed, PositionY = Transform.Position.Y }); }
private void OnDownReleased(IButtonInputs<Keys> inputs, Keys keys) { isDownPressed = false; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed }); } private void OnDownReleased(IButtonInputs<Keys> inputs, Keys keys) { isDownPressed = false; SendData(new PaddleInputs() { IsUpPressed = isUpPressed, IsDownPressed = isDownPressed, PositionY = Transform.Position.Y }); }
public override void ReceiveData<T>(T data) public override void ReceiveData<T>(T data)
{ {
if (data is not PaddleInputs paddleInputs) if (data is not PaddleInputs paddleInputs)
return; return;
Transform.Position = new(Transform.Position.X, paddleInputs.PositionY);
isUpPressed = paddleInputs.IsUpPressed; isUpPressed = paddleInputs.IsUpPressed;
isDownPressed = paddleInputs.IsDownPressed; isDownPressed = paddleInputs.IsDownPressed;
} }
@ -77,17 +78,20 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp
[System.Serializable] [System.Serializable]
public struct PaddleInputs : INetworkPacket public struct PaddleInputs : INetworkPacket
{ {
public float PositionY { get; set; }
public bool IsUpPressed { get; set; } public bool IsUpPressed { get; set; }
public bool IsDownPressed { get; set; } public bool IsDownPressed { get; set; }
public void Deserialize(NetDataReader reader) public void Deserialize(NetDataReader reader)
{ {
PositionY = reader.GetFloat();
IsUpPressed = reader.GetBool(); IsUpPressed = reader.GetBool();
IsDownPressed = reader.GetBool(); IsDownPressed = reader.GetBool();
} }
public void Serialize(NetDataWriter writer) public void Serialize(NetDataWriter writer)
{ {
writer.Put(PositionY);
writer.Put(IsUpPressed); writer.Put(IsUpPressed);
writer.Put(IsDownPressed); writer.Put(IsDownPressed);
} }