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
+11
View File
@@ -0,0 +1,11 @@
<Bindings>
<Binding name="Interact" header="INTERACT">
InteractNearest(0)
</Binding>
<Binding name="Interact (auto-loot)">
InteractNearest(1)
</Binding>
<Binding name="Loot All Corpses">
LootAllCorpses()
</Binding>
</Bindings>
+31
View File
@@ -0,0 +1,31 @@
-- Interact addon (embedded in DLL, loaded from memory)
-- Part of WeirdUtils - only loaded when interact module is compiled
INTERACT_VERSION = 1
BINDING_HEADER_INTERACT = "Interact"
local frame = CreateFrame("Frame")
frame:RegisterEvent("ADDON_LOADED")
frame:RegisterEvent("PLAYER_LOGIN")
frame:SetScript("OnEvent", function()
if event == "PLAYER_LOGIN" then
DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00Interact|r v" .. INTERACT_VERSION .. " loaded")
end
end)
SLASH_INTERACT1 = "/interact"
SlashCmdList["INTERACT"] = function(msg)
msg = string.lower(msg or "")
if msg == "" or msg == "help" then
DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00Interact|r commands:")
DEFAULT_CHAT_FRAME:AddMessage(" /interact - Show this help")
DEFAULT_CHAT_FRAME:AddMessage(" Key bind: Interact - Interact with nearest NPC/object")
DEFAULT_CHAT_FRAME:AddMessage(" Key bind: Interact (auto-loot) - Interact and auto-loot")
DEFAULT_CHAT_FRAME:AddMessage(" Key bind: Loot All Corpses - Loot all nearby corpses")
DEFAULT_CHAT_FRAME:AddMessage(" /run InteractNearest(0) - Interact without loot")
DEFAULT_CHAT_FRAME:AddMessage(" /run InteractNearest(1) - Interact with auto-loot")
DEFAULT_CHAT_FRAME:AddMessage(" /run LootAllCorpses() - Loot all nearby corpses")
end
end
+8
View File
@@ -0,0 +1,8 @@
## Interface: 11200
## Title: Interact
## Notes: Nearest NPC/object interaction and bulk looting
## Version: 1.0
## Dependencies: WeirdUtils
Interact.lua
Bindings.xml