Some work on the DynEMC system

This commit is contained in:
pahimar 2012-10-15 21:42:57 -04:00
parent 51bd858f8b
commit fa94dc6d5e
4 changed files with 162 additions and 0 deletions

View file

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

View file

@ -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<EMCType, Float> breakdown;
public EMCEntry(float cost) {
this.cost = cost;
recoveryPercentage = 1F;
learnable = true;
recoverable = true;
breakdown = Collections.synchronizedMap(new HashMap<EMCType, Float>());
}
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<EMCType, Float>());
}
public float getCost() {
return cost;
}
public float getRecoveryPercentage() {
return recoveryPercentage;
}
public boolean isLearnable() {
return learnable;
}
public boolean isRecoverable() {
return recoverable;
}
public Map<EMCType, Float> 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);
}
}
}

View file

@ -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<Integer, HashMap<Integer, EMCEntry>> emcMap = new HashMap<Integer, HashMap<Integer, EMCEntry>>();
public EMCRegistry instance() {
return emcRegistry;
}
}

View file

@ -0,0 +1,11 @@
package ee3.common.emc;
public enum EMCType {
WATER,
EARTH,
FIRE,
AIR,
VOID,
BLOOD,
PURE
}