private void OnPlayerDetached(EntityUid uid, CharacterInterfaceComponent comp, PlayerDetachedEvent args)
        {
            if (comp.Window == null)
            {
                return;
            }

            _gameHud.CharacterButtonVisible = false;
            comp.Window.Close();
        }
        private void OnPlayerAttached(EntityUid uid, CharacterInterfaceComponent comp, PlayerAttachedEvent args)
        {
            if (comp.Window == null)
            {
                return;
            }

            _gameHud.CharacterButtonVisible  = true;
            _gameHud.CharacterButtonToggled += ToggleWindow;
        }
        private void OnComponentInit(EntityUid uid, CharacterInterfaceComponent comp, ComponentInit args)
        {
            //Use all the character ui interfaced components to create the character window
            comp.UIComponents = EntityManager.GetComponents <ICharacterUI>(uid).ToList();
            if (comp.UIComponents.Count == 0)
            {
                return;
            }

            comp.Window          = new CharacterInterfaceComponent.CharacterWindow(comp.UIComponents);
            comp.Window.OnClose += () => _gameHud.CharacterButtonDown = false;
        }
        private void OnComponentRemove(EntityUid uid, CharacterInterfaceComponent comp, ComponentRemove args)
        {
            if (comp.UIComponents != null)
            {
                foreach (var component in comp.UIComponents)
                {
                    // Make sure these don't get deleted when the window is disposed.
                    component.Scene.Orphan();
                }
            }

            comp.UIComponents = null;

            comp.Window?.Close();
            comp.Window = null;

            _inputManager.SetInputCommand(ContentKeyFunctions.OpenCharacterMenu, null);
        }
        private void OnPlayerAttached(EntityUid uid, CharacterInterfaceComponent comp, PlayerAttachedEvent args)
        {
            if (comp.Window == null)
            {
                return;
            }

            _gameHud.CharacterButtonVisible = true;
            _gameHud.CharacterButtonToggled = b =>
            {
                if (b)
                {
                    comp.Window.OpenCentered();
                }
                else
                {
                    comp.Window.Close();
                }
            };
        }