Add structure for achievement sniffer
This commit is contained in:
17
Heimdall.lua
17
Heimdall.lua
@@ -58,6 +58,7 @@ local function init()
|
|||||||
---@field NetworkMessenger InitTable
|
---@field NetworkMessenger InitTable
|
||||||
---@field StinkyCache InitTable
|
---@field StinkyCache InitTable
|
||||||
---@field Configurator InitTable
|
---@field Configurator InitTable
|
||||||
|
---@field AchievementSniffer InitTable
|
||||||
|
|
||||||
--- Config ---
|
--- Config ---
|
||||||
---@class HeimdallConfig
|
---@class HeimdallConfig
|
||||||
@@ -82,6 +83,7 @@ local function init()
|
|||||||
---@field networkMessenger HeimdallNetworkMessengerConfig
|
---@field networkMessenger HeimdallNetworkMessengerConfig
|
||||||
---@field configurator HeimdallConfiguratorConfig
|
---@field configurator HeimdallConfiguratorConfig
|
||||||
---@field stinkyCache HeimdallStinkyCacheConfig
|
---@field stinkyCache HeimdallStinkyCacheConfig
|
||||||
|
---@field achievementSniffer HeimdallAchievementSnifferConfig
|
||||||
---@field whisperNotify table<string, string>
|
---@field whisperNotify table<string, string>
|
||||||
---@field addonPrefix string
|
---@field addonPrefix string
|
||||||
---@field stinkies table<string, boolean>
|
---@field stinkies table<string, boolean>
|
||||||
@@ -255,6 +257,13 @@ local function init()
|
|||||||
---@field commander string
|
---@field commander string
|
||||||
---@field ttl number
|
---@field ttl number
|
||||||
|
|
||||||
|
---@class HeimdallAchievementSnifferConfig
|
||||||
|
---@field enabled boolean
|
||||||
|
---@field debug boolean
|
||||||
|
---@field texture string
|
||||||
|
---@field offsetX number
|
||||||
|
---@field offsetY number
|
||||||
|
|
||||||
--- Data ---
|
--- Data ---
|
||||||
---@class HeimdallMessengerData
|
---@class HeimdallMessengerData
|
||||||
---@field queue table<string, Message>
|
---@field queue table<string, Message>
|
||||||
@@ -505,6 +514,13 @@ local function init()
|
|||||||
commander = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "commander" }, "Heimdállr"),
|
commander = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "commander" }, "Heimdállr"),
|
||||||
ttl = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "ttl" }, 10),
|
ttl = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "ttl" }, 10),
|
||||||
},
|
},
|
||||||
|
achievementSniffer = {
|
||||||
|
enabled = shared.GetOrDefault(Heimdall_Data, { "config", "achievementSniffer", "enabled" }, false),
|
||||||
|
debug = shared.GetOrDefault(Heimdall_Data, { "config", "achievementSniffer", "debug" }, false),
|
||||||
|
texture = shared.GetOrDefault(Heimdall_Data, { "config", "achievementSniffer", "texture" }, "Aura53.tga"),
|
||||||
|
offsetX = shared.GetOrDefault(Heimdall_Data, { "config", "achievementSniffer", "offsetX" }, 0),
|
||||||
|
offsetY = shared.GetOrDefault(Heimdall_Data, { "config", "achievementSniffer", "offsetY" }, 0),
|
||||||
|
},
|
||||||
addonPrefix = shared.GetOrDefault(Heimdall_Data, { "config", "addonPrefix" }, "HEIMDALL"),
|
addonPrefix = shared.GetOrDefault(Heimdall_Data, { "config", "addonPrefix" }, "HEIMDALL"),
|
||||||
channelLocale = shared.GetOrDefault(Heimdall_Data, { "config", "channelLocale" }, {}),
|
channelLocale = shared.GetOrDefault(Heimdall_Data, { "config", "channelLocale" }, {}),
|
||||||
}
|
}
|
||||||
@@ -685,6 +701,7 @@ local function init()
|
|||||||
shared.NetworkMessenger.Init()
|
shared.NetworkMessenger.Init()
|
||||||
shared.Configurator.Init()
|
shared.Configurator.Init()
|
||||||
shared.StinkyCache.Init()
|
shared.StinkyCache.Init()
|
||||||
|
shared.AchievementSniffer.Init()
|
||||||
print("Heimdall loaded!")
|
print("Heimdall loaded!")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
## Version: 3.8.15
|
## Version: 3.8.15
|
||||||
## Notes: Watches over areas and alerts when hostiles spotted
|
## Notes: Watches over areas and alerts when hostiles spotted
|
||||||
## Author: Cyka
|
## Author: Cyka
|
||||||
## SavedVariables: Heimdall_Data
|
## SavedVariables: Heimdall_Data, Heimdall_Achievements
|
||||||
|
|
||||||
#core
|
#core
|
||||||
_L.lua
|
_L.lua
|
||||||
@@ -33,4 +33,5 @@ Modules/Noter.lua
|
|||||||
Modules/NetworkMessenger.lua
|
Modules/NetworkMessenger.lua
|
||||||
Modules/StinkyCache.lua
|
Modules/StinkyCache.lua
|
||||||
Modules/Configurator.lua
|
Modules/Configurator.lua
|
||||||
|
Modules/AchievementSniffer.lua
|
||||||
Heimdall.lua
|
Heimdall.lua
|
||||||
|
27
Modules/AchievementSniffer.lua
Normal file
27
Modules/AchievementSniffer.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
local addonname, shared = ...
|
||||||
|
---@cast shared HeimdallShared
|
||||||
|
---@cast addonname string
|
||||||
|
local ModuleName = "AchievementSniffer"
|
||||||
|
|
||||||
|
local HeimdallRoot = "Interface\\AddOns\\Heimdall\\"
|
||||||
|
local TextureRoot = HeimdallRoot .. "Texture\\"
|
||||||
|
|
||||||
|
---@diagnostic disable-next-line: missing-fields
|
||||||
|
shared.AchievementSniffer = {}
|
||||||
|
function shared.AchievementSniffer.Init()
|
||||||
|
if Heimdall_Data.config.achievementSniffer.debug then
|
||||||
|
print(string.format("[%s] Module initialized", ModuleName))
|
||||||
|
end
|
||||||
|
|
||||||
|
local framePool = {}
|
||||||
|
for i = 1, 40 do
|
||||||
|
local frame = CreateFrame("Frame")
|
||||||
|
frame.custom = { busy = false }
|
||||||
|
local texture = frame:CreateTexture(nil, "ARTWORK")
|
||||||
|
texture:SetAllPoints(frame)
|
||||||
|
texture:SetTexture(TextureRoot .. Heimdall_Data.config.achievementSniffer.texture)
|
||||||
|
table.insert(framePool, frame)
|
||||||
|
end
|
||||||
|
|
||||||
|
print("[Heimdall] AchievementSniffer loaded")
|
||||||
|
end
|
@@ -571,13 +571,15 @@ function shared.Config.Init()
|
|||||||
configFrame:Add(debug, 2, 1)
|
configFrame:Add(debug, 2, 1)
|
||||||
|
|
||||||
local russian = nil
|
local russian = nil
|
||||||
local english = CreateBasicButton("HeimdallConfigEnglish", configFrame.frame, shared._L("english", Heimdall_Data.config.locale), function()
|
local english = CreateBasicButton("HeimdallConfigEnglish", configFrame.frame,
|
||||||
|
shared._L("english", Heimdall_Data.config.locale), function()
|
||||||
Heimdall_Data.config.locale = "en"
|
Heimdall_Data.config.locale = "en"
|
||||||
russian:UpdateColor(false)
|
russian:UpdateColor(false)
|
||||||
return Heimdall_Data.config.locale == "en"
|
return Heimdall_Data.config.locale == "en"
|
||||||
end)
|
end)
|
||||||
english:UpdateColor(Heimdall_Data.config.locale == "en")
|
english:UpdateColor(Heimdall_Data.config.locale == "en")
|
||||||
russian = CreateBasicButton("HeimdallConfigRussian", configFrame.frame, shared._L("russian", Heimdall_Data.config.locale), function()
|
russian = CreateBasicButton("HeimdallConfigRussian", configFrame.frame,
|
||||||
|
shared._L("russian", Heimdall_Data.config.locale), function()
|
||||||
Heimdall_Data.config.locale = "ru"
|
Heimdall_Data.config.locale = "ru"
|
||||||
english:UpdateColor(false)
|
english:UpdateColor(false)
|
||||||
return Heimdall_Data.config.locale == "ru"
|
return Heimdall_Data.config.locale == "ru"
|
||||||
@@ -1990,6 +1992,75 @@ function shared.Config.Init()
|
|||||||
networkMessengerConfigFrame:Add(interval, 2, 6)
|
networkMessengerConfigFrame:Add(interval, 2, 6)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- AchievementSniffer
|
||||||
|
do
|
||||||
|
local r, g, b, a = GetNextColor()
|
||||||
|
local achievementSnifferConfigFrame = GridFrame.new("HeimdallAchievementSnifferConfig",
|
||||||
|
UIParent, 12, 20)
|
||||||
|
achievementSnifferConfigFrame.frame:SetBackdropColor(r, g, b, 0.3)
|
||||||
|
configFrame:Add(achievementSnifferConfigFrame, 14, 3)
|
||||||
|
|
||||||
|
local title = CreateFancyText("HeimdallAchievementSnifferConfigTitle", achievementSnifferConfigFrame.frame,
|
||||||
|
shared._L("achievementSniffer", Heimdall_Data.config.locale),
|
||||||
|
{ r, g, b, a })
|
||||||
|
achievementSnifferConfigFrame:Add(title, 1, 8)
|
||||||
|
|
||||||
|
local debugButton = CreateBasicButton("HeimdallAchievementSnifferConfigDebugButton",
|
||||||
|
achievementSnifferConfigFrame.frame, shared._L("debug", Heimdall_Data.config.locale), function()
|
||||||
|
Heimdall_Data.config.achievementSniffer.debug = not Heimdall_Data.config.achievementSniffer.debug
|
||||||
|
return Heimdall_Data.config.achievementSniffer.debug
|
||||||
|
end)
|
||||||
|
debugButton:UpdateColor(Heimdall_Data.config.achievementSniffer.debug)
|
||||||
|
achievementSnifferConfigFrame:Add(debugButton, 1, 4)
|
||||||
|
|
||||||
|
local enableButton = CreateBasicButton("HeimdallAchievementSnifferConfigEnableButton",
|
||||||
|
achievementSnifferConfigFrame.frame, shared._L("enabled", Heimdall_Data.config.locale), function()
|
||||||
|
Heimdall_Data.config.achievementSniffer.enabled = not Heimdall_Data.config.achievementSniffer.enabled
|
||||||
|
return Heimdall_Data.config.achievementSniffer.enabled
|
||||||
|
end)
|
||||||
|
enableButton:UpdateColor(Heimdall_Data.config.achievementSniffer.enabled)
|
||||||
|
achievementSnifferConfigFrame:Add(enableButton, 2, 3)
|
||||||
|
|
||||||
|
local texture = CreateBasicSmallEditBox("HeimdallAchievementSnifferConfigTexture",
|
||||||
|
achievementSnifferConfigFrame.frame, shared._L("texture", Heimdall_Data.config.locale),
|
||||||
|
Heimdall_Data.config.achievementSniffer.texture,
|
||||||
|
function(self)
|
||||||
|
local text = self:GetText()
|
||||||
|
Heimdall_Data.config.achievementSniffer.texture = text
|
||||||
|
end)
|
||||||
|
achievementSnifferConfigFrame:Add(texture, 2, 3)
|
||||||
|
|
||||||
|
local offsetX = CreateBasicSmallEditBox("HeimdallAchievementSnifferConfigOffsetX",
|
||||||
|
achievementSnifferConfigFrame.frame, shared._L("offsetX", Heimdall_Data.config.locale),
|
||||||
|
tostring(Heimdall_Data.config.achievementSniffer.offsetX),
|
||||||
|
function(self)
|
||||||
|
local text = self:GetText()
|
||||||
|
if string.match(text, "%d+") then
|
||||||
|
Heimdall_Data.config.achievementSniffer.offsetX = tonumber(text)
|
||||||
|
print("Offset X set to", tostring(text))
|
||||||
|
else
|
||||||
|
print("Invalid offset X", text)
|
||||||
|
self:SetText(tostring(Heimdall_Data.config.achievementSniffer.offsetX))
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
achievementSnifferConfigFrame:Add(offsetX, 2, 3)
|
||||||
|
|
||||||
|
local offsetY = CreateBasicSmallEditBox("HeimdallAchievementSnifferConfigOffsetY",
|
||||||
|
achievementSnifferConfigFrame.frame, shared._L("offsetY", Heimdall_Data.config.locale),
|
||||||
|
tostring(Heimdall_Data.config.achievementSniffer.offsetY),
|
||||||
|
function(self)
|
||||||
|
local text = self:GetText()
|
||||||
|
if string.match(text, "%d+") then
|
||||||
|
Heimdall_Data.config.achievementSniffer.offsetY = tonumber(text)
|
||||||
|
print("Offset Y set to", tostring(text))
|
||||||
|
else
|
||||||
|
print("Invalid offset Y", text)
|
||||||
|
self:SetText(tostring(Heimdall_Data.config.achievementSniffer.offsetY))
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
achievementSnifferConfigFrame:Add(offsetY, 2, 3)
|
||||||
|
end
|
||||||
|
|
||||||
-- Addon prefix
|
-- Addon prefix
|
||||||
do
|
do
|
||||||
local r, g, b, a = GetNextColor()
|
local r, g, b, a = GetNextColor()
|
||||||
|
Reference in New Issue
Block a user