Core/Entities: remove grid-wide visibility from setActive and implement another method for it
Port From (https://github.com/TrinityCore/TrinityCore/commit/8713a623283b4d0e414a97b566854c1b21e8754b)
This commit is contained in:
@@ -681,6 +681,7 @@ namespace Game.BattleFields
|
|||||||
// Set creature in world
|
// Set creature in world
|
||||||
m_Map.AddToMap(creature);
|
m_Map.AddToMap(creature);
|
||||||
creature.SetActive(true);
|
creature.SetActive(true);
|
||||||
|
creature.SetFarVisible(true);
|
||||||
|
|
||||||
return creature;
|
return creature;
|
||||||
}
|
}
|
||||||
@@ -705,6 +706,7 @@ namespace Game.BattleFields
|
|||||||
// Add to world
|
// Add to world
|
||||||
m_Map.AddToMap(go);
|
m_Map.AddToMap(go);
|
||||||
go.SetActive(true);
|
go.SetActive(true);
|
||||||
|
go.SetFarVisible(true);
|
||||||
|
|
||||||
return go;
|
return go;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -990,6 +990,16 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsFarVisible() { return m_isFarVisible; }
|
||||||
|
|
||||||
|
public void SetFarVisible(bool on)
|
||||||
|
{
|
||||||
|
if (IsPlayer())
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_isFarVisible = on;
|
||||||
|
}
|
||||||
|
|
||||||
bool IsVisibilityOverridden() { return m_visibilityDistanceOverride.HasValue; }
|
bool IsVisibilityOverridden() { return m_visibilityDistanceOverride.HasValue; }
|
||||||
|
|
||||||
public void SetVisibilityDistanceOverride(VisibilityDistanceType type)
|
public void SetVisibilityDistanceOverride(VisibilityDistanceType type)
|
||||||
@@ -1053,9 +1063,9 @@ namespace Game.Entities
|
|||||||
|
|
||||||
public float GetVisibilityRange()
|
public float GetVisibilityRange()
|
||||||
{
|
{
|
||||||
if (IsVisibilityOverridden() && !IsTypeId(TypeId.Player))
|
if (IsVisibilityOverridden() && !IsPlayer())
|
||||||
return m_visibilityDistanceOverride.Value;
|
return m_visibilityDistanceOverride.Value;
|
||||||
else if (IsActiveObject() && !IsTypeId(TypeId.Player))
|
else if (IsFarVisible() && !IsPlayer())
|
||||||
return SharedConst.MaxVisibilityDistance;
|
return SharedConst.MaxVisibilityDistance;
|
||||||
else
|
else
|
||||||
return GetMap().GetVisibilityRange();
|
return GetMap().GetVisibilityRange();
|
||||||
@@ -1063,26 +1073,26 @@ namespace Game.Entities
|
|||||||
|
|
||||||
public float GetSightRange(WorldObject target = null)
|
public float GetSightRange(WorldObject target = null)
|
||||||
{
|
{
|
||||||
if (IsTypeId(TypeId.Player) || IsTypeId(TypeId.Unit))
|
if (IsPlayer() || IsCreature())
|
||||||
{
|
{
|
||||||
if (IsTypeId(TypeId.Player))
|
if (IsPlayer())
|
||||||
{
|
{
|
||||||
if (target != null && target.IsVisibilityOverridden() && !target.IsTypeId(TypeId.Player))
|
if (target != null && target.IsVisibilityOverridden() && !target.IsPlayer())
|
||||||
return target.m_visibilityDistanceOverride.Value;
|
return target.m_visibilityDistanceOverride.Value;
|
||||||
else if (target != null && target.IsActiveObject() && !target.IsTypeId(TypeId.Player))
|
else if (target != null && target.IsFarVisible() && !target.IsPlayer())
|
||||||
return SharedConst.MaxVisibilityDistance;
|
return SharedConst.MaxVisibilityDistance;
|
||||||
else if (ToPlayer().GetCinematicMgr().IsOnCinematic())
|
else if (ToPlayer().GetCinematicMgr().IsOnCinematic())
|
||||||
return SharedConst.DefaultVisibilityInstance;
|
return SharedConst.DefaultVisibilityInstance;
|
||||||
else
|
else
|
||||||
return GetMap().GetVisibilityRange();
|
return GetMap().GetVisibilityRange();
|
||||||
}
|
}
|
||||||
else if (IsTypeId(TypeId.Unit))
|
else if (IsCreature())
|
||||||
return ToCreature().m_SightDistance;
|
return ToCreature().m_SightDistance;
|
||||||
else
|
else
|
||||||
return SharedConst.SightRangeUnit;
|
return SharedConst.SightRangeUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsTypeId(TypeId.DynamicObject) && IsActiveObject())
|
if (IsDynObject() && IsActiveObject())
|
||||||
{
|
{
|
||||||
return GetMap().GetVisibilityRange();
|
return GetMap().GetVisibilityRange();
|
||||||
}
|
}
|
||||||
@@ -2383,6 +2393,7 @@ namespace Game.Entities
|
|||||||
public MovementInfo m_movementInfo;
|
public MovementInfo m_movementInfo;
|
||||||
string _name;
|
string _name;
|
||||||
protected bool m_isActive;
|
protected bool m_isActive;
|
||||||
|
bool m_isFarVisible;
|
||||||
Optional<float> m_visibilityDistanceOverride;
|
Optional<float> m_visibilityDistanceOverride;
|
||||||
bool m_isWorldObject;
|
bool m_isWorldObject;
|
||||||
public ZoneScript m_zoneScript;
|
public ZoneScript m_zoneScript;
|
||||||
|
|||||||
Reference in New Issue
Block a user