private const string TRayAnimationKey = "trays";
private const double AnimationLength = 0.3;
+ public const LookupFlags Flags = LookupFlags.Static | LookupFlags.Sundries | LookupFlags.Approximate;
+
public override void Update(float frameTime)
{
base.Update(frameTime);
if (canSee)
{
- _lookup.GetEntitiesInRange(playerMap, playerPos, range, inRange);
+ _lookup.GetEntitiesInRange(playerMap, playerPos, range, inRange, flags: Flags);
foreach (var (uid, comp) in inRange)
{
- if (!comp.IsUnderCover || !comp.BlockAmbience | !comp.BlockInteractions)
- continue;
-
- EnsureComp<TrayRevealedComponent>(uid);
+ if (comp.IsUnderCover)
+ EnsureComp<TrayRevealedComponent>(uid);
}
}
- var revealedQuery = AllEntityQuery<TrayRevealedComponent, SpriteComponent, TransformComponent>();
+ var revealedQuery = AllEntityQuery<TrayRevealedComponent, SpriteComponent>();
var subfloorQuery = GetEntityQuery<SubFloorHideComponent>();
- while (revealedQuery.MoveNext(out var uid, out _, out var sprite, out var xform))
+ while (revealedQuery.MoveNext(out var uid, out _, out var sprite))
{
// Revealing
// Add buffer range to avoid flickers.
if (subfloorQuery.TryGetComponent(uid, out var subfloor) &&
- xform.MapID != MapId.Nullspace &&
- xform.MapID == playerMap &&
- xform.Anchored &&
inRange.Contains((uid, subfloor)))
{
// Due to the fact client is predicting this server states will reset it constantly