From dff51b930b7b93229718428237eaa55f55899a43 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Wed, 24 Jan 2024 13:20:14 +0300 Subject: [PATCH] Doafter stuff --- Content.Client/DoAfter/DoAfterOverlay.cs | 20 +++++++++++--------- Content.Client/DoAfter/DoAfterSystem.cs | 4 +--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Content.Client/DoAfter/DoAfterOverlay.cs b/Content.Client/DoAfter/DoAfterOverlay.cs index 2957dafdb7..7440f98fe6 100644 --- a/Content.Client/DoAfter/DoAfterOverlay.cs +++ b/Content.Client/DoAfter/DoAfterOverlay.cs @@ -20,7 +20,6 @@ public sealed class DoAfterOverlay : Overlay private readonly MetaDataSystem _meta; private readonly Texture _barTexture; - private readonly ShaderInstance _shader; /// /// Flash time for cancelled DoAfters @@ -33,17 +32,16 @@ public sealed class DoAfterOverlay : Overlay public override OverlaySpace Space => OverlaySpace.WorldSpaceBelowFOV; - public DoAfterOverlay(IEntityManager entManager, IPrototypeManager protoManager, IGameTiming timing, IPlayerManager player) + public DoAfterOverlay(IEntityManager entManager, IGameTiming timing, IPlayerManager player) { _entManager = entManager; _timing = timing; _player = player; _transform = _entManager.EntitySysManager.GetEntitySystem(); _meta = _entManager.EntitySysManager.GetEntitySystem(); - var sprite = new SpriteSpecifier.Rsi(new("/Textures/Interface/Misc/progress_bar.rsi"), "icon"); - _barTexture = _entManager.EntitySysManager.GetEntitySystem().Frame0(sprite); - _shader = protoManager.Index("unshaded").Instance(); + var sprite = new SpriteSpecifier.Rsi(new ResPath("/Textures/Interface/Misc/progress_bar.rsi"), "icon"); + _barTexture = _entManager.EntitySysManager.GetEntitySystem().Frame0(sprite); } protected override void Draw(in OverlayDrawArgs args) @@ -56,7 +54,6 @@ public sealed class DoAfterOverlay : Overlay const float scale = 1f; var scaleMatrix = Matrix3.CreateScale(new Vector2(scale, scale)); var rotationMatrix = Matrix3.CreateRotation(-rotation); - handle.UseShader(_shader); var curTime = _timing.CurTime; @@ -64,7 +61,9 @@ public sealed class DoAfterOverlay : Overlay var localEnt = _player.LocalSession?.AttachedEntity; var metaQuery = _entManager.GetEntityQuery(); - var enumerator = _entManager.AllEntityQueryEnumerator(); + var enumerator = _entManager + .AllEntityQueryEnumerator(); + while (enumerator.MoveNext(out var uid, out _, out var comp, out var sprite, out var xform)) { if (xform.MapID != args.MapId) @@ -105,7 +104,7 @@ public sealed class DoAfterOverlay : Overlay // Use the sprite itself if we know its bounds. This means short or tall sprites don't get overlapped // by the bar. - float yOffset = sprite.Bounds.Height / 2f + 0.05f; + var yOffset = sprite.Bounds.Height / 2f + 0.05f; // Position above the entity (we've already applied the matrix transform to the entity itself) // Offset by the texture size for every do_after we have. @@ -135,7 +134,9 @@ public sealed class DoAfterOverlay : Overlay } var xProgress = (EndX - StartX) * elapsedRatio + StartX; - var box = new Box2(new Vector2(StartX, 3f) / EyeManager.PixelsPerMeter, new Vector2(xProgress, 4f) / EyeManager.PixelsPerMeter); + var box = new Box2(new Vector2(StartX, 3f) / EyeManager.PixelsPerMeter, + new Vector2(xProgress, 4f) / EyeManager.PixelsPerMeter); + box = box.Translated(position); handle.DrawRect(box, color); offset += _barTexture.Height / scale; @@ -152,6 +153,7 @@ public sealed class DoAfterOverlay : Overlay { return new Color(0f, 1f, 0f, alpha); } + // lerp var hue = (5f / 18f) * progress; return Color.FromHsv((hue, 1f, 0.75f, alpha)); diff --git a/Content.Client/DoAfter/DoAfterSystem.cs b/Content.Client/DoAfter/DoAfterSystem.cs index 38e1a714ac..2f0e595ffe 100644 --- a/Content.Client/DoAfter/DoAfterSystem.cs +++ b/Content.Client/DoAfter/DoAfterSystem.cs @@ -3,7 +3,6 @@ using Content.Shared.DoAfter; using Content.Shared.Hands.Components; using Robust.Client.Graphics; using Robust.Client.Player; -using Robust.Shared.Prototypes; namespace Content.Client.DoAfter; @@ -15,13 +14,12 @@ public sealed class DoAfterSystem : SharedDoAfterSystem { [Dependency] private readonly IOverlayManager _overlay = default!; [Dependency] private readonly IPlayerManager _player = default!; - [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly MetaDataSystem _metadata = default!; public override void Initialize() { base.Initialize(); - _overlay.AddOverlay(new DoAfterOverlay(EntityManager, _prototype, GameTiming, _player)); + _overlay.AddOverlay(new DoAfterOverlay(EntityManager, GameTiming, _player)); } public override void Shutdown()