diff --git a/src/main/java/com/pahimar/ee3/api/EnergyValue.java b/src/main/java/com/pahimar/ee3/api/EnergyValue.java index 0d91133e..e9231431 100644 --- a/src/main/java/com/pahimar/ee3/api/EnergyValue.java +++ b/src/main/java/com/pahimar/ee3/api/EnergyValue.java @@ -11,11 +11,10 @@ public final class EnergyValue implements Comparable, JsonDeseriali { private static final Gson jsonSerializer = (new GsonBuilder()).registerTypeAdapter(EnergyValue.class, new EnergyValue()).create(); private float energyValue; - private final EnergyType energyType; public EnergyValue() { - this(0f, EnergyType.UNKNOWN); + this(0f); } public EnergyValue(int energyValue) @@ -29,19 +28,8 @@ public final class EnergyValue implements Comparable, JsonDeseriali } public EnergyValue(float energyValue) - { - this(energyValue, EnergyType.DEFAULT); - } - - public EnergyValue(float energyValue, EnergyType energyType) { this.energyValue = energyValue; - this.energyType = energyType; - } - - public EnergyValue(int energyValue, EnergyType energyType) - { - this((float) energyValue, energyType); } @Override @@ -53,7 +41,7 @@ public final class EnergyValue implements Comparable, JsonDeseriali @Override public String toString() { - return String.format(" %s@%s ", energyValue, energyType); + return String.format("%s", energyValue); } @Override @@ -61,14 +49,7 @@ public final class EnergyValue implements Comparable, JsonDeseriali { if (energyValue != null) { - if (this.energyType == energyValue.getEnergyType()) - { - return Float.compare(this.energyValue, energyValue.getEnergyValue()); - } - else - { - return (this.energyType.ordinal() - energyValue.getEnergyType().ordinal()); - } + return Float.compare(this.energyValue, energyValue.getEnergyValue()); } else { @@ -76,27 +57,48 @@ public final class EnergyValue implements Comparable, JsonDeseriali } } - public EnergyType getEnergyType() - { - return this.energyType; - } - public float getEnergyValue() { return this.energyValue; } + public void add(int energyValue) + { + this.add((float) energyValue); + } + + public void add(float energyValue) + { + if (energyValue >= 0f) + { + this.energyValue += energyValue; + } + } + public void add(EnergyValue energyValue) { - if (energyValue != null && this.energyType == energyValue.energyType && energyValue.energyValue > 0f) + if (energyValue != null && energyValue.energyValue >= 0f) { this.energyValue += energyValue.energyValue; } } + public void subtract(int energyValue) + { + this.subtract((float) energyValue); + } + + public void subtract(float energyValue) + { + if (this.energyValue - energyValue >= 0f) + { + this.energyValue -= energyValue; + } + } + public void subtract(EnergyValue energyValue) { - if (energyValue != null && this.energyType == energyValue.energyType && (this.energyValue - energyValue.energyValue) >= 0f) + if (energyValue != null && (this.energyValue - energyValue.energyValue) >= 0f) { this.energyValue -= energyValue.energyValue; } @@ -110,10 +112,17 @@ public final class EnergyValue implements Comparable, JsonDeseriali public NBTTagCompound writeToNBT(NBTTagCompound nbtTagCompound) { nbtTagCompound.setFloat("energyValue", energyValue); - nbtTagCompound.setInteger("energyType", energyType.ordinal()); return nbtTagCompound; } + public void readFromNBT(NBTTagCompound nbtTagCompound) + { + if (nbtTagCompound.hasKey("energyValue")) + { + this.energyValue = nbtTagCompound.getFloat("energyValue"); + } + } + public static NBTTagCompound writeEnergyValueToNBT(EnergyValue energyValue) { NBTTagCompound nbtTagCompound = new NBTTagCompound(); @@ -123,12 +132,11 @@ public final class EnergyValue implements Comparable, JsonDeseriali public static EnergyValue loadEnergyValueFromNBT(NBTTagCompound nbtTagCompound) { - if (nbtTagCompound.hasKey("energyValue") && nbtTagCompound.hasKey("energyType")) + if (nbtTagCompound.hasKey("energyValue")) { float energyValue = nbtTagCompound.getFloat("energyValue"); - EnergyType energyType = EnergyType.getEnergyTypeFromOrdinal(nbtTagCompound.getInteger("energyType")); - return new EnergyValue(energyValue, energyType); + return new EnergyValue(energyValue); } return null; @@ -189,14 +197,13 @@ public final class EnergyValue implements Comparable, JsonDeseriali { JsonObject jsonEnergyValue = (JsonObject) jsonElement; - if (jsonEnergyValue.get("type") != null && jsonEnergyValue.get("type").isJsonPrimitive() && jsonEnergyValue.get("value") != null && jsonEnergyValue.get("value").isJsonPrimitive()) + if (jsonEnergyValue.get("value") != null && jsonEnergyValue.get("value").isJsonPrimitive()) { - EnergyType energyType = EnergyType.getEnergyTypeFromOrdinal(jsonEnergyValue.get("type").getAsInt()); float energyValue = jsonEnergyValue.get("value").getAsFloat(); - if (Float.compare(energyValue, 0f) > 0) + if (Float.compare(energyValue, 0f) >= 0) { - return new EnergyValue(energyValue, energyType); + return new EnergyValue(energyValue); } } @@ -223,52 +230,8 @@ public final class EnergyValue implements Comparable, JsonDeseriali { JsonObject jsonEnergyValue = new JsonObject(); - jsonEnergyValue.addProperty("type", energyValueObject.energyType.ordinal()); jsonEnergyValue.addProperty("value", energyValueObject.energyValue); return jsonEnergyValue; } - - public static enum EnergyType - { - UNKNOWN, CORPOREAL, KINETIC, TEMPORAL, ESSENTIA, AMORPHOUS, VOID, OMNI; - - public static final EnergyType DEFAULT = EnergyType.CORPOREAL; - - public static EnergyType getEnergyTypeFromOrdinal(int ordinal) - { - if (ordinal == CORPOREAL.ordinal()) - { - return CORPOREAL; - } - else if (ordinal == KINETIC.ordinal()) - { - return KINETIC; - } - else if (ordinal == TEMPORAL.ordinal()) - { - return TEMPORAL; - } - else if (ordinal == ESSENTIA.ordinal()) - { - return ESSENTIA; - } - else if (ordinal == AMORPHOUS.ordinal()) - { - return AMORPHOUS; - } - else if (ordinal == VOID.ordinal()) - { - return VOID; - } - else if (ordinal == OMNI.ordinal()) - { - return OMNI; - } - else - { - return UNKNOWN; - } - } - } } diff --git a/src/main/java/com/pahimar/ee3/nei/CalcinationHandler.java b/src/main/java/com/pahimar/ee3/nei/CalcinationHandler.java index 4067ded8..6e46ccd1 100644 --- a/src/main/java/com/pahimar/ee3/nei/CalcinationHandler.java +++ b/src/main/java/com/pahimar/ee3/nei/CalcinationHandler.java @@ -5,7 +5,6 @@ import codechicken.nei.PositionedStack; import codechicken.nei.recipe.FurnaceRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; import com.pahimar.ee3.api.EnergyValue; -import com.pahimar.ee3.api.EnergyValue.EnergyType; import com.pahimar.ee3.api.EnergyValueRegistryProxy; import com.pahimar.ee3.client.gui.inventory.GuiCalcinator; import com.pahimar.ee3.item.ItemAlchemicalDust; @@ -45,7 +44,7 @@ public class CalcinationHandler extends TemplateRecipeHandler inputs = new ArrayList(); minEnergyValue = EnergyValueRegistryProxy.getEnergyValue(outputDust); - maxEnergyValue = (outputDust.getItemDamage() < (ItemAlchemicalDust.getAlchemicalDusts().size() - 1) ? EnergyValueRegistryProxy.getEnergyValue(ItemAlchemicalDust.getAlchemicalDusts().get(outputDust.getItemDamage() + 1)) : new EnergyValue(Float.MAX_VALUE, EnergyType.CORPOREAL)); + maxEnergyValue = (outputDust.getItemDamage() < (ItemAlchemicalDust.getAlchemicalDusts().size() - 1) ? EnergyValueRegistryProxy.getEnergyValue(ItemAlchemicalDust.getAlchemicalDusts().get(outputDust.getItemDamage() + 1)) : new EnergyValue(Float.MAX_VALUE)); for (Object obj : EnergyValueRegistryProxy.getStacksInRange(minEnergyValue, maxEnergyValue)) { @@ -64,7 +63,7 @@ public class CalcinationHandler extends TemplateRecipeHandler output = new PositionedStack(outputDust, 101, 19); minEnergyValue = EnergyValueRegistryProxy.getEnergyValue(outputDust); - maxEnergyValue = (outputDust.getItemDamage() < (ItemAlchemicalDust.getAlchemicalDusts().size() - 1) ? EnergyValueRegistryProxy.getEnergyValue(ItemAlchemicalDust.getAlchemicalDusts().get(outputDust.getItemDamage() + 1)) : new EnergyValue(Float.MAX_VALUE, EnergyType.CORPOREAL)); + maxEnergyValue = (outputDust.getItemDamage() < (ItemAlchemicalDust.getAlchemicalDusts().size() - 1) ? EnergyValueRegistryProxy.getEnergyValue(ItemAlchemicalDust.getAlchemicalDusts().get(outputDust.getItemDamage() + 1)) : new EnergyValue(Float.MAX_VALUE)); } @Override diff --git a/src/main/java/com/pahimar/ee3/recipe/RecipeRegistry.java b/src/main/java/com/pahimar/ee3/recipe/RecipeRegistry.java index c6d74a16..99499940 100644 --- a/src/main/java/com/pahimar/ee3/recipe/RecipeRegistry.java +++ b/src/main/java/com/pahimar/ee3/recipe/RecipeRegistry.java @@ -4,6 +4,7 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import com.pahimar.ee3.exchange.WrappedStack; +import com.pahimar.ee3.util.LogHelper; import java.util.ArrayList; import java.util.List; @@ -78,4 +79,21 @@ public class RecipeRegistry return immutableRecipeMap; } + + public void dumpRecipeRegistryToLog() + { + for (WrappedStack wrappedStack : recipeMap.keySet()) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(String.format("Output: %s, Inputs: ", wrappedStack.toString())); + for (List listStacks : recipeMap.get(wrappedStack)) + { + for (WrappedStack listStack : listStacks) + { + stringBuilder.append(listStack.toString() + " "); + } + } + LogHelper.info(stringBuilder.toString()); + } + } } \ No newline at end of file diff --git a/src/main/java/com/pahimar/ee3/util/EnergyValueHelper.java b/src/main/java/com/pahimar/ee3/util/EnergyValueHelper.java index 1c232905..11915c92 100644 --- a/src/main/java/com/pahimar/ee3/util/EnergyValueHelper.java +++ b/src/main/java/com/pahimar/ee3/util/EnergyValueHelper.java @@ -109,7 +109,7 @@ public class EnergyValueHelper { if ((Float.compare(factor, 0f) != 0) && (energyValue != null)) { - return new EnergyValue(energyValue.getEnergyValue() * 1f / factor, energyValue.getEnergyType()); + return new EnergyValue(energyValue.getEnergyValue() * 1f / factor); } else {