florian.berthold d422ad36b8 fix(compat): convert FileDataID Set*Texture() calls to string paths
WoW 3.3.5 / CoA does not support numeric FileDataIDs in Set(*)Texture —
only string paths. Upstream Ace3 uses FDIDs in 42 places across
AceGUI-3.0/widgets and AceConfigDialog-3.0, which silently fail and
render as red placeholders (visible as solid-red squares where color
swatches, checkboxes, and window chrome should be).

Substituted each FDID with the string path documented in the trailing
comment. Files touched:

  AceGUI-3.0/widgets/AceGUIContainer-Frame.lua             (5)
  AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua         (4)
  AceGUI-3.0/widgets/AceGUIContainer-Window.lua           (12)
  AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua             (9)
  AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua          (3)
  AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua       (3)
  AceGUI-3.0/widgets/AceGUIWidget-Heading.lua              (2)
  AceGUI-3.0/widgets/AceGUIWidget-Icon.lua                 (1)
  AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua (3)

Documented as patch #1 in README.md.
2026-05-23 14:03:09 +02:00

coa-ace3

Canonical Ace3 bundle for the CoA Guild 'Exiles' addon forks.

Lifted from upstream WoWUIDev/Ace3 at commit 52e5f2c (2026-05-17), with a single CoA-compat patch on top (see below). Every fork in the Exiles org should converge on this bundle so the runtime LibStub resolution is predictable and addons can't quietly regress when one of them is disabled.

CoA-compat patches on top of upstream

# Issue Fix
1 Upstream Ace3 calls Texture:Set*Texture(<FileDataID>) with numeric FileDataIDs in 42 places across AceGUI-3.0/widgets/* and AceConfigDialog-3.0. FileDataIDs are a retail-only API (post WoD/Legion). On the WoW 3.3.5-based CoA client, SetTexture only accepts string paths — passing a number silently fails and the engine renders a red placeholder. Symptom: solid-red squares where color swatches / checkboxes / window chrome should be. Each FDID call was substituted with the string path that already lived in the trailing comment, e.g. colorSwatch:SetTexture(130939)colorSwatch:SetTexture("Interface\\ChatFrame\\ChatFrameColorSwatch").

Versions

Library MINOR
LibStub 2
CallbackHandler-1.0 8
AceAddon-3.0 13
AceEvent-3.0 4
AceTimer-3.0 17
AceHook-3.0 9
AceDB-3.0 33
AceDBOptions-3.0 15
AceConfig-3.0 3
AceConfigRegistry-3.0 22
AceConfigCmd-3.0 14
AceConfigDialog-3.0 92
AceGUI-3.0 41
AceLocale-3.0 6
AceConsole-3.0 7
AceComm-3.0 14
AceSerializer-3.0 5
AceBucket-3.0 4
AceTab-3.0 3

AceTimer-3.0 calls C_Timer.After at load — confirmed available on the CoA Beta client.

How to consume

Option 1: source bundle (preferred for forks)

Each Exiles/coa-* fork should rsync the libs it embeds from this bundle, so the diff is uniform:

rsync -a /path/to/coa-ace3/AceAddon-3.0/  /path/to/coa-foo/Libs/AceAddon-3.0/

Or replace the entire Libs/Ace3/ tree in one go.

Option 2: standalone addon

Drop the contents (except README.md / .gitattributes) into Interface/AddOns/Ace3/ and the loadable Ace3.toc will register every library at top priority via LibStub. Useful for non-bundling forks (chatter, sexymap, clique, …) to get Ace without each one carrying its own copy.

Sync policy

Bumping upstream means a single commit here, then a sweep across every fork that embeds these libs. Note the new upstream commit in the README's commit-pin line above, and re-apply the CoA-compat patches listed above against the new revision (the FDID one is mechanical — see /tmp/fix_fdid.py history). Keep patches minimal and documented in this README; prefer fixing them upstream where reasonable.

S
Description
Canonical Ace3 bundle for Exiles addon forks (pinned to WoWUIDev/Ace3 master).
Readme 296 KiB
52e5f2c-coa.2 Latest
2026-05-29 18:23:32 +00:00
Languages
Lua 98.3%
Python 1.2%
Shell 0.5%