Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions DevForge/Core/Compat.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
local _, DF = ...

-- ============================================================================
-- Flavor Detection
-- ============================================================================
DF.IsRetail = (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE)
DF.IsClassicEra = (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC)
DF.IsClassic = not DF.IsRetail

-- ============================================================================
-- C_AddOns polyfill (Retail 11.0+ namespace; Classic has legacy globals)
-- ============================================================================
if not C_AddOns then
C_AddOns = {
GetNumAddOns = GetNumAddOns,
GetAddOnInfo = GetAddOnInfo,
IsAddOnLoaded = IsAddOnLoaded,
LoadAddOn = LoadAddOn,
GetAddOnMetadata = GetAddOnMetadata,
}
end

-- ============================================================================
-- HelpTip stub (Retail-only tutorial tooltip API; used in MainWindow.lua)
-- ============================================================================
if not HelpTip then
HelpTip = {
ButtonStyle = { GotIt = 1 },
Point = { BottomEdgeCenter = 1 },
Alignment = { Center = 1 },
Show = function() end,
Hide = function() end,
IsShowing = function() return false end,
}
end
6 changes: 5 additions & 1 deletion DevForge/Core/Constants.lua
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,12 @@ DF.Layout = {
bottomCollapseH = 20,
}

DF.IsRetail = DF.IsRetail ~= nil and DF.IsRetail or (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE)
DF.IsClassicEra = DF.IsClassicEra ~= nil and DF.IsClassicEra or (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC)
DF.IsClassic = DF.IsClassic ~= nil and DF.IsClassic or not DF.IsRetail

DF.ADDON_NAME = "DevForge"
DF.ADDON_VERSION = "1.0.0"
DF.ADDON_VERSION = C_AddOns.GetAddOnMetadata("DevForge", "Version") or "unknown"
DF.MAX_HISTORY = 200
DF.PRETTY_DEPTH = 3
DF.DEBOUNCE_MS = 200
25 changes: 21 additions & 4 deletions DevForge/DevForge.toc
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
## Interface: 120000
## Interface: 120005, 50503, 40402
## Title: DevForge
## Notes: In-game Lua IDE - Console, Inspector, API Browser, Editor, Events, Errors, Performance, Macros, Textures
## Author: DevForge
## Version: 1.0.0
## Notes: In-game dev toolkit: inspector, editor, console, events, errors, APIs, textures, sounds, performance
## Author: hatdragon
## Contributors:
## Version: r1.0.13

## SavedVariables: DevForgeDB
## IconTexture: Interface\Icons\INV_Gizmo_02
## X-BugGrabber-Display: DevForge

## Category: Development Tools
## Category-deDE: Entwicklungstools
## Category-esES: Herramientas de Desarrollo
Expand All @@ -18,12 +22,18 @@
## Category-zhTW: 開發工具
## X-Category: Development Tools

## X-Curse-Project-ID: 1453381
## X-Wago-ID: BKpgXv6E
## X-Website: https://hatdragon.github.io/DevForge/
## X-Source: https://github.com/hatdragon/DevForge

# Libraries
Libs\LibStub\LibStub.lua
Libs\LibDeflate\LibDeflate.lua
Libs\LibSerialize\LibSerialize.lua

# Core
Core\Compat.lua
Core\Constants.lua
Core\Init.lua
Core\SecretGuard.lua
Expand Down Expand Up @@ -125,3 +135,10 @@ Modules\TextureBrowser\TextureIconData.lua
Modules\TextureBrowser\TextureRuntime.lua
Modules\TextureBrowser\TextureIndex.lua
Modules\TextureBrowser\TextureBrowser.lua

# Sound Browser Module
Modules\SoundBrowser\SoundKitData.lua
Modules\SoundBrowser\SoundFileData.lua
Modules\SoundBrowser\SoundRuntime.lua
Modules\SoundBrowser\SoundIndex.lua
Modules\SoundBrowser\SoundBrowser.lua
131 changes: 131 additions & 0 deletions DevForge/DevForge_Vanilla.toc
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
## Interface: 11508
## Title: DevForge
## Notes: In-game dev toolkit: inspector, editor, console, events, errors, APIs, textures, sounds, performance
## Author: hatdragon
## Contributors:
## Version: r1.0.13

## SavedVariables: DevForgeDB
## IconTexture: Interface\Icons\INV_Gizmo_02
## X-BugGrabber-Display: DevForge

## Category: Development Tools
## X-Category: Development Tools

## X-Curse-Project-ID: 1453381
## X-Wago-ID: BKpgXv6E
## X-Website: https://hatdragon.github.io/DevForge/
## X-Source: https://github.com/hatdragon/DevForge

# Libraries
Libs\LibStub\LibStub.lua
Libs\LibDeflate\LibDeflate.lua
Libs\LibSerialize\LibSerialize.lua

# Core
Core\Compat.lua
Core\Constants.lua
Core\Init.lua
Core\SecretGuard.lua
Core\Util.lua
Core\EventBus.lua
Core\ModuleSystem.lua

# SavedVariables
SavedVariables\Schema.lua

# UI Framework
UI\Theme.lua
UI\Widgets\Button.lua
UI\Widgets\ScrollPane.lua
UI\Widgets\SearchBox.lua
UI\Widgets\CodeEditBox.lua
UI\Widgets\TreeView.lua
UI\Widgets\PropertyGrid.lua
UI\Widgets\SplitPane.lua
UI\Widgets\DropDown.lua
UI\Widgets\CopyDialog.lua
UI\ActivityBar.lua
UI\Sidebar.lua
UI\BottomPanel.lua
UI\MainWindow.lua

# Cross-module Integration
Core\IntegrationBus.lua

# Error Handler Module
Modules\ErrorHandler\ErrorHandler.lua
Modules\ErrorHandler\ErrorList.lua
Modules\ErrorHandler\ErrorDetail.lua
Modules\ErrorHandler\ErrorMonitor.lua

# Console Module
Modules\Console\ConsoleHistory.lua
Modules\Console\ConsoleExec.lua
Modules\Console\ConsoleOutput.lua
Modules\Console\ConsoleInput.lua
Modules\Console\Console.lua

# Inspector Module
Modules\Inspector\InspectorHighlight.lua
Modules\Inspector\InspectorPicker.lua
Modules\Inspector\InspectorTree.lua
Modules\Inspector\InspectorProps.lua
Modules\Inspector\InspectorGrid.lua
Modules\Inspector\Inspector.lua

# API Browser Module
Modules\APIBrowser\APIBrowserData.lua
Modules\APIBrowser\APIBrowserSearch.lua
Modules\APIBrowser\APIBrowserList.lua
Modules\APIBrowser\APIBrowserDetail.lua
Modules\APIBrowser\APIBrowser.lua

# Table Viewer Module
Modules\TableViewer\TableDump.lua
Modules\TableViewer\TableViewer.lua

# CVar Viewer Module
Modules\CVarViewer\CVarData.lua
Modules\CVarViewer\CVarViewer.lua

# Snippet Editor Module
Modules\SnippetEditor\SnippetStore.lua
Modules\SnippetEditor\SnippetList.lua
Modules\SnippetEditor\TemplateData.lua
Modules\SnippetEditor\TemplateBrowser.lua
Modules\SnippetEditor\FrameBuilder.lua
Modules\SnippetEditor\AddonScaffold.lua
Modules\SnippetEditor\SnippetEditor.lua

# WA Importer Module (Retail only, omitted on Classic Era)

# Event Monitor Module
Modules\EventMonitor\EventMonitorLog.lua
Modules\EventMonitor\EventIndex.lua
Modules\EventMonitor\EventMonitorFilter.lua
Modules\EventMonitor\EventMonitor.lua

# Performance Module
Modules\Performance\PerfData.lua
Modules\Performance\PerfTable.lua
Modules\Performance\PerfMonitor.lua

# Macro Editor Module
Modules\MacroEditor\MacroStore.lua
Modules\MacroEditor\MacroList.lua
Modules\MacroEditor\MacroEditor.lua

# Texture Browser Module
Modules\TextureBrowser\TextureAtlasData.lua
Modules\TextureBrowser\TextureIconData.lua
Modules\TextureBrowser\TextureRuntime.lua
Modules\TextureBrowser\TextureIndex.lua
Modules\TextureBrowser\TextureBrowser.lua

# Sound Browser Module
Modules\SoundBrowser\SoundKitData.lua
Modules\SoundBrowser\SoundFileData.lua
Modules\SoundBrowser\SoundRuntime.lua
Modules\SoundBrowser\SoundIndex.lua
Modules\SoundBrowser\SoundBrowser.lua
14 changes: 12 additions & 2 deletions DevForge/Modules/SnippetEditor/AddonScaffold.lua
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ local function GenerateTOC(state)
local function add(s) lines[#lines + 1] = s end

local name = state.addonName ~= "" and state.addonName or "MyAddon"
add("## Interface: 120000")
local interfaceVersion = DF.IsRetail and "120000, 120001" or DF.IsClassicEra and "11508" or "50503"
add("## Interface: " .. interfaceVersion)
add("## Title: " .. name)
add("## Notes: " .. (state.description ~= "" and state.description or name))
add("## Author: " .. (state.author ~= "" and state.author or "Unknown"))
Expand Down Expand Up @@ -239,6 +240,13 @@ end
local function GetDialog()
if dialog then return dialog end

-- Clean up stale named frame from previous /reload
local stale = _G["DevForgeAddonScaffold"]
if stale then
stale:Hide(); stale:EnableMouse(false)
for _, c in pairs({stale:GetChildren()}) do c:Hide(); c:EnableMouse(false) end
end

local frame = CreateFrame("Frame", "DevForgeAddonScaffold", UIParent, "BackdropTemplate")
frame:SetFrameStrata("FULLSCREEN_DIALOG")
frame:SetSize(480, 480)
Expand All @@ -248,7 +256,9 @@ local function GetDialog()
frame:EnableMouse(true)
frame:Hide()
DF.Theme:ApplyDialogChrome(frame)
tinsert(UISpecialFrames, "DevForgeAddonScaffold")
if not tContains(UISpecialFrames, "DevForgeAddonScaffold") then
tinsert(UISpecialFrames, "DevForgeAddonScaffold")
end

-- Title bar
local titleBar = CreateFrame("Frame", nil, frame)
Expand Down
Loading