Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function addon:OnUpdate()
- if not self.tUnits then return end
- local counter = 0
- for k, v in pairs(self.tUnits) do
- local tFacing = v:GetFacing()
- if not tFacing then return end
- local tPos = v:GetPosition()
- if not tPos then return end
- --t2:FindChild("Pos"):SetText(("y: %s x: %s z: %s"):format(tPos.y, tPos.x, tPos.z)) -- debug
- local rot = math.atan(tFacing.x/tFacing.z)
- local rotPlus = rot+math.rad(60) -- offset
- local rotNeg = rot+math.rad(-60) -- offset
- tFacing.x = tFacing.x*-1 -- because else it is an inverted flipped coordinate system
- if not self.markers[1] or not self.markers[1][1] then self:SetupMarks() end -- check if at least 1 is set up or not
- for nCounterCounter = 1, 3 do -- 3 safe areas per mob
- for i = 1, #self.markers[counter+nCounterCounter] do
- if (nCounterCounter%3) == 1 then
- local tPlusEndPoint = { x = tPos.x+nLineLength*math.sin(rotPlus), y = tPos.y, z = tPos.z+nLineLength*math.cos(rotPlus)}
- local vV1 = Vector3.New(tPos.x, tPos.y, tPos.z)
- local vV2 = Vector3.New(tPlusEndPoint.x, tPlusEndPoint.y, tPlusEndPoint.z)
- local vVector = Vector3.InterpolateLinear(vV1, vV2, (1/#self.markers[counter+nCounterCounter]) * i)
- self.markers[counter+nCounterCounter][i]:SetWorldLocation(vVector)
- self.markers[counter+nCounterCounter][i]:Show(true)
- elseif (nCounterCounter%3) == 2 then
- local tNegEndPoint = { x = tPos.x+nLineLength*math.sin(rotNeg), y = tPos.y, z = tPos.z+nLineLength*math.cos(rotNeg)}
- local vV1 = Vector3.New(tPos.x, tPos.y, tPos.z)
- local vV2 = Vector3.New(tNegEndPoint.x, tNegEndPoint.y, tNegEndPoint.z)
- local vVector = Vector3.InterpolateLinear(vV1, vV2, (1/#self.markers[counter+nCounterCounter]) * i)
- self.markers[counter+nCounterCounter][i]:SetWorldLocation(vVector)
- self.markers[counter+nCounterCounter][i]:Show(true)
- elseif (nCounterCounter%3) == 0 then
- local tHeadEndPoint = { x = tPos.x+nLineLength*math.sin(rot+math.rad(180)), y = tPos.y, z = tPos.z+nLineLength*math.cos(rot+math.rad(180))}
- local vV1 = Vector3.New(tPos.x, tPos.y, tPos.z)
- local vV2 = Vector3.New(tHeadEndPoint.x, tHeadEndPoint.y, tHeadEndPoint.z)
- local vVector = Vector3.InterpolateLinear(vV1, vV2, (1/#self.markers[counter+nCounterCounter]) * i)
- self.markers[counter+nCounterCounter][i]:SetWorldLocation(vVector)
- self.markers[counter+nCounterCounter][i]:Show(true)
- self.markers[counter+nCounterCounter][i]:SetBGColor(tColor.yellow)
- end
- end
- end
- counter = counter + 3
- end
- end
Advertisement