From 4f7bc5f63557e3d1f2ea9ec5288cecb5819157c0 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Wed, 2 Jan 2013 09:19:46 -0500 Subject: [PATCH] v5.0.5 Release *Updated Metallurgic Infuser recipe system. *Lowered Heat Generator rate. *Cheapened Heat Generator. *Fixed Basic Components hooks. *Bumped versions to 5.0.5 --- src/minecraft/mekanism/api/Infusion.java | 20 ----------- src/minecraft/mekanism/api/InfusionInput.java | 22 ++++++++++++ .../mekanism/api/InfusionOutput.java | 30 ++++++++++++++++ .../common/ContainerMetallurgicInfuser.java | 5 +-- src/minecraft/mekanism/common/Mekanism.java | 11 +++--- .../mekanism/common/MekanismHooks.java | 26 +++++++++++++- .../mekanism/common/RecipeHandler.java | 21 ++++++------ .../common/TileEntityMetallurgicInfuser.java | 34 +++++++++---------- .../generators/common/MekanismGenerators.java | 2 +- .../common/TileEntityHeatGenerator.java | 16 ++++----- .../common/TileEntityHydrogenGenerator.java | 4 +-- 11 files changed, 125 insertions(+), 66 deletions(-) delete mode 100644 src/minecraft/mekanism/api/Infusion.java create mode 100644 src/minecraft/mekanism/api/InfusionInput.java create mode 100644 src/minecraft/mekanism/api/InfusionOutput.java diff --git a/src/minecraft/mekanism/api/Infusion.java b/src/minecraft/mekanism/api/Infusion.java deleted file mode 100644 index d396dedf7..000000000 --- a/src/minecraft/mekanism/api/Infusion.java +++ /dev/null @@ -1,20 +0,0 @@ -package mekanism.api; - -import net.minecraft.item.ItemStack; - -public class Infusion -{ - public InfusionType type; - public ItemStack resource; - - public Infusion(InfusionType infusiontype, ItemStack itemstack) - { - type = infusiontype; - resource = itemstack; - } - - public static Infusion getInfusion(InfusionType type, ItemStack itemstack) - { - return new Infusion(type, itemstack); - } -} diff --git a/src/minecraft/mekanism/api/InfusionInput.java b/src/minecraft/mekanism/api/InfusionInput.java new file mode 100644 index 000000000..76ac087df --- /dev/null +++ b/src/minecraft/mekanism/api/InfusionInput.java @@ -0,0 +1,22 @@ +package mekanism.api; + +import net.minecraft.item.ItemStack; + +public class InfusionInput +{ + public InfusionType infusionType; + public int infuseStored; + public ItemStack inputSlot; + + public InfusionInput(InfusionType infusiontype, int required, ItemStack itemstack) + { + infusionType = infusiontype; + infuseStored = required; + inputSlot = itemstack; + } + + public static InfusionInput getInfusion(InfusionType type, int stored, ItemStack itemstack) + { + return new InfusionInput(type, stored, itemstack); + } +} diff --git a/src/minecraft/mekanism/api/InfusionOutput.java b/src/minecraft/mekanism/api/InfusionOutput.java new file mode 100644 index 000000000..a83ca6767 --- /dev/null +++ b/src/minecraft/mekanism/api/InfusionOutput.java @@ -0,0 +1,30 @@ +package mekanism.api; + +import net.minecraft.item.ItemStack; + +public class InfusionOutput +{ + public InfusionInput infusionInput; + public ItemStack resource; + + public InfusionOutput(InfusionInput input, ItemStack itemstack) + { + infusionInput = input; + resource = itemstack; + } + + public static InfusionOutput getInfusion(InfusionInput input, ItemStack itemstack) + { + return new InfusionOutput(input, itemstack); + } + + public int getInfuseRequired() + { + return infusionInput.infuseStored; + } + + public InfusionOutput copy() + { + return new InfusionOutput(infusionInput, resource); + } +} diff --git a/src/minecraft/mekanism/common/ContainerMetallurgicInfuser.java b/src/minecraft/mekanism/common/ContainerMetallurgicInfuser.java index 2056b3500..296ed2ec8 100644 --- a/src/minecraft/mekanism/common/ContainerMetallurgicInfuser.java +++ b/src/minecraft/mekanism/common/ContainerMetallurgicInfuser.java @@ -1,7 +1,8 @@ package mekanism.common; import ic2.api.IElectricItem; -import mekanism.api.Infusion; +import mekanism.api.InfusionInput; +import mekanism.api.InfusionOutput; import mekanism.api.InfusionType; import mekanism.api.ItemMachineUpgrade; import net.minecraft.entity.player.EntityPlayer; @@ -97,7 +98,7 @@ public class ContainerMetallurgicInfuser extends Container return null; } } - else if(RecipeHandler.getOutput(Infusion.getInfusion(tileEntity.type, slotStack), false, TileEntityMetallurgicInfuser.recipes) != null) + else if(RecipeHandler.getOutput(InfusionInput.getInfusion(tileEntity.type, tileEntity.infuseStored, slotStack), false, TileEntityMetallurgicInfuser.recipes) != null) { if(!mergeItemStack(slotStack, 2, 3, false)) { diff --git a/src/minecraft/mekanism/common/Mekanism.java b/src/minecraft/mekanism/common/Mekanism.java index 72abc2066..f9ba4eb2d 100644 --- a/src/minecraft/mekanism/common/Mekanism.java +++ b/src/minecraft/mekanism/common/Mekanism.java @@ -4,7 +4,8 @@ import ic2.api.Ic2Recipes; import java.util.logging.Logger; -import mekanism.api.Infusion; +import mekanism.api.InfusionInput; +import mekanism.api.InfusionOutput; import mekanism.api.InfusionType; import mekanism.api.ItemMachineUpgrade; import mekanism.api.Tier.EnergyCubeTier; @@ -44,7 +45,7 @@ import cpw.mods.fml.relauncher.SideOnly; * @author AidanBrady * */ -@Mod(modid = "Mekanism", name = "Mekanism", version = "5.0.4") +@Mod(modid = "Mekanism", name = "Mekanism", version = "5.0.5") @NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) public class Mekanism { @@ -66,7 +67,7 @@ public class Mekanism public static Configuration configuration; /** Mekanism version number */ - public static Version versionNumber = new Version(5, 0, 4); + public static Version versionNumber = new Version(5, 0, 5); /** Mekanism creative tab */ public static CreativeTabMekanism tabMekanism = new CreativeTabMekanism(); @@ -309,7 +310,7 @@ public class Mekanism RecipeHandler.addTheoreticalElementizerRecipe(new ItemStack(EnrichedAlloy), new ItemStack(TileEntityTheoreticalElementizer.getRandomMagicItem())); //Metallurgic Infuser Recipes - RecipeHandler.addMetallurgicInfuserRecipe(Infusion.getInfusion(InfusionType.COAL, new ItemStack(EnrichedIron)), new ItemStack(Dust, 1, 5)); + RecipeHandler.addMetallurgicInfuserRecipe(InfusionInput.getInfusion(InfusionType.COAL, 10, new ItemStack(EnrichedIron)), new ItemStack(Dust, 1, 5)); } /** @@ -610,7 +611,7 @@ public class Mekanism try { for(ItemStack ore : OreDictionary.getOres("ingotCopper")) { - RecipeHandler.addMetallurgicInfuserRecipe(Infusion.getInfusion(InfusionType.TIN, ore), new ItemStack(Ingot, 1, 2)); + RecipeHandler.addMetallurgicInfuserRecipe(InfusionInput.getInfusion(InfusionType.TIN, 10, ore), new ItemStack(Ingot, 1, 2)); } } catch(Exception e) {} diff --git a/src/minecraft/mekanism/common/MekanismHooks.java b/src/minecraft/mekanism/common/MekanismHooks.java index fa4555032..ede9aca07 100644 --- a/src/minecraft/mekanism/common/MekanismHooks.java +++ b/src/minecraft/mekanism/common/MekanismHooks.java @@ -1,5 +1,6 @@ package mekanism.common; +import universalelectricity.prefab.RecipeHelper; import cpw.mods.fml.common.Loader; import ic2.api.Ic2Recipes; import ic2.api.Items; @@ -22,7 +23,7 @@ public final class MekanismHooks private Class Railcraft; - private Class BCLoader; + private Class BasicComponents; private Class BuildCraftEnergy; @@ -69,6 +70,7 @@ public final class MekanismHooks Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 0), new ItemStack(Mekanism.Dust, 1, 3)); Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 2), new ItemStack(Item.redstone)); Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 3), new ItemStack(Item.lightStoneDust)); + Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 4), new ItemStack(Mekanism.Dust, 1, 5)); Ic2Recipes.addMatterAmplifier(Mekanism.EnrichedAlloy, 100000); System.out.println("[Mekanism] Hooked into IC2 successfully."); @@ -79,6 +81,8 @@ public final class MekanismHooks } if(BasicComponentsLoaded) { + RecipeHelper.removeRecipes(getBasicComponentsItem("itemSteelDust")); + RecipeHelper.removeRecipes(getBasicComponentsItem("itemSteelIngot")); System.out.println("[Mekanism] Hooked into BasicComponents successfully."); } if(BuildCraftLoaded) @@ -160,6 +164,26 @@ public final class MekanismHooks } } + public ItemStack getBasicComponentsItem(String name) + { + try { + if(BasicComponents == null) BasicComponents = Class.forName("basiccomponents.common.BasicComponents"); + if(BasicComponents == null) BasicComponents = Class.forName("net.minecraft.src.basiccomponents.common.BasicComponents"); + Object ret = BasicComponents.getField(name).get(null); + + if(ret instanceof Item) + { + return new ItemStack((Item)ret); + } + else { + throw new Exception("not instanceof ItemStack"); + } + } catch(Exception e) { + System.out.println("[Mekanism] Unable to retrieve Basic Components item " + name + "."); + return null; + } + } + public LiquidStack getLiquid(String name) { return LiquidDictionary.getLiquid(name, 1); diff --git a/src/minecraft/mekanism/common/RecipeHandler.java b/src/minecraft/mekanism/common/RecipeHandler.java index d0dc97d84..b3d6f8eb1 100644 --- a/src/minecraft/mekanism/common/RecipeHandler.java +++ b/src/minecraft/mekanism/common/RecipeHandler.java @@ -2,7 +2,8 @@ package mekanism.common; import java.util.Map; -import mekanism.api.Infusion; +import mekanism.api.InfusionInput; +import mekanism.api.InfusionOutput; import net.minecraft.item.ItemStack; /** @@ -67,32 +68,32 @@ public final class RecipeHandler * @param input - input Infusion * @param output - output ItemStack */ - public static void addMetallurgicInfuserRecipe(Infusion input, ItemStack output) + public static void addMetallurgicInfuserRecipe(InfusionInput input, ItemStack output) { - TileEntityMetallurgicInfuser.recipes.put(input, output); + TileEntityMetallurgicInfuser.recipes.put(input, InfusionOutput.getInfusion(input, output)); } /** - * Gets the output ItemStack of the Infusion in the parameters. + * Gets the InfusionOutput of the InfusionInput in the parameters. * @param infusion - input Infusion * @param stackDecrease - whether or not to decrease the input slot's stack size AND the infuse amount * @param recipes - Map of recipes - * @return output ItemStack + * @return InfusionOutput */ - public static ItemStack getOutput(Infusion infusion, boolean stackDecrease, Map recipes) + public static InfusionOutput getOutput(InfusionInput infusion, boolean stackDecrease, Map recipes) { for(Map.Entry entry : recipes.entrySet()) { - if(((Infusion)entry.getKey()).resource.isItemEqual(infusion.resource) && infusion.resource.stackSize >= ((Infusion)entry.getKey()).resource.stackSize) + if(((InfusionInput)entry.getKey()).inputSlot.isItemEqual(infusion.inputSlot) && infusion.inputSlot.stackSize >= ((InfusionInput)entry.getKey()).inputSlot.stackSize) { - if(infusion.type == ((Infusion)entry.getKey()).type) + if(infusion.infusionType == ((InfusionInput)entry.getKey()).infusionType) { if(stackDecrease) { - infusion.resource.stackSize -= ((Infusion)entry.getKey()).resource.stackSize; + infusion.inputSlot.stackSize -= ((InfusionInput)entry.getKey()).inputSlot.stackSize; } - return ((ItemStack)entry.getValue()).copy(); + return ((InfusionOutput)entry.getValue()).copy(); } } } diff --git a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java index 9dda91a07..f125f931b 100644 --- a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java +++ b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java @@ -11,7 +11,8 @@ import java.util.Map; import mekanism.api.IActiveState; import mekanism.api.IMachineUpgrade; -import mekanism.api.Infusion; +import mekanism.api.InfusionInput; +import mekanism.api.InfusionOutput; import mekanism.api.InfusionType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -36,7 +37,7 @@ import dan200.computer.api.IPeripheral; public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implements IEnergySink, IJouleStorage, IVoltage, IPeripheral, IActiveState { - public static Map recipes = new HashMap(); + public static Map recipes = new HashMap(); /** The type of infuse this machine stores. */ public InfusionType type = InfusionType.NONE; @@ -263,9 +264,9 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem return; } - ItemStack itemstack = RecipeHandler.getOutput(Infusion.getInfusion(type, inventory[2]), true, recipes); + InfusionOutput output = RecipeHandler.getOutput(InfusionInput.getInfusion(type, infuseStored, inventory[2]), true, recipes); - infuseStored -= 10; + infuseStored -= output.getInfuseRequired(); if (inventory[2].stackSize <= 0) { @@ -274,11 +275,10 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem if (inventory[3] == null) { - inventory[3] = itemstack; + inventory[3] = output.resource; } - else - { - inventory[3].stackSize += itemstack.stackSize; + else { + inventory[3].stackSize += output.resource.stackSize; } } @@ -293,31 +293,31 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem { return false; } - - if(infuseStored-10 < 0) - { - return false; - } - ItemStack itemstack = RecipeHandler.getOutput(Infusion.getInfusion(type, inventory[2]), false, recipes); + InfusionOutput output = RecipeHandler.getOutput(InfusionInput.getInfusion(type, infuseStored, inventory[2]), false, recipes); - if (itemstack == null) + if (output == null) { return false; } + + if(infuseStored-output.getInfuseRequired() < 0) + { + return false; + } if (inventory[3] == null) { return true; } - if (!inventory[3].isItemEqual(itemstack)) + if (!inventory[3].isItemEqual(output.resource)) { return false; } else { - return inventory[3].stackSize + itemstack.stackSize <= inventory[3].getMaxStackSize(); + return inventory[3].stackSize + output.resource.stackSize <= inventory[3].getMaxStackSize(); } } diff --git a/src/minecraft/mekanism/generators/common/MekanismGenerators.java b/src/minecraft/mekanism/generators/common/MekanismGenerators.java index c7844466a..b60d8842f 100644 --- a/src/minecraft/mekanism/generators/common/MekanismGenerators.java +++ b/src/minecraft/mekanism/generators/common/MekanismGenerators.java @@ -66,7 +66,7 @@ public class MekanismGenerators public void addRecipes() { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 0), new Object[] { - "GGG", "ECE", "IRI", Character.valueOf('G'), Item.lightStoneDust, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), new ItemStack(Mekanism.BasicBlock, 1, 3), Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone + "PPP", "EeE", "IRI", Character.valueOf('P'), "ingotPlatinum", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('e'), Mekanism.EnrichedIron, Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 1), new Object[] { "SSS", "AIA", "PEP", Character.valueOf('S'), SolarPanel, Character.valueOf('A'), Mekanism.EnrichedAlloy, Character.valueOf('I'), Item.ingotIron, Character.valueOf('P'), "dustPlatinum", Character.valueOf('E'), Mekanism.EnergyTablet.getUnchargedItem() diff --git a/src/minecraft/mekanism/generators/common/TileEntityHeatGenerator.java b/src/minecraft/mekanism/generators/common/TileEntityHeatGenerator.java index 83b419316..c3c06d00f 100644 --- a/src/minecraft/mekanism/generators/common/TileEntityHeatGenerator.java +++ b/src/minecraft/mekanism/generators/common/TileEntityHeatGenerator.java @@ -31,7 +31,7 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan public TileEntityHeatGenerator() { - super("Heat Generator", 160000, 840); + super("Heat Generator", 160000, 480); inventory = new ItemStack[2]; } @@ -119,7 +119,7 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan setActive(true); } fuelSlot.setLiquid(fuelSlot.liquidStored - 10); - setJoules(electricityStored + 320); + setJoules(electricityStored + 100); } else { if(!worldObj.isRemote) @@ -158,17 +158,17 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan int boost = 0; if(worldObj.getBlockId(xCoord+1, yCoord, zCoord) == 10 || worldObj.getBlockId(xCoord+1, yCoord, zCoord) == 11) - boost+=100; + boost+=80; if(worldObj.getBlockId(xCoord-1, yCoord, zCoord) == 10 || worldObj.getBlockId(xCoord-1, yCoord, zCoord) == 11) - boost+=100; + boost+=80; if(worldObj.getBlockId(xCoord, yCoord+1, zCoord) == 10 || worldObj.getBlockId(xCoord, yCoord+1, zCoord) == 11) - boost+=100; + boost+=80; if(worldObj.getBlockId(xCoord, yCoord-1, zCoord) == 10 || worldObj.getBlockId(xCoord, yCoord-1, zCoord) == 11) - boost+=100; + boost+=80; if(worldObj.getBlockId(xCoord, yCoord, zCoord+1) == 10 || worldObj.getBlockId(xCoord, yCoord, zCoord+1) == 11) - boost+=100; + boost+=80; if(worldObj.getBlockId(xCoord, yCoord, zCoord-1) == 10 || worldObj.getBlockId(xCoord, yCoord, zCoord-1) == 11) - boost+=100; + boost+=80; return boost; } diff --git a/src/minecraft/mekanism/generators/common/TileEntityHydrogenGenerator.java b/src/minecraft/mekanism/generators/common/TileEntityHydrogenGenerator.java index 9af14f87e..2eab69011 100644 --- a/src/minecraft/mekanism/generators/common/TileEntityHydrogenGenerator.java +++ b/src/minecraft/mekanism/generators/common/TileEntityHydrogenGenerator.java @@ -31,7 +31,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements public TileEntityHydrogenGenerator() { - super("Hydrogen Generator", 4000000, 1200); + super("Hydrogen Generator", 400000, 1200); inventory = new ItemStack[2]; } @@ -114,7 +114,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements setActive(true); } - hydrogenStored--; + hydrogenStored-=10; setJoules(electricityStored + 1000); } else {