package config; import manager.STableManager; import manager.Table; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Table(name ="AccomplishmentConfig") public class SAccomplishmentConfig implements BaseConfig { private int id; private int mapId; private int logic; private int[][] values; private int score; private int[] reward; private int scheduleShow; private static Map> sAccomplishmentConfigByMapIdMap; private static Map>> sAccomplishmentConfigByMapIdAndLogicMap; @Override public void init() throws Exception { sAccomplishmentConfigByMapIdMap = new HashMap<>(); sAccomplishmentConfigByMapIdAndLogicMap = new HashMap<>(); Map config = STableManager.getConfig(SAccomplishmentConfig.class); for(SAccomplishmentConfig sAccomplishmentConfig : config.values()){ int mapId = sAccomplishmentConfig.getMapId(); sAccomplishmentConfigByMapIdMap.computeIfAbsent(mapId,v->new ArrayList<>()).add(sAccomplishmentConfig); sAccomplishmentConfigByMapIdAndLogicMap.computeIfAbsent(mapId,v->new HashMap<>()); sAccomplishmentConfigByMapIdAndLogicMap.get(mapId).computeIfAbsent(logic,v->new ArrayList<>()).add(sAccomplishmentConfig); } } public static List getsAccomplishmentConfigByMapIdAndLogic(int mapId,int logic) { if(!sAccomplishmentConfigByMapIdAndLogicMap.containsKey(mapId)){ return null; } return sAccomplishmentConfigByMapIdAndLogicMap.get(mapId).get(logic); } public static List getsAccomplishmentConfigByMapId(int mapId) { return sAccomplishmentConfigByMapIdMap.get(mapId); } public int getId() { return id; } public int getMapId() { return mapId; } public int getLogic() { return logic; } public int[][] getValues() { return values; } public int getScore() { return score; } public int[] getReward() { return reward; } public int getScheduleShow() { return scheduleShow; } }