Wire up smelting XP values

This commit is contained in:
nossr50
2019-05-13 03:57:23 -07:00
parent d1298c0cd2
commit 2b0931314a
7 changed files with 26 additions and 10 deletions

View File

@@ -18,6 +18,7 @@ public class ExperienceManager {
private HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap;
private HashMap<String, Integer> woodcuttingFullyQualifiedBlockXpMap;
private HashMap<String, Integer> excavationFullyQualifiedBlockXpMap;
private HashMap<String, Integer> furnaceFullyQualifiedItemXpMap;
private HashMap<EntityType, Float> tamingExperienceMap;
private HashMap<EntityType, Float> combatXPMultiplierMap;
private HashMap<SpecialXPKey, Float> specialCombatXPMultiplierMap; //Applies to "groups" of things for convenience
@@ -36,6 +37,7 @@ public class ExperienceManager {
herbalismFullyQualifiedBlockXpMap = new HashMap<>();
woodcuttingFullyQualifiedBlockXpMap = new HashMap<>();
excavationFullyQualifiedBlockXpMap = new HashMap<>();
furnaceFullyQualifiedItemXpMap = new HashMap<>();
combatXPMultiplierMap = new HashMap<>();
specialCombatXPMultiplierMap = new HashMap<>();
tamingExperienceMap = new HashMap<>();
@@ -44,7 +46,9 @@ public class ExperienceManager {
private void registerDefaultValues()
{
fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap());
registerSpecialCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getSpecialCombatExperienceMap());
buildBlockXPMaps();
buildFurnaceXPMap();
}
/**
@@ -78,12 +82,21 @@ public class ExperienceManager {
}
}
public void copySpecialCombatXPMultiplierMap(HashMap<SpecialXPKey, Float> map)
/**
* Registers the map values for special combat XP to the specified map
* @param map target map
*/
public void registerSpecialCombatXPMultiplierMap(HashMap<SpecialXPKey, Float> map)
{
mcMMO.p.getLogger().info("Registering special combat XP values...");
specialCombatXPMultiplierMap = map;
}
private void buildFurnaceXPMap() {
mcMMO.p.getLogger().info("Mapping xp values for furnaces...");
fillBlockXPMap(mcMMO.getConfigManager().getConfigExperience().getSmeltingExperienceMap(), furnaceFullyQualifiedItemXpMap);
}
/**
* Builds fully qualified name to xp value maps of blocks for XP lookups
* This method servers two purposes
@@ -347,6 +360,16 @@ public class ExperienceManager {
return excavationFullyQualifiedBlockXpMap.get(material.getKey());
}
/**
* Gets the XP value for converting an item in the furnace
*
* @param material the target item material value
* @return the raw XP value before any modifiers are applied
*/
public int getFurnaceItemXP(Material material) {
return furnaceFullyQualifiedItemXpMap.get(material.getKey());
}
/**
* Get the XP multiplier value for a special XP group
* @param specialXPKey target special XP group