Advertisement
Guest User

Untitled

a guest
May 8th, 2023
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. ------------------------------------------------------------
  2. -- Waypoint/Rally Pins
  3. -----------------------------------------------------------
  4.  
  5. local waypoints = {
  6. Player = {
  7. Control = "Fyr_MM_Scroll_Map_Pins_PlayerWaypoint",
  8. PinType = MAP_PIN_TYPE_PLAYER_WAYPOINT,
  9. PinTag = "waypoint",
  10. Texture = "EsoUI/Art/MapPins/UI_WorldMap_pin_customDestination.dds",
  11. },
  12.  
  13. Rally = {
  14. Control = "Fyr_MM_Scroll_Map_Pins_RallyPoint",
  15. PinType = MAP_PIN_TYPE_RALLY_POINT,
  16. PinTag = "rally",
  17. Texture = "MiniMap/Textures/rally.dds",
  18. IsRally = true,
  19. },
  20.  
  21. Ping = {
  22. Control = "Fyr_MM_Scroll_Map_Pins_Ping",
  23. PinType = MAP_PIN_TYPE_PING,
  24. PinTag = "rally",
  25. Texture = "MiniMap/Textures/ping.dds",
  26. }
  27. }
  28.  
  29. function ProcessWaypointPin(waypointData, pingEventType, wpx, wpy)
  30. local waypointPin
  31.  
  32. if pingEventType ~= PING_EVENT_ADDED or (wpx == 0 and wpy == 0) then
  33. waypointPin = GetControl(waypointData.Control)
  34. if waypointPin then
  35. waypointPin.m_Pin = nil
  36. waypointPin.MapId = 0
  37. waypointPin.nX = 0
  38. waypointPin.nY = 0
  39. waypointPin.m_PinType = 0
  40. waypointPin:SetTexture("")
  41. waypointPin:SetHidden(true)
  42. end
  43. return nil
  44. end
  45.  
  46. waypointPin = GetControl(waypointData.Control)
  47. if waypointPin == nil then
  48. waypointPin = WINDOW_MANAGER:CreateControl(waypointData.Control, Fyr_MM_Scroll_Map_Pins, CT_TEXTURE)
  49. waypointPin.nDistance = function(self)
  50. if self.nX == nil then
  51. return 1
  52. end
  53. return math.sqrt((zo_round(CurrentMap.PlayerNX * 10000) - zo_round(self.nX * 10000)) ^ 2 + (zo_round(CurrentMap.PlayerNY * 10000) - zo_round(self.nY * 10000)) ^ 2) / 10000
  54. end
  55. waypointPin:SetHandler("OnMouseEnter", PinOnMouseEnter)
  56. waypointPin:SetHandler("OnMouseExit", PinOnMouseExit)
  57. waypointPin:SetHandler("OnMouseUp", PinOnMouseUp)
  58. end
  59.  
  60. local pin = waypointPin.m_Pin or ZO_Object.New(ZO_MapPin)
  61. local pinSize = waypointData.IsRally and (ZOpinData[waypointData.PinType].minSize / 3) * FyrMM.pScalePercent or ZOpinData[waypointData.PinType].minSize * FyrMM.pScalePercent
  62. pin.m_PinType = waypointData.PinType
  63. pin.m_PinTag = waypointData.PinTag
  64. pin.nX = wpx
  65. pin.nY = wpy
  66. waypointPin.m_Pin = pin
  67. waypointPin.MapId = CurrentMap.MapId
  68. waypointPin.nX = wpx
  69. waypointPin.nY = wpy
  70. waypointPin.m_PinType = waypointData.PinType
  71. waypointPin:SetDrawLayer(1)
  72. FyrMM.SetPinSize(waypointPin, pinSize, 0)
  73. waypointPin:SetTexture(waypointData.Texture)
  74. waypointPin:SetHidden(false)
  75. FyrMM.SetPinAnchor(waypointPin, wpx, wpy, Fyr_MM_Scroll_Map_Pins)
  76. waypointPin:SetMouseEnabled(true)
  77. return waypointPin
  78. end
  79.  
  80. function FyrMM.WaypointPins(pingEventType, pinType, pingTag, wpx, wpy) --pingTag never used
  81. local waypointPin
  82. if pinType == MAP_PIN_TYPE_PLAYER_WAYPOINT then
  83. waypointPin = ProcessWaypointPin(waypoints.Player, pingEventType, wpx, wpy)
  84. if waypointPin then
  85. FyrMM.Waypoint = waypointPin
  86. FyrMM.IsWaypoint = true
  87. else
  88. FyrMM.Waypoint = nil
  89. FyrMM.IsWaypoint = false
  90. end
  91. elseif pinType == MAP_PIN_TYPE_RALLY_POINT then
  92. CALLBACK_MANAGER:FireCallbacks("FyrMMDebug", "is rally point ")
  93. waypointPin = ProcessWaypointPin(waypoints.Rally, pingEventType, wpx, wpy)
  94. if waypointPin then
  95. FyrMM.Rally = waypointPin
  96. FyrMM.IsRally = true
  97. else
  98. FyrMM.Rally = nil
  99. FyrMM.IsRally = false
  100. end
  101. elseif pinType == MAP_PIN_TYPE_PING then
  102. waypointPin = ProcessWaypointPin(waypoints.Ping, pingEventType, wpx, wpy)
  103. if waypointPin then
  104. FyrMM.Ping = waypointPin
  105. FyrMM.IsPing = true
  106. else
  107. FyrMM.Ping = nil
  108. FyrMM.IsPing = false
  109. end
  110. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement