| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using Content.Shared.Labels;
- using Content.Shared.Labels.Components;
- using Robust.Client.GameObjects;
- using Robust.Client.UserInterface;
- namespace Content.Client.Labels.UI
- {
- /// <summary>
- /// Initializes a <see cref="HandLabelerWindow"/> and updates it when new server messages are received.
- /// </summary>
- public sealed class HandLabelerBoundUserInterface : BoundUserInterface
- {
- [Dependency] private readonly IEntityManager _entManager = default!;
- [ViewVariables]
- private HandLabelerWindow? _window;
- public HandLabelerBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
- {
- IoCManager.InjectDependencies(this);
- }
- protected override void Open()
- {
- base.Open();
- _window = this.CreateWindow<HandLabelerWindow>();
- if (_entManager.TryGetComponent(Owner, out HandLabelerComponent? labeler))
- {
- _window.SetMaxLabelLength(labeler!.MaxLabelChars);
- }
- _window.OnLabelChanged += OnLabelChanged;
- Reload();
- }
- private void OnLabelChanged(string newLabel)
- {
- // Focus moment
- if (_entManager.TryGetComponent(Owner, out HandLabelerComponent? labeler) &&
- labeler.AssignedLabel.Equals(newLabel))
- return;
- SendPredictedMessage(new HandLabelerLabelChangedMessage(newLabel));
- }
- public void Reload()
- {
- if (_window == null || !_entManager.TryGetComponent(Owner, out HandLabelerComponent? component))
- return;
- _window.SetCurrentLabel(component.AssignedLabel);
- }
- }
- }
|