Core/AI: some tweaks on boundary functionality
Port From (https://github.com/TrinityCore/TrinityCore/commit/f3a49059acb7b19ef95ebb7f6fe6887a123cd1c9)
This commit is contained in:
@@ -345,14 +345,13 @@ namespace Game.AI
|
|||||||
|
|
||||||
public bool CheckBoundary(Position who = null)
|
public bool CheckBoundary(Position who = null)
|
||||||
{
|
{
|
||||||
|
if (_boundary == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
if (who == null)
|
if (who == null)
|
||||||
who = me;
|
who = me;
|
||||||
|
|
||||||
foreach (var boundary in _boundary)
|
return IsInBounds(_boundary, who) != _negateBoundary;
|
||||||
if (!boundary.IsWithinBoundary(who))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CheckInRoom()
|
public bool CheckInRoom()
|
||||||
@@ -386,9 +385,6 @@ namespace Game.AI
|
|||||||
|
|
||||||
public static bool IsInBounds(List<AreaBoundary> boundary, Position pos)
|
public static bool IsInBounds(List<AreaBoundary> boundary, Position pos)
|
||||||
{
|
{
|
||||||
if (boundary == null)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
foreach (AreaBoundary areaBoundary in boundary)
|
foreach (AreaBoundary areaBoundary in boundary)
|
||||||
if (!areaBoundary.IsWithinBoundary(pos))
|
if (!areaBoundary.IsWithinBoundary(pos))
|
||||||
return false;
|
return false;
|
||||||
@@ -396,9 +392,10 @@ namespace Game.AI
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetBoundary(List<AreaBoundary> boundary)
|
public void SetBoundary(List<AreaBoundary> boundary, bool negateBoundaries = false)
|
||||||
{
|
{
|
||||||
_boundary = boundary;
|
_boundary = boundary;
|
||||||
|
_negateBoundary = negateBoundaries;
|
||||||
me.DoImmediateBoundaryCheck();
|
me.DoImmediateBoundaryCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -482,6 +479,7 @@ namespace Game.AI
|
|||||||
bool MoveInLineOfSight_locked;
|
bool MoveInLineOfSight_locked;
|
||||||
protected new Creature me;
|
protected new Creature me;
|
||||||
List<AreaBoundary> _boundary = new List<AreaBoundary>();
|
List<AreaBoundary> _boundary = new List<AreaBoundary>();
|
||||||
|
bool _negateBoundary;
|
||||||
|
|
||||||
protected EventMap _events = new EventMap();
|
protected EventMap _events = new EventMap();
|
||||||
protected TaskScheduler _scheduler = new TaskScheduler();
|
protected TaskScheduler _scheduler = new TaskScheduler();
|
||||||
|
|||||||
Reference in New Issue
Block a user