75 lines
2.1 KiB
C#
75 lines
2.1 KiB
C#
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,
|
|
}
|
|
}
|