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:
parent
c758a5121b
commit
4f7bc5f635
11 changed files with 125 additions and 66 deletions
|
@ -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);
|
||||
}
|
||||
}
|
22
src/minecraft/mekanism/api/InfusionInput.java
Normal file
22
src/minecraft/mekanism/api/InfusionInput.java
Normal 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);
|
||||
}
|
||||
}
|
30
src/minecraft/mekanism/api/InfusionOutput.java
Normal file
30
src/minecraft/mekanism/api/InfusionOutput.java
Normal 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);
|
||||
}
|
||||
}
|
|
@ -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))
|
||||
{
|
||||
|
|
|
@ -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) {}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -294,30 +294,30 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
|
|||
return false;
|
||||
}
|
||||
|
||||
if(infuseStored-10 < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
InfusionOutput output = RecipeHandler.getOutput(InfusionInput.getInfusion(type, infuseStored, inventory[2]), false, recipes);
|
||||
|
||||
ItemStack itemstack = RecipeHandler.getOutput(Infusion.getInfusion(type, 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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue