Browse Source

Wire up smelting XP values

nossr50 6 years ago
parent
commit
2b0931314a

+ 0 - 1
src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java

@@ -10,7 +10,6 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 import org.bukkit.Material;
 import org.bukkit.boss.BarColor;
 import org.bukkit.boss.BarStyle;
-import org.bukkit.entity.EntityType;
 
 import java.util.ArrayList;
 import java.util.List;

+ 0 - 1
src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigLeveling.java

@@ -1,6 +1,5 @@
 package com.gmail.nossr50.config.hocon.playerleveling;
 
-import com.gmail.nossr50.api.exceptions.InvalidSkillException;
 import com.gmail.nossr50.datatypes.experience.FormulaType;
 import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.mcMMO;

+ 0 - 1
src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java

@@ -1,6 +1,5 @@
 package com.gmail.nossr50.datatypes.experience;
 
-import com.gmail.nossr50.config.experience.ExperienceConfig;
 import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.mcMMO;
 

+ 0 - 1
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -3,7 +3,6 @@ package com.gmail.nossr50;
 import com.gmail.nossr50.config.ConfigManager;
 import com.gmail.nossr50.config.CoreSkillsConfig;
 import com.gmail.nossr50.config.MainConfig;
-import com.gmail.nossr50.config.experience.ExperienceConfig;
 import com.gmail.nossr50.config.hocon.database.ConfigSectionCleaning;
 import com.gmail.nossr50.config.hocon.database.ConfigSectionMySQL;
 import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyExperienceSharing;

+ 0 - 1
src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java

@@ -1,6 +1,5 @@
 package com.gmail.nossr50.runnables.database;
 
-import com.gmail.nossr50.config.experience.ExperienceConfig;
 import com.gmail.nossr50.database.DatabaseManager;
 import com.gmail.nossr50.datatypes.experience.FormulaType;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;

+ 2 - 4
src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java

@@ -1,8 +1,7 @@
 package com.gmail.nossr50.skills.smelting;
 
-import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.datatypes.skills.SubSkillType;
+import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.util.skills.RankUtils;
 import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemStack;
@@ -14,7 +13,6 @@ public class Smelting {
     }
 
     protected static int getResourceXp(ItemStack smelting) {
-        //return mcMMO.getModManager().isCustomOre(smelting.getType()) ? mcMMO.getModManager().getBlock(smelting.getType()).getSmeltingXpGain() : ExperienceConfig.getInstance().getXp(PrimarySkillType.SMELTING, smelting.getType());
-        return ExperienceConfig.getInstance().getXp(PrimarySkillType.SMELTING, smelting.getType());
+        return mcMMO.getDynamicSettingsManager().getExperienceManager().getFurnaceItemXP(smelting.getType());
     }
 }

+ 24 - 1
src/main/java/com/gmail/nossr50/util/experience/ExperienceManager.java

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