Package provider
package provider
WZ 遊戲資料的唯讀樹狀存取層:將
wz/ 目錄下解出的 MapleStory 資料以樹節點呈現並提供型別化讀取。
進入點為 MapleDataProviderFactory,其依系統屬性 net.sf.odinms.wzpath
(預設 wz) 定位資料根目錄,並以 ConcurrentHashMap 快取
MapleDataProvider 實例(配合啟動時多執行緒平行載入)。每個 MapleDataProvider
掃描目錄建出導覽樹,並以 MapleData.getData() 將指定路徑的 .img/.xml
解析為 MapleData 節點。
MapleData 是核心樹節點(實作 MapleDataEntity 並可 Iterable 走訪子節點),
底層由 W3C DOM 支撐;其值型別由 MapleDataType 列舉描述。導覽用的目錄/檔案項由
MapleDataEntry、MapleDataDirectoryEntry 與 MapleDataFileEntry 組成;
影像資源則以延遲載入的 MapleCanvas 包裝 PNG。MapleDataTool 提供一組靜態
型別化擷取工具(getInt/getString/getPoint/getImage…),含預設值
與字串轉數值的相容處理。
本 package 為唯讀資料來源,餵給 MapleItemInformationProvider、
MapleLifeFactory、SkillFactory 等於 server.Start
啟動時載入的各遊戲資料 Factory。
-
ClassDescriptionWZ 資料樹中
canvas節點所對應的點陣圖影像容器。WZ 遊戲資料樹中的單一節點,封裝從 XML 解析出的資料與子節點存取。WZ 資料樹中所有實體(節點、目錄、檔案項目)的共同介面。WZ 資料樹目錄下的單一.img檔案項目的元資料載體。單一 WZ 根目錄(如Character、Map、Item)的資料提供者。WZ 遊戲資料提供者的工廠與快取管理器,是整個 WZ 讀取層的唯一入口。WZ 資料節點的型別安全讀取工具類別,提供從MapleData節點萃取各種 Java 型別值的靜態方法。WZ 資料節點的值型別枚舉,對應 XML 元素名稱與原始 WZ 二進位格式中的型別代碼。