]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix disposal unit flush animation (#30677)
authorthemias <89101928+themias@users.noreply.github.com>
Thu, 24 Apr 2025 22:59:39 +0000 (18:59 -0400)
committerGitHub <noreply@github.com>
Thu, 24 Apr 2025 22:59:39 +0000 (18:59 -0400)
* 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
Resources/Prototypes/Entities/Structures/Furniture/toilet.yml

index 30ca320a2a96e8308ca60a51efa817124b889566..8c72cadff32f7c63b3722274de024e42b201451c 100644 (file)
@@ -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);
 
index 2605af80198941d3c39e414b613cfbf04bce227b..1b5ac30a9c4afebfde3e7d5d39d7eba4c5605710 100644 (file)
@@ -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