All pastes #427125 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-06 17:05 UTC
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}"]
	}