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;
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))
{

View file

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

View file

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

View file

@ -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<Infusion, ItemStack> recipes)
public static InfusionOutput getOutput(InfusionInput infusion, boolean stackDecrease, Map<InfusionInput, InfusionOutput> 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();
}
}
}

View file

@ -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<Infusion, ItemStack> recipes = new HashMap<Infusion, ItemStack>();
public static Map<InfusionInput, InfusionOutput> recipes = new HashMap<InfusionInput, InfusionOutput>();
/** 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();
}
}

View file

@ -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()

View file

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

View file

@ -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 {