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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user