diff --git a/ee3_common/ee3/common/core/helper/QualityHelper.java b/ee3_common/ee3/common/core/helper/QualityHelper.java new file mode 100644 index 00000000..519e7602 --- /dev/null +++ b/ee3_common/ee3/common/core/helper/QualityHelper.java @@ -0,0 +1,48 @@ +package ee3.common.core.helper; + +import net.minecraft.src.ItemStack; + +public class QualityHelper { + + /* + * Legend for the dust table quality lookup, comparison is based off of quality tiers + * + * Item Quality + * |_0_|_1_|_2_|_3_|_4_|_5_| + * Fuel 0 | 0 | 0 | 0 | 1 | 1 | 1 | + * Quality 1 | 0 | 1 | 1 | 1 | 2 | 2 | + * 2 | 0 | 1 | 2 | 2 | 2 | 2 | + * 3 | 1 | 1 | 2 | 3 | 3 | 3 | + * 4 | 1 | 2 | 2 | 3 | 4 | 4 | + * 5 | 1 | 2 | 2 | 3 | 4 | 5 | + */ + private static int[][] dustTable = { + {0, 0, 0, 1, 1, 1}, + {0, 1, 1, 1, 2, 2}, + {0, 1, 2, 2, 2, 2}, + {1, 1, 2, 3, 3, 3}, + {1, 2, 2, 3, 4, 4}, + {1, 2, 2, 3, 4, 5}, + }; + + public static int getItemTierQuality(ItemStack item) { + // TODO Return the 'Tier' level of the given ItemStack + return -1; + } + + public static int getFuelTierQuality(ItemStack fuel) { + // TODO Return the 'Tier' level of the given ItemStack + return -1; + } + + public static int getDustTierQuality(ItemStack item, ItemStack fuel) { + if ((getItemTierQuality(item) >= 0) && (getItemTierQuality(item) <= 5)) { + if ((getFuelTierQuality(fuel) >= 0) && (getFuelTierQuality(fuel) <= 5)) { + return dustTable[getItemTierQuality(item)][getFuelTierQuality(fuel)]; + } + } + + return -1; + } + +} diff --git a/ee3_common/ee3/common/emc/EMCEntry.java b/ee3_common/ee3/common/emc/EMCEntry.java new file mode 100644 index 00000000..9a79a82f --- /dev/null +++ b/ee3_common/ee3/common/emc/EMCEntry.java @@ -0,0 +1,87 @@ +package ee3.common.emc; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +public class EMCEntry { + + private float cost, recoveryPercentage; + private boolean learnable, recoverable; + private Map breakdown; + + public EMCEntry(float cost) { + this.cost = cost; + recoveryPercentage = 1F; + learnable = true; + recoverable = true; + breakdown = Collections.synchronizedMap(new HashMap()); + } + + public EMCEntry(float cost, float recoveryPercentage, boolean learnable, boolean recoverable) { + this.cost = cost; + this.recoveryPercentage = recoveryPercentage; + this.learnable = learnable; + this.recoverable = recoverable; + breakdown = Collections.synchronizedMap(new HashMap()); + } + + public float getCost() { + return cost; + } + + public float getRecoveryPercentage() { + return recoveryPercentage; + } + + public boolean isLearnable() { + return learnable; + } + + public boolean isRecoverable() { + return recoverable; + } + + public Map getEMCBreakDown() { + return breakdown; + } + + public float getEMCBreakdownByType(EMCType emcType) { + if (breakdown.containsKey(emcType)) { + if (breakdown.get(emcType) != null) { + return breakdown.get(emcType).floatValue(); + } + } + + return -1F; + } + + public void setCost(float cost) { + this.cost = cost; + } + + public void setRecoveryPercentage(float recoveryPercentage) { + this.recoveryPercentage = recoveryPercentage; + } + + public void setLearnable(boolean learnable) { + this.learnable = learnable; + } + + public void setRecoverable(boolean recoverable) { + this.recoverable = recoverable; + } + + public void addEMCBreakDown(EMCType emcType, Float breakdownPercentage) { + if (!(breakdown.containsKey(emcType))) { + breakdown.put(emcType, breakdownPercentage); + } + } + + public void setEMCBreakDown(EMCType emcType, Float breakdownPercentage) { + if (breakdown.containsKey(emcType)) { + breakdown.put(emcType, breakdownPercentage); + } + } + +} diff --git a/ee3_common/ee3/common/emc/EMCRegistry.java b/ee3_common/ee3/common/emc/EMCRegistry.java new file mode 100644 index 00000000..45782292 --- /dev/null +++ b/ee3_common/ee3/common/emc/EMCRegistry.java @@ -0,0 +1,16 @@ +package ee3.common.emc; + +import java.util.HashMap; +import java.util.Map; + +public class EMCRegistry { + + private static final EMCRegistry emcRegistry = new EMCRegistry(); + + private HashMap> emcMap = new HashMap>(); + + public EMCRegistry instance() { + return emcRegistry; + } + +} diff --git a/ee3_common/ee3/common/emc/EMCType.java b/ee3_common/ee3/common/emc/EMCType.java new file mode 100644 index 00000000..dfb73822 --- /dev/null +++ b/ee3_common/ee3/common/emc/EMCType.java @@ -0,0 +1,11 @@ +package ee3.common.emc; + +public enum EMCType { + WATER, + EARTH, + FIRE, + AIR, + VOID, + BLOOD, + PURE +}