|
@@ -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
|