public override void OnChangeData(AppearanceComponent component)
        {
            base.OnChangeData(component);

            var sprite = component.Owner.GetComponent <SpriteComponent>();

            var state    = component.GetData <string>(CrayonVisuals.State);
            var color    = component.GetData <Color>(CrayonVisuals.Color);
            var rotation = component.GetData <Angle>(CrayonVisuals.Rotation);

            sprite.LayerSetState(0, state);
            sprite.LayerSetColor(0, color);
            sprite.Rotation = rotation;
        }
        public override void OnChangeData(AppearanceComponent component)
        {
            base.OnChangeData(component);

            if (!component.Owner.TryGetComponent(out ISpriteComponent? sprite))
            {
                return;
            }

            sprite.LayerSetState(
                MorgueVisualLayers.Base,
                component.GetData <bool>(MorgueVisuals.Open)
                    ? _stateOpen
                    : _stateClosed
                );

            var lightState = "";

            if (component.TryGetData(MorgueVisuals.HasContents, out bool hasContents) && hasContents)
            {
                lightState = _lightContents;
            }
            if (component.TryGetData(MorgueVisuals.HasMob, out bool hasMob) && hasMob)
            {
                lightState = _lightMob;
            }
            if (component.TryGetData(MorgueVisuals.HasSoul, out bool hasSoul) && hasSoul)
            {
                lightState = _lightSoul;
            }

            if (!string.IsNullOrEmpty(lightState))
            {
                sprite.LayerSetState(MorgueVisualLayers.Light, lightState);
                sprite.LayerSetVisible(MorgueVisualLayers.Light, true);
            }
            else
            {
                sprite.LayerSetVisible(MorgueVisualLayers.Light, false);
            }
        }