プロジェクトディレクトリ構成
pfUI のソースコードは、機能ごとにモジュール化されたディレクトリ構造を採用しています。主要なフォルダの役割は以下の通りです。
pfUI/
├── addons/
│ └── pfUI/
│ ├── api/ (外部 API 連携定義)
│ ├── core/ (メインロジックおよび初期化)
│ ├── modules/ (機能別モジュール)
│ ├── skins/ (UI テーマ定義)
│ ├── thirdparty/ (外部ライブラリ)
│ ├── locale/ (多言語対応ファイル)
│ ├── media/ (画像・音声リソース)
│ ├── pfUI.toc (マニフェストファイル)
│ └── README.md (プロジェクト概要)
├── .gitignore
├── LICENSE
└── README.md
addons/pfUI/core/ には起動処理が含まれ、modules/ には個別の機能実装が配置されます。skins/ ディレクトリにより、ユーザーはインターフェースの見た目をカスタマイズ可能です。
マニフェストファイル (TOC) の仕様
World of Warcraft アドオンを読み込むために、pfUI.toc ファイルがメタデータを定義します。インターフェースバージョンや依存関係はここで宣言されます。
## Interface: 11302
## Title: pfUI
## Author: Shagu
## Version: v3.5.0
## Notes: A complete user interface replacement for World of Warcraft: Vanilla & TBC
## SavedVariables: pfUI_profiles, pfUI_config, pfUI_cache, pfUI_playerDB, pfUI_globalDB
## OptionalDeps: LibSharedMedia-3.0, LibStub, CallbackHandler-1.0
core/pfUI.lua
core/api.lua
core/init.lua
...
Interface フィールドはクライアントバージョンとの互換性を制御します。SavedVariables には、セッション間でpersist される変数名を列挙します。OptionalDeps は、存在しない場合でもエラーとならない依存ライブラリを指定します。
設定データと SavedVariables の管理
ユーザーの設定および状態データは、ゲームクライアントの SavedVariables 機構を通じて保存されます。実体は以下のパスに生成されます。
WTF/Account/<AccountName>/SavedVariables/pfUI.lua
主要な保存変数には以下の役割があります。
- pfUI_config: 設定オプションの全体
- pfUI_profiles: プロファイル別設定
- pfUI_globalDB: グローバルデータベース
- pfUI_playerDB: プレイヤー固有データ
直接ファイル編集も可能ですが、整合性を保つためインゲーム設定メニューからの操作が推奨されます。