From bce195b53e29f4699a5c792b9c3b237d24f79589 Mon Sep 17 00:00:00 2001 From: themias <89101928+themias@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:59:39 -0400 Subject: [PATCH] Fix disposal unit flush animation (#30677) * Fix disposal unit flush animation * Revert "Fix disposal unit flush animation" This reverts commit a596ecfd5f5368f87ef52cfb27884a8e000185c6. * control by setting layer visibility rather than overwriting * restore changes --- Content.Client/Disposal/Unit/DisposalUnitSystem.cs | 9 ++------- .../Prototypes/Entities/Structures/Furniture/toilet.yml | 2 ++ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Content.Client/Disposal/Unit/DisposalUnitSystem.cs b/Content.Client/Disposal/Unit/DisposalUnitSystem.cs index 30ca320a2a..8c72cadff3 100644 --- a/Content.Client/Disposal/Unit/DisposalUnitSystem.cs +++ b/Content.Client/Disposal/Unit/DisposalUnitSystem.cs @@ -69,7 +69,8 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem sprite.LayerSetVisible(DisposalUnitVisualLayers.Unanchored, state == DisposalUnitComponent.VisualState.UnAnchored); sprite.LayerSetVisible(DisposalUnitVisualLayers.Base, state == DisposalUnitComponent.VisualState.Anchored); - sprite.LayerSetVisible(DisposalUnitVisualLayers.OverlayFlush, state is DisposalUnitComponent.VisualState.OverlayFlushing or DisposalUnitComponent.VisualState.OverlayCharging); + sprite.LayerSetVisible(DisposalUnitVisualLayers.OverlayFlush, state == DisposalUnitComponent.VisualState.OverlayFlushing); + sprite.LayerSetVisible(DisposalUnitVisualLayers.BaseCharging, state == DisposalUnitComponent.VisualState.OverlayCharging); var chargingState = sprite.LayerMapTryGet(DisposalUnitVisualLayers.BaseCharging, out var chargingLayer) ? sprite.LayerGetState(chargingLayer) @@ -97,10 +98,6 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem { // Play the flush animation new AnimationTrackSpriteFlick.KeyFrame(flushState, 0), - // Return to base state (though, depending on how the unit is - // configured we might get an appearance change event telling - // us to go to charging state) - new AnimationTrackSpriteFlick.KeyFrame(chargingState, (float) ent.Comp.FlushDelay.TotalSeconds) } }, } @@ -121,8 +118,6 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem _animationSystem.Play(ent, anim, AnimationKey); } } - else if (state == DisposalUnitComponent.VisualState.OverlayCharging) - sprite.LayerSetState(DisposalUnitVisualLayers.OverlayFlush, chargingState); else _animationSystem.Stop(ent.Owner, AnimationKey); diff --git a/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml b/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml index 2605af8019..1b5ac30a9c 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml @@ -12,6 +12,8 @@ map: [ "enum.DisposalUnitVisualLayers.Unanchored" ] - state: disposal map: [ "enum.DisposalUnitVisualLayers.Base" ] + - state: disposal-charging + map: [ "enum.DisposalUnitVisualLayers.BaseCharging" ] - state: disposal-flush map: [ "enum.DisposalUnitVisualLayers.OverlayFlush" ] - state: dispover-charge