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 列舉描述。導覽用的目錄/檔案項由 MapleDataEntryMapleDataDirectoryEntryMapleDataFileEntry 組成; 影像資源則以延遲載入的 MapleCanvas 包裝 PNG。MapleDataTool 提供一組靜態 型別化擷取工具(getInt/getString/getPoint/getImage…),含預設值 與字串轉數值的相容處理。

本 package 為唯讀資料來源,餵給 MapleItemInformationProviderMapleLifeFactorySkillFactory 等於 server.Start 啟動時載入的各遊戲資料 Factory。

  • Class
    Description
    WZ 資料樹中 canvas 節點所對應的點陣圖影像容器。
    WZ 遊戲資料樹中的單一節點,封裝從 XML 解析出的資料與子節點存取。
     
    WZ 資料樹中所有實體(節點、目錄、檔案項目)的共同介面。
     
    WZ 資料樹目錄下的單一 .img 檔案項目的元資料載體。
    單一 WZ 根目錄(如 CharacterMapItem)的資料提供者。
    WZ 遊戲資料提供者的工廠與快取管理器,是整個 WZ 讀取層的唯一入口。
    WZ 資料節點的型別安全讀取工具類別,提供從 MapleData 節點萃取各種 Java 型別值的靜態方法。
    WZ 資料節點的值型別枚舉,對應 XML 元素名稱與原始 WZ 二進位格式中的型別代碼。