using System; using Robust.Shared.GameObjects; using Robust.Shared.Serialization; namespace Content.Shared.Research.Components { [Virtual] public class SharedResearchClientComponent : Component { /// /// Request that the server updates the client. /// [Serializable, NetSerializable] public sealed class ResearchClientSyncMessage : BoundUserInterfaceMessage { public ResearchClientSyncMessage() { } } /// /// Sent to the server when the client chooses a research server. /// [Serializable, NetSerializable] public sealed class ResearchClientServerSelectedMessage : BoundUserInterfaceMessage { public int ServerId; public ResearchClientServerSelectedMessage(int serverId) { ServerId = serverId; } } /// /// Sent to the server when the client deselects a research server. /// [Serializable, NetSerializable] public sealed class ResearchClientServerDeselectedMessage : BoundUserInterfaceMessage { public ResearchClientServerDeselectedMessage() { } } [NetSerializable, Serializable] public enum ResearchClientUiKey { Key, } [Serializable, NetSerializable] public sealed class ResearchClientBoundInterfaceState : BoundUserInterfaceState { public int ServerCount; public string[] ServerNames; public int[] ServerIds; public int SelectedServerId; public ResearchClientBoundInterfaceState(int serverCount, string[] serverNames, int[] serverIds, int selectedServerId = -1) { ServerCount = serverCount; ServerNames = serverNames; ServerIds = serverIds; SelectedServerId = selectedServerId; } } } }