using System.Collections.Generic; using System.Runtime.Serialization; namespace Uigenx.Protocol { public enum UgxRole { [EnumMember(Value = "editor")] Editor, [EnumMember(Value = "player")] Player, } public enum UgxCapability { [EnumMember(Value = "sync")] Sync, [EnumMember(Value = "compile")] Compile, [EnumMember(Value = "dataSchema")] DataSchema, [EnumMember(Value = "liveData")] LiveData, [EnumMember(Value = "actions")] Actions, [EnumMember(Value = "preview")] Preview, [EnumMember(Value = "hotReload")] HotReload, [EnumMember(Value = "screenshot")] Screenshot, } public enum UgxRenderPipeline { [EnumMember(Value = "unknown")] Unknown, [EnumMember(Value = "urp")] Urp, [EnumMember(Value = "hdrp")] Hdrp, [EnumMember(Value = "built-in")] BuiltIn, } public enum UgxLogLevel { [EnumMember(Value = "debug")] Debug, [EnumMember(Value = "info")] Info, [EnumMember(Value = "warning")] Warning, [EnumMember(Value = "error")] Error, } public sealed class UgxHello { public string Token { get; set; } = string.Empty; public UgxRole Role { get; set; } = UgxRole.Editor; public string UnityVersion { get; set; } = string.Empty; public string PackageVersion { get; set; } = string.Empty; public string ProjectId { get; set; } = string.Empty; public List Capabilities { get; set; } = new List(); public string Platform { get; set; } = string.Empty; public bool IsPlaying { get; set; } public UgxRenderPipeline RenderPipeline { get; set; } = UgxRenderPipeline.Unknown; } public sealed class UgxWelcome { public string DaemonVersion { get; set; } = string.Empty; public int ProtocolVersion { get; set; } public string ProjectName { get; set; } = string.Empty; public string UiFolder { get; set; } = string.Empty; public Dictionary Features { get; set; } = new Dictionary(); } public sealed class UgxLogMessage { public UgxLogLevel Level { get; set; } = UgxLogLevel.Info; public string Message { get; set; } = string.Empty; public string Stack { get; set; } } }