Restructure modules with per-module addon subdirs

- Each module (outline, interact, screenshot) now has its own addon/
  subdir with .toc, .lua, and Bindings.xml
- Core WeirdUtils addon lives in src/core/addon/
- build.zig supports compile-time feature gating via -D options
- main.zig uses build_options for conditional imports and addon embedding
- Module addons only load when their module is compiled in
- 'zig build all-variants' produces full.dll + 3 single-module DLLs
This commit is contained in:
MarcelineVQ
2026-02-25 19:15:08 -08:00
parent fbfe1cb545
commit cd7e585412
17 changed files with 381 additions and 181 deletions
+46
View File
@@ -0,0 +1,46 @@
-- Screenshot addon (embedded in DLL, loaded from memory)
-- Part of WeirdUtils - only loaded when screenshot module is compiled
SCREENSHOT_VERSION = 1
BINDING_HEADER_SCREENSHOT = "Screenshot"
local frame = CreateFrame("Frame")
frame:RegisterEvent("ADDON_LOADED")
frame:RegisterEvent("PLAYER_LOGIN")
frame:SetScript("OnEvent", function()
if event == "PLAYER_LOGIN" then
local on, level = WeirdUtilsScreenshot()
DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00Screenshot|r v" .. SCREENSHOT_VERSION .. " loaded (" .. (on and "enabled" or "disabled") .. ", quality " .. level .. ")")
end
end)
SLASH_SCREENSHOT1 = "/ss"
SLASH_SCREENSHOT2 = "/screenshot"
SlashCmdList["SCREENSHOT"] = function(msg)
msg = string.lower(msg or "")
if msg == "" or msg == "status" then
local on, level = WeirdUtilsScreenshot()
DEFAULT_CHAT_FRAME:AddMessage("Screenshots: " .. (on and "|cff00ff00ON|r" or "|cffff0000OFF|r") .. " (quality " .. level .. ")")
elseif msg == "on" or msg == "enable" then
WeirdUtilsScreenshot("enable")
DEFAULT_CHAT_FRAME:AddMessage("Screenshots |cff00ff00enabled|r")
elseif msg == "off" or msg == "disable" then
WeirdUtilsScreenshot("disable")
DEFAULT_CHAT_FRAME:AddMessage("Screenshots |cffff0000disabled|r")
elseif tonumber(msg) then
local q = tonumber(msg)
if q >= 0 and q <= 9 then
WeirdUtilsScreenshot("quality", q)
DEFAULT_CHAT_FRAME:AddMessage("Screenshot quality: " .. q)
else
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000Quality must be 0-9|r")
end
else
DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00Screenshot|r commands:")
DEFAULT_CHAT_FRAME:AddMessage(" /ss - Show status")
DEFAULT_CHAT_FRAME:AddMessage(" /ss on|off - Enable/disable PNG screenshots")
DEFAULT_CHAT_FRAME:AddMessage(" /ss 0-9 - Set compression level (0=fast, 9=small)")
end
end