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 StinkyCache InitTable
|
||||
---@field Configurator InitTable
|
||||
---@field AchievementSniffer InitTable
|
||||
|
||||
--- Config ---
|
||||
---@class HeimdallConfig
|
||||
@@ -82,6 +83,7 @@ local function init()
|
||||
---@field networkMessenger HeimdallNetworkMessengerConfig
|
||||
---@field configurator HeimdallConfiguratorConfig
|
||||
---@field stinkyCache HeimdallStinkyCacheConfig
|
||||
---@field achievementSniffer HeimdallAchievementSnifferConfig
|
||||
---@field whisperNotify table<string, string>
|
||||
---@field addonPrefix string
|
||||
---@field stinkies table<string, boolean>
|
||||
@@ -255,6 +257,13 @@ local function init()
|
||||
---@field commander string
|
||||
---@field ttl number
|
||||
|
||||
---@class HeimdallAchievementSnifferConfig
|
||||
---@field enabled boolean
|
||||
---@field debug boolean
|
||||
---@field texture string
|
||||
---@field offsetX number
|
||||
---@field offsetY number
|
||||
|
||||
--- Data ---
|
||||
---@class HeimdallMessengerData
|
||||
---@field queue table<string, Message>
|
||||
@@ -505,6 +514,13 @@ local function init()
|
||||
commander = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "commander" }, "Heimdállr"),
|
||||
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"),
|
||||
channelLocale = shared.GetOrDefault(Heimdall_Data, { "config", "channelLocale" }, {}),
|
||||
}
|
||||
@@ -685,6 +701,7 @@ local function init()
|
||||
shared.NetworkMessenger.Init()
|
||||
shared.Configurator.Init()
|
||||
shared.StinkyCache.Init()
|
||||
shared.AchievementSniffer.Init()
|
||||
print("Heimdall loaded!")
|
||||
end
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
## Version: 3.8.15
|
||||
## Notes: Watches over areas and alerts when hostiles spotted
|
||||
## Author: Cyka
|
||||
## SavedVariables: Heimdall_Data
|
||||
## SavedVariables: Heimdall_Data, Heimdall_Achievements
|
||||
|
||||
#core
|
||||
_L.lua
|
||||
@@ -33,4 +33,5 @@ Modules/Noter.lua
|
||||
Modules/NetworkMessenger.lua
|
||||
Modules/StinkyCache.lua
|
||||
Modules/Configurator.lua
|
||||
Modules/AchievementSniffer.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)
|
||||
|
||||
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"
|
||||
russian:UpdateColor(false)
|
||||
return Heimdall_Data.config.locale == "en"
|
||||
end)
|
||||
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"
|
||||
english:UpdateColor(false)
|
||||
return Heimdall_Data.config.locale == "ru"
|
||||
@@ -1990,6 +1992,75 @@ function shared.Config.Init()
|
||||
networkMessengerConfigFrame:Add(interval, 2, 6)
|
||||
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
|
||||
do
|
||||
local r, g, b, a = GetNextColor()
|
||||
|
Reference in New Issue
Block a user