Files
RobustToolbox/Robust.Shared/GameObjects/Components/UserInterface/SharedUserInterfaceComponent.cs
T
AcruidandGitHub 2183cd7ca1 Massive Namespace Cleanup (#1544)
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
2021-02-10 23:27:19 -08:00

75 lines
2.1 KiB
C#

using System;
using Robust.Shared.Serialization;
namespace Robust.Shared.GameObjects
{
public abstract class SharedUserInterfaceComponent : Component
{
public sealed override string Name => "UserInterface";
public sealed override uint? NetID => NetIDs.USERINTERFACE;
protected sealed class PrototypeData : IExposeData
{
public object UiKey { get; private set; } = default!;
public string ClientType { get; private set; } = default!;
void IExposeData.ExposeData(ObjectSerializer serializer)
{
UiKey = serializer.ReadStringEnumKey("key");
ClientType = serializer.ReadDataField<string>("type");
}
}
[NetSerializable, Serializable]
protected sealed class BoundInterfaceMessageWrapMessage : ComponentMessage
{
public readonly BoundUserInterfaceMessage Message;
public readonly object UiKey;
public BoundInterfaceMessageWrapMessage(BoundUserInterfaceMessage message, object uiKey)
{
Directed = true;
Message = message;
UiKey = uiKey;
}
public override string ToString()
{
return $"{nameof(BoundInterfaceMessageWrapMessage)}: {Message}";
}
}
}
[NetSerializable, Serializable]
public abstract class BoundUserInterfaceState
{
}
[NetSerializable, Serializable]
public class BoundUserInterfaceMessage
{
}
[NetSerializable, Serializable]
internal sealed class UpdateBoundStateMessage : BoundUserInterfaceMessage
{
public readonly BoundUserInterfaceState State;
public UpdateBoundStateMessage(BoundUserInterfaceState state)
{
State = state;
}
}
[NetSerializable, Serializable]
internal sealed class OpenBoundInterfaceMessage : BoundUserInterfaceMessage
{
}
[NetSerializable, Serializable]
internal sealed class CloseBoundInterfaceMessage : BoundUserInterfaceMessage
{
}
}