|
- using System;
- using System.IO;
- using System.Runtime.CompilerServices;
- using Game.Handhelds;
- using NetworkFramework.Shared;
- using UnityEngine;
-
- namespace CLre_server.API.Synergy.Tweaks
- {
- public struct SerializedCLreTerrainModifyRejection: ISerializedNetData
- {
- public RejectionFlag Flags;
-
- public uint resourceId;
-
- public Vector3 hit;
-
- public string toolKey;
-
- public ToolModeType toolMode;
-
- public byte[] Serialize()
- {
- using (MemoryStream stream = new MemoryStream())
- {
- using (BinaryWriter writer = new BinaryWriter(stream))
- {
- writer.Write((byte)Flags);
- writer.Write(resourceId);
- writer.Write(hit.x);
- writer.Write(hit.y);
- writer.Write(hit.z);
- writer.Write(toolKey);
- writer.Write((byte)toolMode);
- return stream.ToArray();
- }
- }
- }
-
- public void Deserialize(byte[] data)
- {
- using (MemoryStream stream = new MemoryStream(data))
- {
- using (BinaryReader reader = new BinaryReader(stream))
- {
- Flags = (RejectionFlag)reader.ReadByte();
- resourceId = reader.ReadUInt32();
- float x = reader.ReadSingle();
- float y = reader.ReadSingle();
- float z = reader.ReadSingle();
- hit = new Vector3(x, y, z);
- toolKey = reader.ReadString();
- toolMode = (ToolModeType)reader.ReadByte();
- }
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public bool Ok()
- {
- return (Flags & RejectionFlag.Rejection) == RejectionFlag.None;
- }
- }
-
- [Flags]
- public enum RejectionFlag : byte
- {
- None = 0,
- Rejection = 1,
- Proximity = 1 << 1,
- Permission = 1 << 2,
- AccountNotFound = 1 << 3,
- InitError = 1 << 4,
- }
- }
|