Class MapleMapFactory
java.lang.Object
server.maps.MapleMapFactory
依頻道(channel)隔離的地圖工廠,負責從 WZ 資料懶載入並快取
MapleMap 實體。
每個 ChannelServer 持有一個本類別實體(透過頻道 ID 識別)。
getMap(int) 在首次取用時以 MapleDataProviderFactory 讀取
/Map.wz 與 /String.wz,解析地形(MapleFoothold)、
傳送門(MaplePortal)、NPC、怪物生成點、反應爐、節點路徑等 WZ 資料,
建立完整的 MapleMap 並存入內部 maps 快取(ReentrantLock 保護),
後續呼叫直接回傳快取結果,無需重複解析。
另提供 instanceMap 用於活動副本地圖(獨立不共享)的管理。
本類別是整個 server.maps 子系統的主要進入點,所有腳本與伺服器端邏輯
皆透過 c.getClient().getChannelServer().getMapFactory().getMap(id) 取得地圖。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCreateInstanceMap(int mapid, boolean respawns, boolean npcs, boolean reactors, int instanceid) booleandestroyMap(int mapid) booleandestroyMap(int mapid, boolean Remove) getInstanceMap(int instanceid) intfinal MapleMapgetMap(int mapid) final MapleMapgetMap(int mapid, boolean respawns, boolean npcs) final MapleMapgetMap(int mapid, boolean respawns, boolean npcs, boolean reactors) voidHealMap(int mapid) booleanisInstanceMapLoaded(int instanceid) booleanisMapLoaded(int mapId) voidremoveInstanceMap(int instanceid) voidremoveMap(int instanceid) voidsetChannel(int channel)
-
Constructor Details
-
MapleMapFactory
public MapleMapFactory(int channel)
-
-
Method Details
-
getMap
-
getMap
-
getMap
-
getInstanceMap
-
removeInstanceMap
public void removeInstanceMap(int instanceid) -
removeMap
public void removeMap(int instanceid) -
CreateInstanceMap
public MapleMap CreateInstanceMap(int mapid, boolean respawns, boolean npcs, boolean reactors, int instanceid) -
getLoadedMaps
public int getLoadedMaps() -
isMapLoaded
public boolean isMapLoaded(int mapId) -
isInstanceMapLoaded
public boolean isInstanceMapLoaded(int instanceid) -
clearLoadedMap
public void clearLoadedMap() -
getAllLoadedMaps
-
getAllMapThreadSafe
-
getAllMaps
-
setChannel
public void setChannel(int channel) -
destroyMap
public boolean destroyMap(int mapid) -
destroyMap
public boolean destroyMap(int mapid, boolean Remove) -
HealMap
public void HealMap(int mapid)
-