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
This commit is contained in:
Aidan Brady 2013-01-02 09:19:46 -05:00
parent c758a5121b
commit 4f7bc5f635
11 changed files with 125 additions and 66 deletions

View file

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

View file

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

View file

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

View file

@ -1,7 +1,8 @@
package mekanism.common; package mekanism.common;
import ic2.api.IElectricItem; import ic2.api.IElectricItem;
import mekanism.api.Infusion; import mekanism.api.InfusionInput;
import mekanism.api.InfusionOutput;
import mekanism.api.InfusionType; import mekanism.api.InfusionType;
import mekanism.api.ItemMachineUpgrade; import mekanism.api.ItemMachineUpgrade;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -97,7 +98,7 @@ public class ContainerMetallurgicInfuser extends Container
return null; 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)) if(!mergeItemStack(slotStack, 2, 3, false))
{ {

View file

@ -4,7 +4,8 @@ import ic2.api.Ic2Recipes;
import java.util.logging.Logger; import java.util.logging.Logger;
import mekanism.api.Infusion; import mekanism.api.InfusionInput;
import mekanism.api.InfusionOutput;
import mekanism.api.InfusionType; import mekanism.api.InfusionType;
import mekanism.api.ItemMachineUpgrade; import mekanism.api.ItemMachineUpgrade;
import mekanism.api.Tier.EnergyCubeTier; import mekanism.api.Tier.EnergyCubeTier;
@ -44,7 +45,7 @@ import cpw.mods.fml.relauncher.SideOnly;
* @author AidanBrady * @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) @NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
public class Mekanism public class Mekanism
{ {
@ -66,7 +67,7 @@ public class Mekanism
public static Configuration configuration; public static Configuration configuration;
/** Mekanism version number */ /** Mekanism version number */
public static Version versionNumber = new Version(5, 0, 4); public static Version versionNumber = new Version(5, 0, 5);
/** Mekanism creative tab */ /** Mekanism creative tab */
public static CreativeTabMekanism tabMekanism = new CreativeTabMekanism(); public static CreativeTabMekanism tabMekanism = new CreativeTabMekanism();
@ -309,7 +310,7 @@ public class Mekanism
RecipeHandler.addTheoreticalElementizerRecipe(new ItemStack(EnrichedAlloy), new ItemStack(TileEntityTheoreticalElementizer.getRandomMagicItem())); RecipeHandler.addTheoreticalElementizerRecipe(new ItemStack(EnrichedAlloy), new ItemStack(TileEntityTheoreticalElementizer.getRandomMagicItem()));
//Metallurgic Infuser Recipes //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 { try {
for(ItemStack ore : OreDictionary.getOres("ingotCopper")) 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) {} } catch(Exception e) {}

View file

@ -1,5 +1,6 @@
package mekanism.common; package mekanism.common;
import universalelectricity.prefab.RecipeHelper;
import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Loader;
import ic2.api.Ic2Recipes; import ic2.api.Ic2Recipes;
import ic2.api.Items; import ic2.api.Items;
@ -22,7 +23,7 @@ public final class MekanismHooks
private Class Railcraft; private Class Railcraft;
private Class BCLoader; private Class BasicComponents;
private Class BuildCraftEnergy; 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, 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, 2), new ItemStack(Item.redstone));
Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 3), new ItemStack(Item.lightStoneDust)); 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); Ic2Recipes.addMatterAmplifier(Mekanism.EnrichedAlloy, 100000);
System.out.println("[Mekanism] Hooked into IC2 successfully."); System.out.println("[Mekanism] Hooked into IC2 successfully.");
@ -79,6 +81,8 @@ public final class MekanismHooks
} }
if(BasicComponentsLoaded) if(BasicComponentsLoaded)
{ {
RecipeHelper.removeRecipes(getBasicComponentsItem("itemSteelDust"));
RecipeHelper.removeRecipes(getBasicComponentsItem("itemSteelIngot"));
System.out.println("[Mekanism] Hooked into BasicComponents successfully."); System.out.println("[Mekanism] Hooked into BasicComponents successfully.");
} }
if(BuildCraftLoaded) 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) public LiquidStack getLiquid(String name)
{ {
return LiquidDictionary.getLiquid(name, 1); return LiquidDictionary.getLiquid(name, 1);

View file

@ -2,7 +2,8 @@ package mekanism.common;
import java.util.Map; import java.util.Map;
import mekanism.api.Infusion; import mekanism.api.InfusionInput;
import mekanism.api.InfusionOutput;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/** /**
@ -67,32 +68,32 @@ public final class RecipeHandler
* @param input - input Infusion * @param input - input Infusion
* @param output - output ItemStack * @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 infusion - input Infusion
* @param stackDecrease - whether or not to decrease the input slot's stack size AND the infuse amount * @param stackDecrease - whether or not to decrease the input slot's stack size AND the infuse amount
* @param recipes - Map of recipes * @param recipes - Map of recipes
* @return output ItemStack * @return InfusionOutput
*/ */
public static ItemStack getOutput(Infusion infusion, boolean stackDecrease, Map<Infusion, ItemStack> recipes) public static InfusionOutput getOutput(InfusionInput infusion, boolean stackDecrease, Map<InfusionInput, InfusionOutput> recipes)
{ {
for(Map.Entry entry : recipes.entrySet()) 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) 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();
} }
} }
} }

View file

@ -11,7 +11,8 @@ import java.util.Map;
import mekanism.api.IActiveState; import mekanism.api.IActiveState;
import mekanism.api.IMachineUpgrade; import mekanism.api.IMachineUpgrade;
import mekanism.api.Infusion; import mekanism.api.InfusionInput;
import mekanism.api.InfusionOutput;
import mekanism.api.InfusionType; import mekanism.api.InfusionType;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; 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 class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implements IEnergySink, IJouleStorage, IVoltage, IPeripheral, IActiveState
{ {
public static Map<Infusion, ItemStack> recipes = new HashMap<Infusion, ItemStack>(); public static Map<InfusionInput, InfusionOutput> recipes = new HashMap<InfusionInput, InfusionOutput>();
/** The type of infuse this machine stores. */ /** The type of infuse this machine stores. */
public InfusionType type = InfusionType.NONE; public InfusionType type = InfusionType.NONE;
@ -263,9 +264,9 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return; 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) if (inventory[2].stackSize <= 0)
{ {
@ -274,11 +275,10 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
if (inventory[3] == null) if (inventory[3] == null)
{ {
inventory[3] = itemstack; inventory[3] = output.resource;
} }
else else {
{ inventory[3].stackSize += output.resource.stackSize;
inventory[3].stackSize += itemstack.stackSize;
} }
} }
@ -294,14 +294,14 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return false; return false;
} }
if(infuseStored-10 < 0) InfusionOutput output = RecipeHandler.getOutput(InfusionInput.getInfusion(type, infuseStored, inventory[2]), false, recipes);
if (output == null)
{ {
return false; return false;
} }
ItemStack itemstack = RecipeHandler.getOutput(Infusion.getInfusion(type, inventory[2]), false, recipes); if(infuseStored-output.getInfuseRequired() < 0)
if (itemstack == null)
{ {
return false; return false;
} }
@ -311,13 +311,13 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return true; return true;
} }
if (!inventory[3].isItemEqual(itemstack)) if (!inventory[3].isItemEqual(output.resource))
{ {
return false; return false;
} }
else else
{ {
return inventory[3].stackSize + itemstack.stackSize <= inventory[3].getMaxStackSize(); return inventory[3].stackSize + output.resource.stackSize <= inventory[3].getMaxStackSize();
} }
} }

View file

@ -66,7 +66,7 @@ public class MekanismGenerators
public void addRecipes() public void addRecipes()
{ {
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 0), new Object[] { 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[] { 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() "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()

View file

@ -31,7 +31,7 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
public TileEntityHeatGenerator() public TileEntityHeatGenerator()
{ {
super("Heat Generator", 160000, 840); super("Heat Generator", 160000, 480);
inventory = new ItemStack[2]; inventory = new ItemStack[2];
} }
@ -119,7 +119,7 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
setActive(true); setActive(true);
} }
fuelSlot.setLiquid(fuelSlot.liquidStored - 10); fuelSlot.setLiquid(fuelSlot.liquidStored - 10);
setJoules(electricityStored + 320); setJoules(electricityStored + 100);
} }
else { else {
if(!worldObj.isRemote) if(!worldObj.isRemote)
@ -158,17 +158,17 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
int boost = 0; int boost = 0;
if(worldObj.getBlockId(xCoord+1, yCoord, zCoord) == 10 || worldObj.getBlockId(xCoord+1, yCoord, zCoord) == 11) 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) 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) 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) 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) 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) if(worldObj.getBlockId(xCoord, yCoord, zCoord-1) == 10 || worldObj.getBlockId(xCoord, yCoord, zCoord-1) == 11)
boost+=100; boost+=80;
return boost; return boost;
} }

View file

@ -31,7 +31,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
public TileEntityHydrogenGenerator() public TileEntityHydrogenGenerator()
{ {
super("Hydrogen Generator", 4000000, 1200); super("Hydrogen Generator", 400000, 1200);
inventory = new ItemStack[2]; inventory = new ItemStack[2];
} }
@ -114,7 +114,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
setActive(true); setActive(true);
} }
hydrogenStored--; hydrogenStored-=10;
setJoules(electricityStored + 1000); setJoules(electricityStored + 1000);
} }
else { else {