25 lines
No EOL
1 KiB
C#
25 lines
No EOL
1 KiB
C#
using GlobalClassLib;
|
|
using LiteNetLib.Utils;
|
|
|
|
namespace PacketLib;
|
|
|
|
public struct PlayerCommand : INetSerializable {
|
|
public static PlayerCommand SWITCH_CAM(int id) => new(){Id = 0, Args = [id] };
|
|
public static PlayerCommand SET_MONITOR(bool state) => new(){Id = 1, Args = [state ? 1 : 0]};
|
|
public static PlayerCommand SET_DOOR_OFFICE(Direction direction, bool state) => new(){Id = 2, Args = [(int)direction, state ? 1 : 0]};
|
|
public static PlayerCommand SET_DOOR_REMOTE((int, int) remoteDoorId, bool state) => new(){Id = 3, Args = [remoteDoorId.Item1, remoteDoorId.Item2, state ? 1 : 0]};
|
|
public static PlayerCommand SET_LIGHT(int camId, bool state) => new(){Id = 4, Args = [camId, state ? 1 : 0]};
|
|
public int Id{ get; set; }
|
|
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();
|
|
}
|
|
|
|
} |