Refactor whole addon to follow best practices
This commit is contained in:
parent
43fc252902
commit
414aef6924
31 changed files with 7843 additions and 29579 deletions
120
CzechQuests.lua
120
CzechQuests.lua
|
@ -1,86 +1,52 @@
|
|||
-- Namespace
|
||||
CzechQuestsAddon = {};
|
||||
CzechQuestsAddon.fontPath = "Interface\\AddOns\\CzechQuests\\Assets\\Fonts\\"
|
||||
local _, addon = ...
|
||||
|
||||
-- Define data
|
||||
CzechQuestsAddon.data = {};
|
||||
CzechQuestsAddon.data.quest = {};
|
||||
CzechQuestsAddon.data.item = {};
|
||||
CzechQuestsAddon.data.speech = {}
|
||||
-- Prepare API object
|
||||
addon.API = {}
|
||||
|
||||
addon.data = {};
|
||||
addon.data.quest = {};
|
||||
addon.data.item = {};
|
||||
addon.data.speech = {}
|
||||
|
||||
-- Expose object as global for other addon integration
|
||||
CzechQuestsAddon = {}
|
||||
CzechQuestsAddon.data = addon.data
|
||||
|
||||
local function InitStore()
|
||||
-- Init Store
|
||||
CzechQuestsAddon_Store = CzechQuestsAddon_Store or {}
|
||||
CzechQuestsAddon_Store.config = CzechQuestsAddon_Store.config or {}
|
||||
|
||||
-- General Settings
|
||||
CzechQuestsAddon_Store.config.DEBUG_MODE = CzechQuestsAddon_Store.config.DEBUG_MODE or false
|
||||
|
||||
-- Quest Settings
|
||||
CzechQuestsAddon_Store.config.QUEST_ENABLED = CzechQuestsAddon_Store.config.QUEST_ENABLED or true
|
||||
CzechQuestsAddon_Store.config.QUEST_DARK_MODE = CzechQuestsAddon_Store.config.QUEST_DARK_MODE or false
|
||||
CzechQuestsAddon_Store.config.QUEST_HEADER_FONT_SIZE = CzechQuestsAddon_Store.config.QUEST_HEADER_FONT_SIZE or 18
|
||||
CzechQuestsAddon_Store.config.QUEST_TEXT_FONT_SIZE = CzechQuestsAddon_Store.config.QUEST_TEXT_FONT_SIZE or 14
|
||||
CzechQuestsAddon_Store.config.QUEST_HEADER_FONT_NAME = CzechQuestsAddon_Store.config.QUEST_HEADER_FONT_NAME or 'morpheus_cz.ttf'
|
||||
CzechQuestsAddon_Store.config.QUEST_TEXT_FONT_NAME = CzechQuestsAddon_Store.config.QUEST_TEXT_FONT_NAME or 'frizquadratatt_cz.ttf'
|
||||
CzechQuestsAddon_Store.config.QUEST_TEXTURE_ALPHA = CzechQuestsAddon_Store.config.QUEST_TEXTURE_ALPHA or 80
|
||||
CzechQuestsAddon_Store.config.QUEST_TEXTURE_ALPHA_ONLY_MOVING = CzechQuestsAddon_Store.config.QUEST_TEXTURE_ALPHA_ONLY_MOVING or true
|
||||
|
||||
-- Speech Settings
|
||||
CzechQuestsAddon_Store.config.SPEECH_ENABLED = CzechQuestsAddon_Store.config.SPEECH_ENABLED or true
|
||||
CzechQuestsAddon_Store.config.SPEECH_TEXT_FONT_SIZE = CzechQuestsAddon_Store.config.SPEECH_TEXT_FONT_SIZE or 15
|
||||
CzechQuestsAddon_Store.config.SPEECH_TEXT_FONT_NAME = CzechQuestsAddon_Store.config.SPEECH_TEXT_FONT_NAME or 'frizquadratatt_cz.ttf'
|
||||
CzechQuestsAddon_Store.config.SPEECH_FRAME_WIDTH = CzechQuestsAddon_Store.config.SPEECH_FRAME_WIDTH or 320
|
||||
CzechQuestsAddon_Store.config.SPEECH_ORIGINAL_WHEN_MISSING = CzechQuestsAddon_Store.config.SPEECH_ORIGINAL_WHEN_MISSING or false
|
||||
CzechQuestsAddon_Store.config.SPEECH_FRAME_POSITION = CzechQuestsAddon_Store.config.SPEECH_FRAME_POSITION or { x = 0, y = 0}
|
||||
end
|
||||
|
||||
-- Event handler frame
|
||||
local frame = CreateFrame("Frame")
|
||||
|
||||
-- OnEvent function for event processing
|
||||
local function OnEvent(self, event, addonName, ...)
|
||||
if event == "ADDON_LOADED" and addonName == 'CzechQuests' then
|
||||
-- Initialize the SavedVariables if it doesn't exist
|
||||
if not CzechQuestsAddon_Store then
|
||||
CzechQuestsAddon_Store = {}
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config then
|
||||
CzechQuestsAddon_Store.config = {}
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.DEBUG_MODE then
|
||||
CzechQuestsAddon_Store.config.DEBUG_MODE = false;
|
||||
end
|
||||
|
||||
-- Quests
|
||||
if CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_ENABLED == nil then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_ENABLED = true;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_DARK_MODE then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_DARK_MODE = false;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE = 18;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE = 16;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE = 14;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY = 'morpheus_cz.ttf';
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY = 'frizquadratatt_cz.ttf';
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA = 80;
|
||||
end
|
||||
if CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA_ONLY_MOVING == nil then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA_ONLY_MOVING = true;
|
||||
end
|
||||
|
||||
-- Speech
|
||||
if CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_ENABLED == nil then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_ENABLED = true;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE = 15;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY = 'frizquadratatt_cz.ttf';
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH = 320;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_ORIGINAL_WHEN_MISSING then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_ORIGINAL_WHEN_MISSING = false;
|
||||
end
|
||||
if not CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_POSITION then
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_POSITION = { x = 0, y = 0}
|
||||
end
|
||||
|
||||
-- Initialize settings
|
||||
CzechQuestsAddon:InitializeSettings()
|
||||
|
||||
-- Initialize Quests
|
||||
CzechQuestsAddon:InitializeTranslations()
|
||||
|
||||
-- Unregister the ADDON_LOADED event after handling it
|
||||
InitStore()
|
||||
addon.API.InitOptions()
|
||||
addon.API.InitQuests()
|
||||
addon.API.InitSpeeches()
|
||||
self:UnregisterEvent("ADDON_LOADED")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue