Misc stealth and box changes (#11809)

* git mv

* Disable shader while box is open

* Hide entity menu / prevent examine

* fix recursion fix recursion fix recursion fix recursion

* Better visibility checks

* min and max visibility fields

* fix reference point
This commit is contained in:
Leon Friedrich
2022-10-15 17:15:25 +13:00
committed by GitHub
parent 8199d361c1
commit 6f4bb040e4
12 changed files with 222 additions and 52 deletions

View File

@@ -67,16 +67,28 @@ namespace Content.Shared.Examine
public bool CanExamine(EntityUid examiner, EntityUid examined)
{
return !Deleted(examined) && CanExamine(examiner, EntityManager.GetComponent<TransformComponent>(examined).MapPosition,
entity => entity == examiner || entity == examined);
entity => entity == examiner || entity == examined, examined);
}
[Pure]
public virtual bool CanExamine(EntityUid examiner, MapCoordinates target, Ignored? predicate = null)
public virtual bool CanExamine(EntityUid examiner, MapCoordinates target, Ignored? predicate = null, EntityUid? examined = null, ExaminerComponent? examinerComp = null)
{
if (!EntityManager.TryGetComponent(examiner, out ExaminerComponent? examinerComponent))
if (!Resolve(examiner, ref examinerComp, false))
return false;
if (!examinerComponent.DoRangeCheck)
// Ghosts and admins skip examine checks.
if (examinerComp.SkipChecks)
return true;
if (examined != null)
{
var ev = new ExamineAttemptEvent(examiner);
RaiseLocalEvent(examined.Value, ev);
if (ev.Cancelled)
return false;
}
if (!examinerComp.CheckInRangeUnOccluded)
return true;
if (EntityManager.GetComponent<TransformComponent>(examiner).MapID != target.MapId)
@@ -326,4 +338,17 @@ namespace Content.Shared.Examine
PushMessage(msg);
}
}
/// <summary>
/// Event raised directed at an entity that someone is attempting to examine
/// </summary>
public sealed class ExamineAttemptEvent : CancellableEntityEventArgs
{
public readonly EntityUid Examiner;
public ExamineAttemptEvent(EntityUid examiner)
{
Examiner = examiner;
}
}
}