using SRMultiplayer; using UnityEngine; namespace Lidgren.Network { public partial class NetBuffer { public void Write(Vector2 vector) { Write(vector.x); Write(vector.y); } public Vector2 ReadVector2() { return new Vector2( x: ReadSingle(), y: ReadSingle()); } public void Write(Vector3 vector) { Write(vector.x); Write(vector.y); Write(vector.z); } public Vector3 ReadVector3() { return new Vector3( x: ReadSingle(), y: ReadSingle(), z: ReadSingle()); } public void Write(Vector4 vector) { Write(vector.x); Write(vector.y); Write(vector.z); Write(vector.w); } public Vector4 ReadVector4() { return new Vector4( x: ReadSingle(), y: ReadSingle(), z: ReadSingle(), w: ReadSingle()); } public void Write(Quaternion quaternion) { uint comp = Compression.CompressQuaternion(quaternion); Write(comp); } public Quaternion ReadQuaternion() { return Compression.DecompressQuaternion(ReadUInt32()); } public void WriteRgbColor(Color32 color) { Write(color.r); Write(color.g); Write(color.b); } public Color32 ReadRgbColor() { return new Color32( r: ReadByte(), g: ReadByte(), b: ReadByte(), a: byte.MaxValue); } public void WriteRgbaColor(Color32 color) { Write(color.r); Write(color.g); Write(color.b); Write(color.a); } public Color32 ReadRgbaColor() { return new Color32( r: ReadByte(), g: ReadByte(), b: ReadByte(), a: ReadByte()); } public void Write(Ray ray) { Write(ray.direction); Write(ray.origin); } public Ray ReadRay() { return new Ray( direction: ReadVector3(), origin: ReadVector3()); } public void Write(Plane plane) { Write(plane.normal); Write(plane.distance); } public Plane ReadPlane() { return new Plane( inNormal: ReadVector3(), d: ReadSingle()); } public void Write(Matrix4x4 matrix) { Write(matrix.m00); Write(matrix.m01); Write(matrix.m02); Write(matrix.m03); Write(matrix.m10); Write(matrix.m11); Write(matrix.m12); Write(matrix.m13); Write(matrix.m20); Write(matrix.m21); Write(matrix.m22); Write(matrix.m23); Write(matrix.m30); Write(matrix.m31); Write(matrix.m32); Write(matrix.m33); } public Matrix4x4 ReadMatrix4X4() { return new Matrix4x4 { m00 = ReadSingle(), m01 = ReadSingle(), m02 = ReadSingle(), m03 = ReadSingle(), m10 = ReadSingle(), m11 = ReadSingle(), m12 = ReadSingle(), m13 = ReadSingle(), m20 = ReadSingle(), m21 = ReadSingle(), m22 = ReadSingle(), m23 = ReadSingle(), m30 = ReadSingle(), m31 = ReadSingle(), m32 = ReadSingle(), m33 = ReadSingle() }; } public void Write(Rect rect) { Write(rect.xMin); Write(rect.yMin); Write(rect.width); Write(rect.height); } public Rect ReadRect() { return new Rect( x: ReadSingle(), y: ReadSingle(), width: ReadSingle(), height: ReadSingle()); } } }