Skip to content

Commit 56784bd

Browse files
authored
Add DataRemaining, use it to reduce CursorPacket size (#744)
1 parent 11c2837 commit 56784bd

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

Source/Common/Networking/Packet/CursorPacket.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ public void Bind(PacketBuffer buf)
3535
buf.BindWith(ref x, FloatAsShortBinder);
3636
buf.BindWith(ref z, FloatAsShortBinder);
3737

38-
buf.BindWith(ref dragX, FloatAsShortBinder);
39-
if (dragX != 0)
38+
if (/* reading */ buf.DataRemaining || /* writing */ HasDrag)
39+
{
40+
buf.BindWith(ref dragX, FloatAsShortBinder);
4041
buf.BindWith(ref dragZ, FloatAsShortBinder);
42+
}
4143
}
4244
}
4345

Source/Common/Networking/Packet/IPacket.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ public abstract class PacketBuffer(bool isWriting)
8282
public virtual ByteReader Reader => throw new Exception();
8383
public virtual ByteWriter Writer => throw new Exception();
8484

85+
public abstract bool DataRemaining { get; }
86+
8587
public abstract void Bind(ref byte obj);
8688

8789
public abstract void Bind(ref sbyte obj);
@@ -132,6 +134,7 @@ public abstract void Bind<K, V>(ref Dictionary<K, V> obj, Binder<K> bindKey, Bin
132134
public sealed class PacketReader(ByteReader reader) : PacketBuffer(false)
133135
{
134136
public override ByteReader Reader => reader;
137+
public override bool DataRemaining => reader.Left > 0;
135138

136139
public override void Bind(ref byte obj) => obj = reader.ReadByte();
137140

@@ -223,6 +226,7 @@ public override void Bind<K, V>(ref Dictionary<K, V> obj, Binder<K> bindKey, Bin
223226
public sealed class PacketWriter(ByteWriter writer) : PacketBuffer(true)
224227
{
225228
public override ByteWriter Writer => writer;
229+
public override bool DataRemaining => false;
226230

227231
public override void Bind(ref byte obj) => writer.WriteByte(obj);
228232

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
01-FF
2-
02-00-2A-7B-00-B3-FF-00-00
2+
02-00-2A-7B-00-B3-FF
33
03-02-03-0F-00-19-00-2C-00-37-00

0 commit comments

Comments
 (0)