71 lignes
1,8 Kio
Lua
71 lignes
1,8 Kio
Lua
QuestHelper_File["cartographer.lua"] = "1.4.0"
|
|
QuestHelper_Loadtime["cartographer.lua"] = GetTime()
|
|
|
|
local cartographer_cb
|
|
local cartographer_wp
|
|
|
|
local QuestHelperPoint
|
|
|
|
local function cartographer_wp_update(c, z, x, y, desc)
|
|
if cartographer_wp then
|
|
cartographer_wp:Cancel()
|
|
end
|
|
|
|
if not QuestHelper_Pref.hide and c and c >= 0 then
|
|
cartographer_wp = QuestHelperPoint:new(c, z, x, y, desc)
|
|
Cartographer_Waypoints:AddWaypoint(cartographer_wp)
|
|
end
|
|
end
|
|
|
|
function QuestHelper:EnableCartographer()
|
|
if Cartographer_Waypoints and Waypoint and not Waypoint.prototype then
|
|
if not QuestHelperPoint then
|
|
QuestHelperPoint = Waypoint:new()
|
|
QuestHelperPoint.ShowOnMap = false
|
|
|
|
function QuestHelperPoint:init(c, z, x, y, desc)
|
|
self.x, self.y, self.task = x, y, desc
|
|
|
|
local zone = QuestHelper.Astrolabe:GetMapVirtualZones(c)[z] -- wellllp
|
|
|
|
if Rock then
|
|
local LibBabble = Rock("LibBabble-Zone-3.0", false, true)
|
|
if LibBabble then
|
|
zone = LibBabble:GetReverseLookupTable()[zone]
|
|
end
|
|
end
|
|
|
|
self.Zone = zone
|
|
end
|
|
|
|
function QuestHelperPoint:Cancel()
|
|
self.task = nil
|
|
|
|
if cartographer_wp == self then
|
|
cartographer_wp = nil
|
|
end
|
|
|
|
Waypoint.Cancel(self)
|
|
end
|
|
|
|
function QuestHelperPoint:ToString()
|
|
return self.task or "Waypoint"
|
|
end
|
|
end
|
|
|
|
if not cartographer_cb then
|
|
cartographer_cb = QuestHelper:AddWaypointCallback(cartographer_wp_update)
|
|
end
|
|
end
|
|
end
|
|
|
|
function QuestHelper:DisableCartographer()
|
|
if cartographer_cb then
|
|
if cartographer_wp then
|
|
cartographer_wp:Cancel()
|
|
end
|
|
|
|
QuestHelper:RemoveWaypointCallback(cartographer_cb)
|
|
cartographer_cb = nil
|
|
end
|
|
end
|