Files
Workspace/Assets/Demos/Demo2/Domain/Demo2NetworkModels.cs
T
2026-08-18 02:03:34 +08:00

60 lines
1.5 KiB
C#

#nullable enable
using System;
using System.Collections.Generic;
namespace Demo2.Domain
{
[Serializable]
public sealed class Demo2NetworkEnvelope
{
public string Type = string.Empty;
public long Sequence;
public string PayloadJson = string.Empty;
}
[Serializable]
public sealed class Demo2Handshake
{
public string GameVersion = Demo2Protocol.GameVersion;
public int SimulationVersion = Demo2Protocol.SimulationVersion;
public string PlayerId = string.Empty;
public string ReconnectToken = string.Empty;
public List<Demo2ModManifest> Mods = new();
}
[Serializable]
public sealed class Demo2HandshakeResult
{
public bool Accepted;
public string ErrorCode = string.Empty;
public string Difference = string.Empty;
public string PlayerId = string.Empty;
public string ReconnectToken = string.Empty;
}
[Serializable]
public sealed class Demo2HashBroadcast
{
public long Tick;
public ulong StateHash;
}
[Serializable]
public sealed class Demo2LobbyPlayer
{
public string PlayerId = string.Empty;
public string DisplayName = string.Empty;
public bool Ready;
public bool Connected;
}
[Serializable]
public sealed class Demo2LobbyState
{
public bool IsHost;
public Demo2TransportMode Transport;
public List<Demo2LobbyPlayer> Players = new();
}
}