rendered paste body
method PlotBox()
{
variable int Degrees = 0
variable float Distance = MAX_BOX_SIZE
variable string RegionName
variable point3f Location
variable point3f CollisionPoint
variable int Connections = 0
variable float X1 = ${Me.X}
variable float X2 = ${Me.X}
variable float Y1 = ${Me.Y}
variable float Y2 = ${Me.Y}
variable float Z1 = ${Me.Z}
variable float Z2 = ${Me.Z}
do
{
Location.X:Set[Me.X + (MAX_BOX_SIZE / 2) * ${Math.Cos[Degrees]}]
Location.Y:Set[Me.Y - (MAX_BOX_SIZE / 2) * ${Math.Sin[Degrees]}]
CollisionPoint:Set[${ISXWoW.IsPathObstructed[${Location.X},${Location.Y},${Me.Z} - 3,${Location.X},${Location.Y},${Me.Z} + 3]}]
Location.Z:Set[${CollisionPoint.Z} + 0.1]
if ${Location.Z} < ${Z1}
{
Z1:Set[${Location.Z}]
}
CollisionPoint:Set[${ISXWoW.IsPathObstructed[${Location.X},${Location.Y},${Location.Z},${Me.X},${Me.Y},${Me.Z}]}]
if ${Math.Distance[${Me.Location},${CollisionPoint}]} < ${Distance}
{
Distance:Set[${Math.Distance[${Me.Location},${CollisionPoint}]}]
}
}
while ${Degrees:Inc[30]} <= 360
if ${Distance} > MAX_BOX_SIZE
{
Distance:Set[MAX_BOX_SIZE]
}
X1:Dec[${Distance}]
X2:Inc[${Distance}]
Y1:Dec[${Distance}]
Y2:Inc[${Distance}]
Z2:Set[${Me.Z} + 1]
RegionName:Set["R${This.CurrentSubZone.ChildCount}"]
This.CurrentSubZone:AddBox[${RegionName},${X1},${X2},${Y1},${Y2},${Z1},${Z2}]
This:Debug["Added ${RegionName}.${CurrentSubZone.FQN} Connections: ${Connections}"]
}