Skip to content

Commit

Permalink
Fix character menu button not untoggling when window closes (space-wi…
Browse files Browse the repository at this point in the history
  • Loading branch information
SpaceManiac authored Feb 11, 2025
1 parent 724f87e commit d849a04
Showing 1 changed file with 21 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,20 @@ public void OnStateEntered(GameplayState state)
_window = UIManager.CreateWindow<CharacterWindow>();
LayoutContainer.SetAnchorPreset(_window, LayoutContainer.LayoutPreset.CenterTop);


_window.OnClose += DeactivateButton;
_window.OnOpen += ActivateButton;

CommandBinds.Builder
.Bind(ContentKeyFunctions.OpenCharacterMenu,
InputCmdHandler.FromDelegate(_ => ToggleWindow()))
.Register<CharacterUIController>();
InputCmdHandler.FromDelegate(_ => ToggleWindow()))
.Register<CharacterUIController>();
}

public void OnStateExited(GameplayState state)
{
if (_window != null)
{
_window.Dispose();
_window.Close();
_window = null;
}

Expand Down Expand Up @@ -105,18 +106,27 @@ public void LoadButton()
}

CharacterButton.OnPressed += CharacterButtonPressed;
}

if (_window == null)
private void DeactivateButton()
{
if (CharacterButton == null)
{
return;
}

_window.OnClose += DeactivateButton;
_window.OnOpen += ActivateButton;
CharacterButton.Pressed = false;
}

private void DeactivateButton() => CharacterButton!.Pressed = false;
private void ActivateButton() => CharacterButton!.Pressed = true;
private void ActivateButton()
{
if (CharacterButton == null)
{
return;
}

CharacterButton.Pressed = true;
}

private void CharacterUpdated(CharacterData data)
{
Expand Down Expand Up @@ -150,7 +160,7 @@ private void CharacterUpdated(CharacterData data)

var objectiveLabel = new RichTextLabel
{
StyleClasses = {StyleNano.StyleClassTooltipActionTitle}
StyleClasses = { StyleNano.StyleClassTooltipActionTitle }
};
objectiveLabel.SetMessage(objectiveText);

Expand Down Expand Up @@ -245,10 +255,7 @@ private void ToggleWindow()
if (_window == null)
return;

if (CharacterButton != null)
{
CharacterButton.SetClickPressed(!_window.IsOpen);
}
CharacterButton?.SetClickPressed(!_window.IsOpen);

if (_window.IsOpen)
{
Expand Down

0 comments on commit d849a04

Please sign in to comment.