/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.petah.spring.bai.delegate; import com.springrts.ai.oo.clb.MoveData; import com.springrts.ai.oo.clb.OOAICallback; import java.util.TreeMap; import org.petah.spring.bai.cache.CachedHeightMap; import org.petah.spring.bai.cache.CachedMap; import org.petah.spring.bai.cache.CachedMetalMap; import org.petah.spring.bai.cache.CachedMoveData; import org.petah.spring.bai.cache.CachedMoveDataManager; import org.petah.spring.bai.cache.CachedSlopeMap; import org.petah.spring.bai.cache.CachedUnitDef; import org.petah.spring.bai.cache.CachedUnitDefManager; import org.petah.spring.bai.log.Log; import org.petah.spring.bai.map.slope.IslandMap; import org.petah.spring.bai.map.slope.IslandMapManager; import org.petah.spring.bai.unit.Faction; /** * * @author Petah */ public class GlobalDelegate { private static CachedMap cachedMap; private static CachedMetalMap cachedMetalMap; private static CachedSlopeMap cachedSlopeMap; private static CachedHeightMap cachedHeightMap; private static CachedMoveDataManager cachedMoveDataManager; private static CachedUnitDefManager cachedUnitDefManager; private static IslandMapManager islandMapManager; public static void init(OOAICallback callback) { Log.entry(GlobalDelegate.class, "init"); // All are dependant on InformationLogger for the cache directory cachedMap = new CachedMap(callback.getMap()); cachedMetalMap = new CachedMetalMap(callback.getMap()); cachedSlopeMap = new CachedSlopeMap(callback.getMap()); cachedHeightMap = new CachedHeightMap(callback.getMap()); cachedMoveDataManager = new CachedMoveDataManager(callback); cachedUnitDefManager = new CachedUnitDefManager(callback); // Dependant on CachedMoveDataManager islandMapManager = new IslandMapManager(); // Dependant on CachedSlopeMap } // Delegate methods public static int getMapWidth() { return cachedMap.getWidth(); } public static int getMapHeight() { return cachedMap.getHeight(); } public static int getSlopeMapWidth() { return cachedSlopeMap.getWidth(); } public static int getSlopeMapHeight() { return cachedSlopeMap.getHeight(); } public static Float getSlopeValue(int x, int y) { return cachedSlopeMap.getValue(x, y); } public static float getMetalExtractorRadius() { return cachedMetalMap.getMetalExtractorRadius(); } public static float getMetalExtractorTerrainRadius() { return cachedMetalMap.getMetalExtractorTerrainRadius(); } public static CachedUnitDef getUnitDef(String name, Faction faction) { return cachedUnitDefManager.getUnitDef(name, faction); } public static CachedUnitDef getCachedUnitDef(int unitDefId) { return cachedUnitDefManager.getCachedUnitDef(unitDefId); } public static TreeMap<Integer, CachedUnitDef> getUnitDefs() { return cachedUnitDefManager.getUnitDefs(); } public static TreeMap<String, CachedMoveData> getCachedMoveData() { return cachedMoveDataManager.getCachedMoveData(); } public static CachedMoveData getCachedMoveData(MoveData data) { return cachedMoveDataManager.getCachedMoveData(data); } public static IslandMap getIslandMap(CachedMoveData moveData) { return islandMapManager.getIslandMap(moveData); } // Getters public static CachedHeightMap getCachedHeightMap() { return cachedHeightMap; } public static CachedMap getCachedMap() { return cachedMap; } public static CachedMetalMap getCachedMetalMap() { return cachedMetalMap; } public static CachedMoveDataManager getCachedMoveDataManager() { return cachedMoveDataManager; } public static CachedSlopeMap getCachedSlopeMap() { return cachedSlopeMap; } public static CachedUnitDefManager getCachedUnitDefManager() { return cachedUnitDefManager; } public static IslandMapManager getIslandMapManager() { return islandMapManager; } }