Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ea59f09714 | |||
| 27dcbb2679 | |||
| b7d2d7f9f8 | |||
| 2b8b28757c | |||
| e1f5831d69 | |||
| 67de1d243a | |||
| 7bcfcfd3d9 | |||
| ea7388ecce | |||
| 0b8fdd614a | |||
| 8ed08f6e0f | |||
| 756e42a385 | |||
| 55c9b25df7 | |||
| 33a9b66aff | |||
| 4a2360f813 | |||
| c85fea8f30 | |||
| dd52e513a4 |
@@ -1,4 +1,4 @@
|
|||||||
<img src="https://cdn.discordapp.com/attachments/1510333697277300856/1522484471616634943/fff.png?ex=6a51de28&is=6a508ca8&hm=63ff5877df99f9df865b93da3528822af42de0d386126f4ccc465c728b00bed1&"/>
|
<img src="https://i.postimg.cc/gkqNFRGD/fff.png"/>ㅤㅤ<img src="https://i.postimg.cc/DyKBM536/afsa.png"/>
|
||||||
|
|
||||||
* It's recommended to use the KUI-NAMEPLATES addon as it's designed to work with that.
|
* It's recommended to use the KUI-NAMEPLATES addon as it's designed to work with that.
|
||||||
* You can find it here.
|
* You can find it here.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
## Title: RelationshipsThreatPlates - OctoWoW
|
## Title: RelationshipsThreatPlates - OctoWoW
|
||||||
## Notes: OctoWoW-compatible RelationshipsThreatPlates
|
## Notes: OctoWoW-compatible RelationshipsThreatPlates
|
||||||
## Author: Relationship
|
## Author: Relationship
|
||||||
## Version: 1.4
|
## Version: 1.5
|
||||||
## SavedVariables: RelationshipsThreatPlatesDB
|
## SavedVariables: RelationshipsThreatPlatesDB
|
||||||
## X-Website: https://github.com/Relationship-OctoWoW/RelationshipsThreatPlates
|
## X-Website: https://github.com/Relationship-OctoWoW/RelationshipsThreatPlates
|
||||||
## X-GitHub: https://github.com/Relationship-OctoWoW/RelationshipsThreatPlates
|
## X-GitHub: https://github.com/Relationship-OctoWoW/RelationshipsThreatPlates
|
||||||
|
|||||||
@@ -111,45 +111,76 @@ local function DeepCopy(src)
|
|||||||
return dst
|
return dst
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- ==================================================================
|
||||||
|
-- Ensure SavedVariable table exists and has all default keys.
|
||||||
|
-- Safe to call multiple times.
|
||||||
|
-- ==================================================================
|
||||||
|
local function EnsureDB()
|
||||||
|
if not RelationshipsThreatPlatesDB then
|
||||||
|
RelationshipsThreatPlatesDB = DeepCopy(DEFAULT_CONFIG)
|
||||||
|
else
|
||||||
|
for k, v in pairs(DEFAULT_CONFIG) do
|
||||||
|
if RelationshipsThreatPlatesDB[k] == nil then
|
||||||
|
RelationshipsThreatPlatesDB[k] = DeepCopy(v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
addon.EnsureDB = EnsureDB
|
||||||
|
|
||||||
|
-- In WoW 1.12, SavedVariables are loaded BEFORE the addon's Lua files
|
||||||
|
-- execute, so it is safe to initialize the DB at file load. Doing this
|
||||||
|
-- here (in addition to ADDON_LOADED) protects against cases where the
|
||||||
|
-- installed folder name doesn't match TP_ADDON_NAME exactly
|
||||||
|
-- (e.g. "RelationshipsThreatPlates-main" from a GitHub zip), which
|
||||||
|
-- would otherwise cause the ADDON_LOADED arg1 check to fail and leave
|
||||||
|
-- RelationshipsThreatPlatesDB nil - the root cause of
|
||||||
|
-- "attempt to index global 'RelationshipsThreatPlatesDB' a nil value"
|
||||||
|
-- reported at RelationshipsThreatPlates_GUI.lua:320.
|
||||||
|
EnsureDB()
|
||||||
|
|
||||||
-- ==================================================================
|
-- ==================================================================
|
||||||
-- Event handling
|
-- Event handling
|
||||||
-- ==================================================================
|
-- ==================================================================
|
||||||
addon:RegisterEvent("ADDON_LOADED")
|
addon:RegisterEvent("ADDON_LOADED")
|
||||||
addon:RegisterEvent("PLAYER_ENTERING_WORLD")
|
addon:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
|
|
||||||
|
local modulesInitialized = false
|
||||||
|
local function InitializeModules()
|
||||||
|
if modulesInitialized then return end
|
||||||
|
modulesInitialized = true
|
||||||
|
|
||||||
|
EnsureDB()
|
||||||
|
|
||||||
|
-- Ensure media textures
|
||||||
|
addon.Media.EnsureTextures()
|
||||||
|
|
||||||
|
-- Initialize modules
|
||||||
|
addon.ThreatEngine:Initialize()
|
||||||
|
addon.Threat:Initialize()
|
||||||
|
addon.Nameplates:Initialize()
|
||||||
|
addon.GUI:Initialize()
|
||||||
|
|
||||||
|
addon:ui_print("v" .. TP_VERSION .. " loaded! Type /tp for options.")
|
||||||
|
end
|
||||||
|
|
||||||
addon:SetScript("OnEvent", function()
|
addon:SetScript("OnEvent", function()
|
||||||
if event == "ADDON_LOADED" and arg1 == TP_ADDON_NAME then
|
if event == "ADDON_LOADED" then
|
||||||
-- Initialize saved variables with defaults
|
-- Accept any ADDON_LOADED: this script only runs when our addon
|
||||||
if not RelationshipsThreatPlatesDB then
|
-- is loaded, so the first ADDON_LOADED we see is safe to act on.
|
||||||
RelationshipsThreatPlatesDB = DeepCopy(DEFAULT_CONFIG)
|
-- This avoids folder-rename issues where arg1 ~= TP_ADDON_NAME.
|
||||||
else
|
InitializeModules()
|
||||||
-- Merge in any missing keys from defaults
|
|
||||||
for k, v in pairs(DEFAULT_CONFIG) do
|
|
||||||
if RelationshipsThreatPlatesDB[k] == nil then
|
|
||||||
RelationshipsThreatPlatesDB[k] = DeepCopy(v)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Ensure media textures
|
|
||||||
addon.Media.EnsureTextures()
|
|
||||||
|
|
||||||
-- Initialize modules
|
|
||||||
addon.ThreatEngine:Initialize()
|
|
||||||
addon.Threat:Initialize()
|
|
||||||
addon.Nameplates:Initialize()
|
|
||||||
addon.GUI:Initialize()
|
|
||||||
|
|
||||||
addon:ui_print("v" .. TP_VERSION .. " loaded! Type /tp for options.")
|
|
||||||
|
|
||||||
elseif event == "PLAYER_ENTERING_WORLD" then
|
elseif event == "PLAYER_ENTERING_WORLD" then
|
||||||
-- Force a nameplate scan on entering world
|
-- Safety net: if ADDON_LOADED was somehow missed, initialize now.
|
||||||
|
InitializeModules()
|
||||||
if RelationshipsThreatPlatesDB and RelationshipsThreatPlatesDB.enabled then
|
if RelationshipsThreatPlatesDB and RelationshipsThreatPlatesDB.enabled then
|
||||||
addon.Nameplates:UpdateAll()
|
addon.Nameplates:UpdateAll()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
-- ==================================================================
|
-- ==================================================================
|
||||||
-- Slash commands
|
-- Slash commands
|
||||||
-- ==================================================================
|
-- ==================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user