c4d003e58f
- Repoint remote to Xurkon/Questie-X - Add QuestiePluginAPI, QuestieServer, QuestieLearnerComms modules - Add Questie-X.toc, Questie-X-Classic.toc, Questie-X-TBC.toc, Questie-X-Turtle.toc - Remove embedded Database/Ascension and Database/Ebonhold (migrated to plugins) - Add Plugins/ directory with NTFS junctions for Questie-X-AscensionDB and Questie-X-EbonholdDB - Add LibDeflate, XXH_Lua_Lib, LibDBIcon-1.0, LibDataBroker-1.1 - Update README: Questie-X branding, logo, plugin install guide, plugin API docs - Update CHANGELOG: v1.1.4 entry documenting all architectural changes - Update .gitignore: exclude plugin junctions, __pycache__, .agents, debug files - Various module updates: corrections, map, tracker, tooltips, quest, options
36 lines
1.4 KiB
Lua
36 lines
1.4 KiB
Lua
---@class HBDHooks
|
|
local HBDHooks = QuestieLoader:CreateModule("HBDHooks");
|
|
local _HBDHooks = {}
|
|
|
|
---@type QuestieMap
|
|
local QuestieMap = QuestieLoader:ImportModule("QuestieMap");
|
|
|
|
local HBDPins = QuestieCompat.HBDPins or LibStub("HereBeDragonsQuestie-Pins-2.0")
|
|
|
|
|
|
function HBDHooks:Init()
|
|
--Override OnMapChanged from MapCanvasDataProviderMixin
|
|
-- (https://www.townlong-yak.com/framexml/27101/Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua#74)
|
|
--This could in theory be skipped by instead using our own MapCanvasDataProviderMixin
|
|
--The reason i don't is because i want the scaling to happen AFTER HBD has processed all the icons.
|
|
if HBDPins.worldmapProvider and HBDPins.worldmapProvider.OnMapChanged then
|
|
_HBDHooks.ORG_OnMapChanged = HBDPins.worldmapProvider.OnMapChanged;
|
|
HBDPins.worldmapProvider.OnMapChanged = _HBDHooks.OnMapChanged
|
|
end
|
|
end
|
|
|
|
function _HBDHooks:OnMapChanged()
|
|
--Call original one : https://www.townlong-yak.com/framexml/27101/Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua#74
|
|
if _HBDHooks.ORG_OnMapChanged then
|
|
_HBDHooks.ORG_OnMapChanged(HBDPins.worldmapProvider)
|
|
end
|
|
|
|
local mapScale = QuestieMap.GetScaleValue()
|
|
local map = HBDPins.worldmapProvider:GetMap()
|
|
if map and map.EnumeratePinsByTemplate then
|
|
for pin in map:EnumeratePinsByTemplate("HereBeDragonsPinsTemplateQuestie") do
|
|
QuestieMap.utils:RescaleIcon(pin.icon, mapScale)
|
|
end
|
|
end
|
|
end
|