using System.Numerics; namespace Content.Server.Tabletop.Components { /// /// A component that makes an object playable as a tabletop game. /// [RegisterComponent, Access(typeof(TabletopSystem))] public sealed partial class TabletopGameComponent : Component { /// /// The localized name of the board. Shown in the UI. /// [DataField] public LocId BoardName { get; private set; } = "tabletop-default-board-name"; /// /// The type of method used to set up a tabletop. /// [DataField(required: true)] public TabletopSetup Setup { get; private set; } = new TabletopChessSetup(); /// /// The size of the viewport being opened. Must match the board dimensions otherwise you'll get the space parallax (unless that's what you want). /// [DataField] public Vector2i Size { get; private set; } = (300, 300); /// /// The zoom of the viewport camera. /// [DataField] public Vector2 CameraZoom { get; private set; } = Vector2.One; /// /// The specific session of this tabletop. /// [ViewVariables] public TabletopSession? Session { get; set; } = null; } }