Core/AreaTriggers: Implement visibility of serverside areatriggers with .debug areatrigger command

Port From (https://github.com/TrinityCore/TrinityCore/commit/1b55f85fad95a717be912166a06cec118352fd56)
This commit is contained in:
hondacrx
2023-06-13 09:16:14 -04:00
parent 264647c611
commit cec7c9b453
2 changed files with 25 additions and 5 deletions
@@ -46,6 +46,7 @@ namespace Game.Chat
handler.SendSysMessage(CypherStrings.DebugAreatriggerOff);
player.IsDebugAreaTriggers = false;
}
player.UpdateObjectVisibility();
return true;
}
@@ -256,6 +256,13 @@ namespace Game.Entities
SetObjectScale(1.0f);
SetUpdateFieldValue(m_areaTriggerData.ModifyValue(m_areaTriggerData.BoundsRadius2D), GetMaxSearchRadius());
SetUpdateFieldValue(m_areaTriggerData.ModifyValue(m_areaTriggerData.DecalPropertiesID), 24u); // blue decal, for .debug areatrigger visibility
ScaleCurve extraScaleCurve = m_areaTriggerData.ModifyValue(m_areaTriggerData.ExtraScaleCurve);
SetUpdateFieldValue(extraScaleCurve.ModifyValue(extraScaleCurve.ParameterCurve), (uint)1.0000001f);
SetUpdateFieldValue(extraScaleCurve.ModifyValue(extraScaleCurve.OverrideActive), true);
_shape = position.Shape;
_maxSearchRadius = _shape.GetMaxSearchRadius();
@@ -978,6 +985,23 @@ namespace Game.Entities
_ai = null;
}
public override bool IsNeverVisibleFor(WorldObject seer, bool allowServersideObjects)
{
if (base.IsNeverVisibleFor(seer, allowServersideObjects))
return true;
if (IsServerSide() && !allowServersideObjects)
{
Player seerPlayer = seer.ToPlayer();
if (seerPlayer != null)
return !seerPlayer.IsDebugAreaTriggers;
return true;
}
return false;
}
public override void BuildValuesCreate(WorldPacket data, Player target)
{
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
@@ -1044,11 +1068,6 @@ namespace Game.Entities
public bool IsServerSide() { return _areaTriggerTemplate.Id.IsServerSide; }
public override bool IsNeverVisibleFor(WorldObject seer, bool allowServersideObjects = false)
{
return base.IsNeverVisibleFor(seer) || (IsServerSide() && !allowServersideObjects);
}
[System.Diagnostics.Conditional("DEBUG")]
void DebugVisualizePosition()
{