Improve sprite fading behaviour (#35863)
* Click through faded sprites * Count the mouse position for which sprites to fade
This commit is contained in:
committed by
GitHub
parent
ce53629f1d
commit
e9b89a1c6b
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.Client.Sprite;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.Utility;
|
||||
@@ -17,12 +18,14 @@ public sealed class ClickableSystem : EntitySystem
|
||||
|
||||
private EntityQuery<ClickableComponent> _clickableQuery;
|
||||
private EntityQuery<TransformComponent> _xformQuery;
|
||||
private EntityQuery<FadingSpriteComponent> _fadingSpriteQuery;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
_clickableQuery = GetEntityQuery<ClickableComponent>();
|
||||
_xformQuery = GetEntityQuery<TransformComponent>();
|
||||
_fadingSpriteQuery = GetEntityQuery<FadingSpriteComponent>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -34,7 +37,7 @@ public sealed class ClickableSystem : EntitySystem
|
||||
/// The draw depth for the sprite that captured the click.
|
||||
/// </param>
|
||||
/// <returns>True if the click worked, false otherwise.</returns>
|
||||
public bool CheckClick(Entity<ClickableComponent?, SpriteComponent, TransformComponent?> entity, Vector2 worldPos, IEye eye, out int drawDepth, out uint renderOrder, out float bottom)
|
||||
public bool CheckClick(Entity<ClickableComponent?, SpriteComponent, TransformComponent?, FadingSpriteComponent?> entity, Vector2 worldPos, IEye eye, bool excludeFaded, out int drawDepth, out uint renderOrder, out float bottom)
|
||||
{
|
||||
if (!_clickableQuery.Resolve(entity.Owner, ref entity.Comp1, false))
|
||||
{
|
||||
@@ -52,6 +55,14 @@ public sealed class ClickableSystem : EntitySystem
|
||||
return false;
|
||||
}
|
||||
|
||||
if (excludeFaded && _fadingSpriteQuery.Resolve(entity.Owner, ref entity.Comp4, false))
|
||||
{
|
||||
drawDepth = default;
|
||||
renderOrder = default;
|
||||
bottom = default;
|
||||
return false;
|
||||
}
|
||||
|
||||
var sprite = entity.Comp2;
|
||||
var transform = entity.Comp3;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user