Don't scale do_afters (#10553)

This commit is contained in:
metalgearsloth 2022-08-13 23:01:23 +10:00 committed by GitHub
parent 21eaa21673
commit 0dcac22e42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 20 deletions

View File

@ -2,34 +2,28 @@ using Content.Client.Resources;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Client.ResourceManagement;
using Robust.Shared;
using Robust.Shared.Configuration;
using Robust.Shared.Enums;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
namespace Content.Client.DoAfter;
public sealed class DoAfterOverlay : Overlay
{
[Dependency] private readonly IConfigurationManager _configManager = default!;
[Dependency] private readonly IEntityManager _entManager = default!;
[Dependency] private readonly IGameTiming _timing = default!;
private readonly IEntityManager _entManager;
private readonly SharedTransformSystem _transform;
private Texture _barTexture;
private ShaderInstance _shader;
private readonly Texture _barTexture;
private readonly ShaderInstance _shader;
public override OverlaySpace Space => OverlaySpace.WorldSpaceBelowFOV;
public DoAfterOverlay()
public DoAfterOverlay(IEntityManager entManager, IPrototypeManager protoManager, IResourceCache cache)
{
IoCManager.InjectDependencies(this);
_entManager = entManager;
_transform = _entManager.EntitySysManager.GetEntitySystem<SharedTransformSystem>();
_barTexture = IoCManager.Resolve<IResourceCache>()
.GetTexture("/Textures/Interface/Misc/progress_bar.rsi/icon.png");
_barTexture = cache.GetTexture("/Textures/Interface/Misc/progress_bar.rsi/icon.png");
_shader = IoCManager.Resolve<IPrototypeManager>().Index<ShaderPrototype>("unshaded").Instance();
_shader = protoManager.Index<ShaderPrototype>("unshaded").Instance();
}
protected override void Draw(in OverlayDrawArgs args)
@ -39,7 +33,8 @@ public sealed class DoAfterOverlay : Overlay
var spriteQuery = _entManager.GetEntityQuery<SpriteComponent>();
var xformQuery = _entManager.GetEntityQuery<TransformComponent>();
var scale = _configManager.GetCVar(CVars.DisplayUIScale);
// If you use the display UI scale then need to set max(1f, displayscale) because 0 is valid.
const float scale = 1f;
var scaleMatrix = Matrix3.CreateScale(new Vector2(scale, scale));
var rotationMatrix = Matrix3.CreateRotation(-rotation);
handle.UseShader(_shader);

View File

@ -1,11 +1,10 @@
using Content.Shared.DoAfter;
using Content.Shared.Examine;
using JetBrains.Annotations;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.Collections;
using Robust.Client.ResourceManagement;
using Robust.Shared.GameStates;
using Robust.Shared.Network;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
@ -32,7 +31,11 @@ namespace Content.Client.DoAfter
UpdatesOutsidePrediction = true;
SubscribeNetworkEvent<CancelledDoAfterMessage>(OnCancelledDoAfter);
SubscribeLocalEvent<DoAfterComponent, ComponentHandleState>(OnDoAfterHandleState);
IoCManager.Resolve<IOverlayManager>().AddOverlay(new DoAfterOverlay());
IoCManager.Resolve<IOverlayManager>().AddOverlay(
new DoAfterOverlay(
EntityManager,
IoCManager.Resolve<IPrototypeManager>(),
IoCManager.Resolve<IResourceCache>()));
}
public override void Shutdown()
@ -83,7 +86,8 @@ namespace Content.Client.DoAfter
private void OnCancelledDoAfter(CancelledDoAfterMessage ev)
{
if (!TryComp<DoAfterComponent>(ev.Uid, out var doAfter)) return;
if (!TryComp<DoAfterComponent>(ev.Uid, out var doAfter))
return;
Cancel(doAfter, ev.ID);
}
@ -91,7 +95,6 @@ namespace Content.Client.DoAfter
/// <summary>
/// Remove a DoAfter without showing a cancellation graphic.
/// </summary>
/// <param name="clientDoAfter"></param>
public void Remove(DoAfterComponent component, ClientDoAfter clientDoAfter)
{
component.DoAfters.Remove(clientDoAfter.ID);