mirror of
https://github.com/Dadechin/Unity-WebSocket.git
synced 2025-07-04 04:14:34 +00:00
470 lines
11 KiB
C#
470 lines
11 KiB
C#
#if UNITYMATHEMATICS
|
|
|
|
using Unity.Mathematics;
|
|
|
|
namespace FishNet.Serializing {
|
|
|
|
public partial class Writer {
|
|
|
|
public void Writebool2(bool2 value) {
|
|
|
|
byte b = 0;
|
|
|
|
if (value.x)
|
|
b |= 1;
|
|
if (value.y)
|
|
b |= 2;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool3(bool3 value) {
|
|
|
|
byte b = 0;
|
|
|
|
if (value.x)
|
|
b |= 1;
|
|
if (value.y)
|
|
b |= 2;
|
|
if (value.z)
|
|
b |= 4;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool4(bool4 value) {
|
|
byte b = 0;
|
|
|
|
if (value.x)
|
|
b |= 1;
|
|
if (value.y)
|
|
b |= 2;
|
|
if (value.z)
|
|
b |= 4;
|
|
if (value.w)
|
|
b |= 8;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool2x2(bool2x2 value) {
|
|
|
|
byte b = 0;
|
|
|
|
if (value.c0.x)
|
|
b |= 1;
|
|
if (value.c0.y)
|
|
b |= 2;
|
|
if (value.c1.x)
|
|
b |= 4;
|
|
if (value.c1.y)
|
|
b |= 8;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool2x3(bool2x3 value) {
|
|
byte b = 0;
|
|
|
|
if (value.c0.x)
|
|
b |= 1;
|
|
if (value.c0.y)
|
|
b |= 2;
|
|
if (value.c1.x)
|
|
b |= 4;
|
|
if (value.c1.y)
|
|
b |= 8;
|
|
if (value.c2.x)
|
|
b |= 16;
|
|
if (value.c2.y)
|
|
b |= 32;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool2x4(bool2x4 value) {
|
|
byte b = 0;
|
|
|
|
if (value.c0.x)
|
|
b |= 1;
|
|
if (value.c0.y)
|
|
b |= 2;
|
|
if (value.c1.x)
|
|
b |= 4;
|
|
if (value.c1.y)
|
|
b |= 8;
|
|
if (value.c2.x)
|
|
b |= 16;
|
|
if (value.c2.y)
|
|
b |= 32;
|
|
if (value.c3.x)
|
|
b |= 64;
|
|
if (value.c3.y)
|
|
b |= 128;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool3x2(bool3x2 value) {
|
|
byte b = 0;
|
|
|
|
if (value.c0.x)
|
|
b |= 1;
|
|
if (value.c0.y)
|
|
b |= 2;
|
|
if (value.c0.z)
|
|
b |= 4;
|
|
if (value.c1.x)
|
|
b |= 8;
|
|
if (value.c1.y)
|
|
b |= 16;
|
|
if (value.c1.z)
|
|
b |= 32;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool3x3(bool3x3 value) {
|
|
ushort s = 0;
|
|
|
|
if (value.c0.x)
|
|
s |= 1;
|
|
if (value.c0.y)
|
|
s |= 2;
|
|
if (value.c0.z)
|
|
s |= 4;
|
|
if (value.c1.x)
|
|
s |= 8;
|
|
if (value.c1.y)
|
|
s |= 16;
|
|
if (value.c1.z)
|
|
s |= 32;
|
|
if (value.c2.x)
|
|
s |= 64;
|
|
if (value.c2.y)
|
|
s |= 128;
|
|
if (value.c2.z)
|
|
s |= 256;
|
|
|
|
WriteUInt16(s);
|
|
}
|
|
|
|
public void Writebool3x4(bool3x4 value) {
|
|
ushort s = 0;
|
|
|
|
if (value.c0.x)
|
|
s |= 1;
|
|
if (value.c0.y)
|
|
s |= 2;
|
|
if (value.c0.z)
|
|
s |= 4;
|
|
if (value.c1.x)
|
|
s |= 8;
|
|
if (value.c1.y)
|
|
s |= 16;
|
|
if (value.c1.z)
|
|
s |= 32;
|
|
if (value.c2.x)
|
|
s |= 64;
|
|
if (value.c2.y)
|
|
s |= 128;
|
|
if (value.c2.z)
|
|
s |= 256;
|
|
if (value.c3.x)
|
|
s |= 512;
|
|
if (value.c3.y)
|
|
s |= 1024;
|
|
if (value.c3.z)
|
|
s |= 2048;
|
|
|
|
WriteUInt16(s);
|
|
}
|
|
|
|
public void Writebool4x2(bool4x2 value) {
|
|
byte b = 0;
|
|
|
|
if (value.c0.x)
|
|
b |= 1;
|
|
if (value.c0.y)
|
|
b |= 2;
|
|
if (value.c0.z)
|
|
b |= 4;
|
|
if (value.c0.w)
|
|
b |= 8;
|
|
if (value.c1.x)
|
|
b |= 16;
|
|
if (value.c1.y)
|
|
b |= 32;
|
|
if (value.c1.z)
|
|
b |= 64;
|
|
if (value.c1.w)
|
|
b |= 128;
|
|
|
|
WriteUInt8Unpacked(b);
|
|
}
|
|
|
|
public void Writebool4x3(bool4x3 value) {
|
|
ushort s = 0;
|
|
|
|
if (value.c0.x)
|
|
s |= 1;
|
|
if (value.c0.y)
|
|
s |= 2;
|
|
if (value.c0.z)
|
|
s |= 4;
|
|
if (value.c0.w)
|
|
s |= 8;
|
|
if (value.c1.x)
|
|
s |= 16;
|
|
if (value.c1.y)
|
|
s |= 32;
|
|
if (value.c1.z)
|
|
s |= 64;
|
|
if (value.c1.w)
|
|
s |= 128;
|
|
if (value.c2.x)
|
|
s |= 256;
|
|
if (value.c2.y)
|
|
s |= 512;
|
|
if (value.c2.z)
|
|
s |= 1024;
|
|
if (value.c2.w)
|
|
s |= 2048;
|
|
|
|
WriteUInt16(s);
|
|
}
|
|
|
|
public void Writebool4x4(bool4x4 value) {
|
|
ushort s = 0;
|
|
|
|
if (value.c0.x)
|
|
s |= 1;
|
|
if (value.c0.y)
|
|
s |= 2;
|
|
if (value.c0.z)
|
|
s |= 4;
|
|
if (value.c0.w)
|
|
s |= 8;
|
|
if (value.c1.x)
|
|
s |= 16;
|
|
if (value.c1.y)
|
|
s |= 32;
|
|
if (value.c1.z)
|
|
s |= 64;
|
|
if (value.c1.w)
|
|
s |= 128;
|
|
if (value.c2.x)
|
|
s |= 256;
|
|
if (value.c2.y)
|
|
s |= 512;
|
|
if (value.c2.z)
|
|
s |= 1024;
|
|
if (value.c2.w)
|
|
s |= 2048;
|
|
if (value.c3.x)
|
|
s |= 4096;
|
|
if (value.c3.y)
|
|
s |= 8192;
|
|
if (value.c3.z)
|
|
s |= 16384;
|
|
if (value.c3.w)
|
|
s |= 32768;
|
|
|
|
WriteUInt16(s);
|
|
}
|
|
}
|
|
|
|
public partial class Reader {
|
|
public bool2 Readbool2() {
|
|
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
return new bool2() { x = (b & 1) != 0, y = (b & 2) != 0 };
|
|
}
|
|
|
|
public bool3 Readbool3() {
|
|
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
return new bool3() {
|
|
x = (b & 1) != 0,
|
|
y = (b & 2) != 0,
|
|
z = (b & 4) != 0
|
|
};
|
|
}
|
|
|
|
public bool4 Readbool4() {
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
return new bool4 {
|
|
x = (b & 1) != 0,
|
|
y = (b & 2) != 0,
|
|
z = (b & 4) != 0,
|
|
w = (b & 8) != 0
|
|
};
|
|
}
|
|
|
|
public bool2x2 Readbool2x2() {
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
bool2x2 value = default;
|
|
|
|
value.c0.x = (b & 1) != 0;
|
|
value.c0.y = (b & 2) != 0;
|
|
value.c1.x = (b & 4) != 0;
|
|
value.c1.y = (b & 8) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool2x3 Readbool2x3() {
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
bool2x3 value = default;
|
|
|
|
value.c0.x = (b & 1) != 0;
|
|
value.c0.y = (b & 2) != 0;
|
|
value.c1.x = (b & 4) != 0;
|
|
value.c1.y = (b & 8) != 0;
|
|
value.c2.x = (b & 16) != 0;
|
|
value.c2.y = (b & 32) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool2x4 Readbool2x4() {
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
bool2x4 value = default;
|
|
|
|
value.c0.x = (b & 1) != 0;
|
|
value.c0.y = (b & 2) != 0;
|
|
value.c1.x = (b & 4) != 0;
|
|
value.c1.y = (b & 8) != 0;
|
|
value.c2.x = (b & 16) != 0;
|
|
value.c2.y = (b & 32) != 0;
|
|
value.c3.x = (b & 64) != 0;
|
|
value.c3.y = (b & 128) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool3x2 Readbool3x2() {
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
bool3x2 value = default;
|
|
|
|
value.c0.x = (b & 1) != 0;
|
|
value.c0.y = (b & 2) != 0;
|
|
value.c0.z = (b & 4) != 0;
|
|
value.c1.x = (b & 8) != 0;
|
|
value.c1.y = (b & 16) != 0;
|
|
value.c1.z = (b & 32) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool3x3 Readbool3x3() {
|
|
ushort s = ReadUInt16();
|
|
|
|
bool3x3 value = default;
|
|
value.c0.x = (s & 1) != 0;
|
|
value.c0.y = (s & 2) != 0;
|
|
value.c0.z = (s & 4) != 0;
|
|
value.c1.x = (s & 8) != 0;
|
|
value.c1.y = (s & 16) != 0;
|
|
value.c1.z = (s & 32) != 0;
|
|
value.c2.x = (s & 64) != 0;
|
|
value.c2.y = (s & 128) != 0;
|
|
value.c2.z = (s & 256) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool3x4 Readbool3x4() {
|
|
ushort s = ReadUInt16();
|
|
|
|
bool3x4 value = default;
|
|
|
|
value.c0.x = (s & 1) != 0;
|
|
value.c0.y = (s & 2) != 0;
|
|
value.c0.z = (s & 4) != 0;
|
|
value.c1.x = (s & 8) != 0;
|
|
value.c1.y = (s & 16) != 0;
|
|
value.c1.z = (s & 32) != 0;
|
|
value.c2.x = (s & 64) != 0;
|
|
value.c2.y = (s & 128) != 0;
|
|
value.c2.z = (s & 256) != 0;
|
|
value.c3.x = (s & 512) != 0;
|
|
value.c3.y = (s & 1024) != 0;
|
|
value.c3.z = (s & 2048) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool4x2 Readbool4x2() {
|
|
byte b = ReadUInt8Unpacked();
|
|
|
|
bool4x2 value = default;
|
|
|
|
value.c0.x = (b & 1) != 0;
|
|
value.c0.y = (b & 2) != 0;
|
|
value.c0.z = (b & 4) != 0;
|
|
value.c0.w = (b & 8) != 0;
|
|
value.c1.x = (b & 16) != 0;
|
|
value.c1.y = (b & 32) != 0;
|
|
value.c1.z = (b & 64) != 0;
|
|
value.c1.w = (b & 128) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool4x3 Readbool4x3() {
|
|
ushort s = ReadUInt16();
|
|
|
|
bool4x3 value = default;
|
|
|
|
value.c0.x = (s & 1) != 0;
|
|
value.c0.y = (s & 2) != 0;
|
|
value.c0.z = (s & 4) != 0;
|
|
value.c0.w = (s & 8) != 0;
|
|
value.c1.x = (s & 16) != 0;
|
|
value.c1.y = (s & 32) != 0;
|
|
value.c1.z = (s & 64) != 0;
|
|
value.c1.w = (s & 128) != 0;
|
|
value.c2.x = (s & 256) != 0;
|
|
value.c2.y = (s & 512) != 0;
|
|
value.c2.z = (s & 1024) != 0;
|
|
value.c2.w = (s & 2048) != 0;
|
|
|
|
return value;
|
|
}
|
|
|
|
public bool4x4 Readbool4x4() {
|
|
ushort s = ReadUInt16();
|
|
|
|
bool4x4 value = default;
|
|
|
|
value.c0.x = (s & 1) != 0;
|
|
value.c0.y = (s & 2) != 0;
|
|
value.c0.z = (s & 4) != 0;
|
|
value.c0.w = (s & 8) != 0;
|
|
value.c1.x = (s & 16) != 0;
|
|
value.c1.y = (s & 32) != 0;
|
|
value.c1.z = (s & 64) != 0;
|
|
value.c1.w = (s & 128) != 0;
|
|
value.c2.x = (s & 256) != 0;
|
|
value.c2.y = (s & 512) != 0;
|
|
value.c2.z = (s & 1024) != 0;
|
|
value.c2.w = (s & 2048) != 0;
|
|
value.c3.x = (s & 4096) != 0;
|
|
value.c3.y = (s & 8192) != 0;
|
|
value.c3.z = (s & 16384) != 0;
|
|
value.c3.w = (s & 32768) != 0;
|
|
|
|
return value;
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif |