using LiteNetLib.Utils; namespace PacketLib; public struct PlayerCommand : INetSerializable { public static PlayerCommand SWITCH_CAM(int camId) => new(){ID = 0, Args = [camId] }; public static PlayerCommand TOGGLE_MONITOR() => new(){ID = 1, Args = []}; public static PlayerCommand TOGGLE_DOOR_OFFICE(int doorId) => new(){ID = 2, Args = [doorId]}; public int ID{ get; set; } public bool Hideable => ID < 0; public int[] Args{ get; private set; } public void Serialize(NetDataWriter writer) { writer.Put(ID); writer.PutArray(Args); } public void Deserialize(NetDataReader reader) { ID = reader.GetInt(); Args = reader.GetIntArray(); } }