diff --git a/Content.Client/Nutrition/Visualizers/CreamPiedVisualizer.cs b/Content.Client/Nutrition/Visualizers/CreamPiedVisualizer.cs deleted file mode 100644 index 692601a214..0000000000 --- a/Content.Client/Nutrition/Visualizers/CreamPiedVisualizer.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Content.Shared.Nutrition.Components; -using JetBrains.Annotations; -using Robust.Client.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Serialization.Manager.Attributes; - -namespace Content.Client.Nutrition.Visualizers -{ - [UsedImplicitly] - public sealed class CreamPiedVisualizer : AppearanceVisualizer - { - [DataField("state")] - private string? _state; - - [Obsolete("Subscribe to your component being initialised instead.")] - public override void InitializeEntity(EntityUid entity) - { - base.InitializeEntity(entity); - - var sprite = IoCManager.Resolve().GetComponent(entity); - - sprite.LayerMapReserveBlank(CreamPiedVisualLayers.Pie); - sprite.LayerSetRSI(CreamPiedVisualLayers.Pie, "Effects/creampie.rsi"); - sprite.LayerSetVisible(CreamPiedVisualLayers.Pie, false); - } - - [Obsolete("Subscribe to AppearanceChangeEvent instead.")] - public override void OnChangeData(AppearanceComponent component) - { - base.OnChangeData(component); - - if (component.TryGetData(CreamPiedVisuals.Creamed, out var pied)) - { - SetPied(component, pied); - } - } - - private void SetPied(AppearanceComponent component, bool pied) - { - var sprite = IoCManager.Resolve().GetComponent(component.Owner); - - sprite.LayerSetVisible(CreamPiedVisualLayers.Pie, pied); - sprite.LayerSetState(CreamPiedVisualLayers.Pie, _state); - } - } - - public enum CreamPiedVisualLayers : byte - { - Pie, - } -} diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 92c10603d0..0e09e636b3 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -142,6 +142,10 @@ - map: [ "head" ] - map: [ "pocket1" ] - map: [ "pocket2" ] + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_human" + visible: false - type: Physics bodyType: KinematicController - type: Fixtures @@ -225,9 +229,12 @@ Burn: sprite: Mobs/Effects/burn_damage.rsi - type: Appearance + - type: GenericVisualizer visuals: - - type: CreamPiedVisualizer - state: creampie_human + enum.CreamPiedVisuals.Creamed: + clownedon: # Not 'creampied' bc I can already see Skyrat complaining about conflicts. + True: {visible: true} + False: {visible: false} - type: RotationVisuals - type: FloatingVisuals - type: FireVisuals