Finish multi-ID machine support

This commit is contained in:
Aidan Brady 2013-11-27 16:17:10 -05:00
parent 96ba50a673
commit 22fe896bcd
22 changed files with 256 additions and 241 deletions

View file

@ -61,6 +61,7 @@ import mekanism.common.EntityObsidianTNT;
import mekanism.common.EntityRobit;
import mekanism.common.IElectricChest;
import mekanism.common.Mekanism;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.inventory.InventoryElectricChest;
import mekanism.common.item.ItemPortableTeleporter;
import mekanism.common.tileentity.TileEntityAdvancedElectricMachine;
@ -181,7 +182,7 @@ public class ClientProxy extends CommonProxy
FMLClientHandler.instance().getClient().sndManager.playSoundFX("random.chestopen", 1.0F, 1.0F);
ItemStack stack = entityplayer.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
{
InventoryElectricChest inventory = new InventoryElectricChest(entityplayer);
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiElectricChest(entityplayer.inventory, inventory));
@ -198,7 +199,7 @@ public class ClientProxy extends CommonProxy
else {
ItemStack stack = entityplayer.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiPasswordEnter(stack));
}
@ -213,7 +214,7 @@ public class ClientProxy extends CommonProxy
else {
ItemStack stack = entityplayer.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
{
FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiPasswordModify(stack));
}
@ -264,6 +265,7 @@ public class ClientProxy extends CommonProxy
MinecraftForgeClient.registerItemRenderer(Mekanism.energyCubeID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.machineBlockID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.machineBlock2ID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.Robit.itemID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.WalkieTalkie.itemID, handler);
MinecraftForgeClient.registerItemRenderer(Mekanism.gasTankID, handler);

View file

@ -8,6 +8,7 @@ import mekanism.api.energy.IEnergizedItem;
import mekanism.common.IEnergyCube;
import mekanism.common.IFactory;
import mekanism.common.MekanismRecipe;
import mekanism.common.block.BlockMachine.MachineType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
@ -122,7 +123,7 @@ public class MekanismRecipeHandler extends ShapedRecipeHandler
}
else if(stack1.getItem() instanceof IFactory && stack2.getItem() instanceof IFactory)
{
if(((IFactory)stack1.getItem()).isFactory(stack1) && ((IFactory)stack2.getItem()).isFactory(stack2))
if(isFactory(stack1) && isFactory(stack2))
{
if(((IFactory)stack1.getItem()).getRecipeType(stack1) != ((IFactory)stack2.getItem()).getRecipeType(stack2))
{
@ -135,6 +136,11 @@ public class MekanismRecipeHandler extends ShapedRecipeHandler
return true;
}
private static boolean isFactory(ItemStack stack)
{
return MachineType.get(stack) == MachineType.BASIC_FACTORY || MachineType.get(stack) == MachineType.ADVANCED_FACTORY || MachineType.get(stack) == MachineType.ELITE_FACTORY;
}
public class CachedEnergyRecipe extends CachedRecipe
{
public ArrayList<PositionedStack> ingredients;

View file

@ -41,7 +41,7 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
GL11.glPushMatrix();
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
if(metadata == MachineType.ELECTRIC_PUMP.meta)
if(MachineType.get(block.blockID, metadata) == MachineType.ELECTRIC_PUMP)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(90F, 0.0F, -1.0F, 0.0F);
@ -49,7 +49,7 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectricPump.png"));
electricPump.render(0.0560F);
}
else if(metadata == MachineType.METALLURGIC_INFUSER.meta)
else if(MachineType.get(block.blockID, metadata) == MachineType.METALLURGIC_INFUSER)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
@ -57,14 +57,14 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MetallurgicInfuser.png"));
metallurgicInfuser.render(0.0625F);
}
else if(metadata == MachineType.CHARGEPAD.meta)
else if(MachineType.get(block.blockID, metadata) == MachineType.CHARGEPAD)
{
GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(0.0F, -1.1F, 0.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Chargepad.png"));
chargepad.render(0.0625F);
}
else if(metadata == MachineType.LOGISTICAL_SORTER.meta)
else if(MachineType.get(block.blockID, metadata) == MachineType.LOGISTICAL_SORTER)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
@ -72,7 +72,7 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalSorter.png"));
logisticalSorter.render(0.0625F, false);
}
else if(metadata == MachineType.DIGITAL_MINER.meta)
else if(MachineType.get(block.blockID, metadata) == MachineType.DIGITAL_MINER)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);

View file

@ -277,7 +277,7 @@ public class ItemRenderingHandler implements IItemRenderer
MekanismRenderer.glowOff();
}
}
else if(item.getItem() instanceof ItemBlockMachine && item.getItemDamage() == MachineType.ELECTRIC_CHEST.meta)
else if(MachineType.get(item) == MachineType.ELECTRIC_CHEST)
{
IElectricChest chest = (IElectricChest)item.getItem();

View file

@ -152,6 +152,7 @@ public class CommonProxy
Mekanism.boundingBlockID = Mekanism.configuration.getBlock("BoundingBlock", 3005).getInt();
Mekanism.gasTankID = Mekanism.configuration.getBlock("GasTank", 3006).getInt();
Mekanism.transmitterID = Mekanism.configuration.getBlock("Transmitter", 3007).getInt();
Mekanism.machineBlock2ID = Mekanism.configuration.getBlock("MachineBlock2", 3008).getInt();
Mekanism.osmiumGenerationEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "OsmiumGenerationEnabled", true).getBoolean(true);
Mekanism.disableBCSteelCrafting = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "DisableBCSteelCrafting", false).getBoolean(true);

View file

@ -92,11 +92,4 @@ public interface IElectricChest
* @return prevLidAngle value
*/
public float getPrevLidAngle(ItemStack itemStack);
/**
* Whether or not the given ItemStack is an electric chest.
* @param itemStack - stack to check
* @return if the stack is an electric chest
*/
public boolean isElectricChest(ItemStack itemStack);
}

View file

@ -27,21 +27,14 @@ public interface IFactory
*/
public void setRecipeType(int type, ItemStack itemStack);
/**
* Whether or not this item is a Smelting Factory.
* @param itemStack - stack to check
* @return if the item is a smelting factory
*/
public boolean isFactory(ItemStack itemStack);
public static enum RecipeType
{
SMELTING("Smelting", "Smelter.ogg", new ItemStack(Mekanism.MachineBlock, 1, MachineType.ENERGIZED_SMELTER.meta), false),
ENRICHING("Enriching", "Chamber.ogg", new ItemStack(Mekanism.MachineBlock, 1, MachineType.ENRICHMENT_CHAMBER.meta), false),
CRUSHING("Crushing", "Crusher.ogg", new ItemStack(Mekanism.MachineBlock, 1, MachineType.CRUSHER.meta), false),
COMPRESSING("Compressing", "Compressor.ogg", new ItemStack(Mekanism.MachineBlock, 1, MachineType.OSMIUM_COMPRESSOR.meta), true),
COMBINING("Combining", "Combiner.ogg", new ItemStack(Mekanism.MachineBlock, 1, MachineType.COMBINER.meta), true),
PURIFYING("Purifying", "PurificationChamber.ogg", new ItemStack(Mekanism.MachineBlock, 1, MachineType.PURIFICATION_CHAMBER.meta), true);
SMELTING("Smelting", "Smelter.ogg", MachineType.ENERGIZED_SMELTER.getStack(), false),
ENRICHING("Enriching", "Chamber.ogg", MachineType.ENRICHMENT_CHAMBER.getStack(), false),
CRUSHING("Crushing", "Crusher.ogg", MachineType.CRUSHER.getStack(), false),
COMPRESSING("Compressing", "Compressor.ogg", MachineType.OSMIUM_COMPRESSOR.getStack(), true),
COMBINING("Combining", "Combiner.ogg", MachineType.COMBINER.getStack(), true),
PURIFYING("Purifying", "PurificationChamber.ogg", MachineType.PURIFICATION_CHAMBER.getStack(), true);
private String name;
private String sound;

View file

@ -173,14 +173,15 @@ public class Mekanism
public static Set<Object3D> ic2Registered = new HashSet<Object3D>();
//Block IDs
public static int basicBlockID = 3000;
public static int machineBlockID = 3001;
public static int oreBlockID = 3002;
public static int obsidianTNTID = 3003;
public static int energyCubeID = 3004;
public static int boundingBlockID = 3005;
public static int gasTankID = 3006;
public static int transmitterID = 3007;
public static int basicBlockID;
public static int machineBlockID;
public static int machineBlock2ID;
public static int oreBlockID;
public static int obsidianTNTID;
public static int energyCubeID;
public static int boundingBlockID;
public static int gasTankID;
public static int transmitterID;
//Items
public static ItemElectricBow ElectricBow;
@ -205,6 +206,7 @@ public class Mekanism
//Blocks
public static Block BasicBlock;
public static Block MachineBlock;
public static Block MachineBlock2;
public static Block OreBlock;
public static Block ObsidianTNT;
public static Block EnergyCube;
@ -260,7 +262,7 @@ public class Mekanism
{
//Storage Recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(BasicBlock, 1, 3), new Object[] {
"***", "***", "***", Character.valueOf('*'), Item.coal
"***", "***", "***", Character.valueOf('*'), new ItemStack(Item.coal, 1, 1)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Item.coal, 9), new Object[] {
"*", Character.valueOf('*'), new ItemStack(BasicBlock, 1, 3)
@ -575,6 +577,7 @@ public class Mekanism
//Declarations
BasicBlock = new BlockBasic(basicBlockID).setUnlocalizedName("BasicBlock");
MachineBlock = new BlockMachine(machineBlockID).setUnlocalizedName("MachineBlock");
MachineBlock2 = new BlockMachine(machineBlock2ID).setUnlocalizedName("MachineBlock2");
OreBlock = new BlockOre(oreBlockID).setUnlocalizedName("OreBlock");
EnergyCube = new BlockEnergyCube(energyCubeID).setUnlocalizedName("EnergyCube");
ObsidianTNT = new BlockObsidianTNT(obsidianTNTID).setUnlocalizedName("ObsidianTNT").setCreativeTab(tabMekanism);
@ -589,6 +592,7 @@ public class Mekanism
//Add block items into itemsList for blocks with common IDs.
Item.itemsList[basicBlockID] = new ItemBlockBasic(basicBlockID - 256, BasicBlock).setUnlocalizedName("BasicBlock");
Item.itemsList[machineBlockID] = new ItemBlockMachine(machineBlockID - 256, MachineBlock).setUnlocalizedName("MachineBlock");
Item.itemsList[machineBlock2ID] = new ItemBlockMachine(machineBlock2ID - 256, MachineBlock2).setUnlocalizedName("MachineBlock2");
Item.itemsList[oreBlockID] = new ItemBlockOre(oreBlockID - 256, OreBlock).setUnlocalizedName("OreBlock");
Item.itemsList[energyCubeID] = new ItemBlockEnergyCube(energyCubeID - 256, EnergyCube).setUnlocalizedName("EnergyCube");
Item.itemsList[gasTankID] = new ItemBlockGasTank(gasTankID - 256, GasTank).setUnlocalizedName("GasTank");

View file

@ -5,6 +5,7 @@ import java.util.HashMap;
import mekanism.api.IUpgradeManagement;
import mekanism.api.energy.IEnergizedItem;
import mekanism.common.block.BlockMachine.MachineType;
import net.minecraft.block.Block;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
@ -312,7 +313,7 @@ public class MekanismRecipe implements IRecipe
}
else if(target.getItem() instanceof IFactory && input.getItem() instanceof IFactory)
{
if(((IFactory)target.getItem()).isFactory(target) && ((IFactory)input.getItem()).isFactory(input))
if(isFactory(target) && isFactory(input))
{
if(((IFactory)target.getItem()).getRecipeType(target) != ((IFactory)input.getItem()).getRecipeType(input))
{
@ -325,6 +326,11 @@ public class MekanismRecipe implements IRecipe
return true;
}
private static boolean isFactory(ItemStack stack)
{
return MachineType.get(stack) == MachineType.BASIC_FACTORY || MachineType.get(stack) == MachineType.ADVANCED_FACTORY || MachineType.get(stack) == MachineType.ELITE_FACTORY;
}
public MekanismRecipe setMirrored(boolean mirror)
{
mirrored = mirror;

View file

@ -49,7 +49,7 @@ import cpw.mods.fml.relauncher.SideOnly;
* 0: Osmium Block
* 1: Bronze Block
* 2: Refined Obsidian
* 3: Coal Block
* 3: Charcoal Block
* 4: Refined Glowstone
* 5: Steel Block
* 6: Bin

View file

@ -112,6 +112,8 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister register)
{
if(blockID == Mekanism.machineBlockID)
{
icons[blockID][0][0] = register.registerIcon("mekanism:EnrichmentChamberFrontOff");
icons[blockID][0][1] = register.registerIcon("mekanism:EnrichmentChamberFrontOn");
@ -142,6 +144,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
icons[blockID][10][2] = register.registerIcon("mekanism:SteelCasing");
icons[blockID][11][0] = register.registerIcon("mekanism:Teleporter");
}
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityliving, ItemStack itemstack)
@ -398,6 +401,8 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
int metadata = world.getBlockMetadata(x, y, z);
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getBlockTileEntity(x, y, z);
if(blockID == Mekanism.machineBlockID)
{
if(metadata == 0)
{
if(side == tileEntity.facing)
@ -504,6 +509,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
{
return icons[blockID][11][0];
}
}
return null;
}
@ -518,30 +524,24 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
@SideOnly(Side.CLIENT)
public void getSubBlocks(int i, CreativeTabs creativetabs, List list)
{
list.add(new ItemStack(i, 1, 0));
list.add(new ItemStack(i, 1, 1));
list.add(new ItemStack(i, 1, 2));
list.add(new ItemStack(i, 1, 3));
list.add(new ItemStack(i, 1, 4));
for(FactoryTier tier : FactoryTier.values())
for(MachineType type : MachineType.values())
{
for(RecipeType type : RecipeType.values())
if(type.typeId == blockID)
{
ItemStack stack = new ItemStack(i, 1, 5+tier.ordinal());
if(type == MachineType.BASIC_FACTORY || type == MachineType.ADVANCED_FACTORY || type == MachineType.ELITE_FACTORY)
{
for(RecipeType recipe : RecipeType.values())
{
ItemStack stack = new ItemStack(i, 1, type.meta);
((IFactory)stack.getItem()).setRecipeType(type.ordinal(), stack);
list.add(stack);
}
}
list.add(new ItemStack(i, 1, 8));
list.add(new ItemStack(i, 1, 9));
list.add(new ItemStack(i, 1, 10));
list.add(new ItemStack(i, 1, 11));
list.add(new ItemStack(i, 1, 12));
list.add(new ItemStack(i, 1, 13));
list.add(new ItemStack(i, 1, 14));
list.add(new ItemStack(i, 1, 15));
else {
list.add(new ItemStack(i, 1, type.meta));
}
}
}
}
@Override
@ -1055,6 +1055,16 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
}
}
public ItemStack getStack()
{
return new ItemStack(typeId, 1, meta);
}
public static MachineType get(ItemStack stack)
{
return get(stack.itemID, stack.getItemDamage());
}
@Override
public String toString()
{

View file

@ -1,6 +1,7 @@
package mekanism.common.inventory.container;
import mekanism.common.IElectricChest;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.inventory.slot.SlotElectricChest;
import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge;
import mekanism.common.tileentity.TileEntityElectricChest;
@ -165,13 +166,14 @@ public class ContainerElectricChest extends Container
ItemStack itemStack = player.inventory.getStackInSlot(destSlot);
if(itemStack != null && itemStack.getItem() instanceof IElectricChest)
{
if(((IElectricChest)itemStack.getItem()).isElectricChest(itemStack))
if(MachineType.get(itemStack) == MachineType.ELECTRIC_CHEST)
{
return null;
}
}
}
return super.slotClick(slotNumber, destSlot, modifier, player);
}
}

View file

@ -259,12 +259,11 @@ public class ContainerFactory extends Container
{
if(itemStack != null && itemStack.getItem() instanceof ItemBlockMachine)
{
if(itemStack.getItemDamage() == MachineType.ENERGIZED_SMELTER.meta ||
itemStack.getItemDamage() == MachineType.ENRICHMENT_CHAMBER.meta ||
itemStack.getItemDamage() == MachineType.CRUSHER.meta ||
itemStack.getItemDamage() == MachineType.OSMIUM_COMPRESSOR.meta ||
itemStack.getItemDamage() == MachineType.COMBINER.meta ||
itemStack.getItemDamage() == MachineType.PURIFICATION_CHAMBER.meta)
MachineType type = MachineType.get(itemStack);
if(type == MachineType.ENERGIZED_SMELTER || type == MachineType.ENRICHMENT_CHAMBER ||
type == MachineType.CRUSHER || type == MachineType.OSMIUM_COMPRESSOR ||
type == MachineType.COMBINER || type == MachineType.PURIFICATION_CHAMBER)
{
return true;
}

View file

@ -1,6 +1,7 @@
package mekanism.common.inventory.slot;
import mekanism.common.IElectricChest;
import mekanism.common.block.BlockMachine.MachineType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
@ -25,7 +26,7 @@ public class SlotElectricChest extends Slot
if(itemstack.getItem() instanceof IElectricChest)
{
if(((IElectricChest)itemstack.getItem()).isElectricChest(itemstack))
if(MachineType.get(itemstack) == MachineType.ELECTRIC_CHEST)
{
return false;
}

View file

@ -23,7 +23,7 @@ import cpw.mods.fml.relauncher.SideOnly;
* 0: Osmium Block
* 1: Bronze Block
* 2: Refined Obsidian
* 3: Coal Block
* 3: Charcoal Block
* 4: Refined Glowstone
* 5: Steel Block
* 6: Bin
@ -165,7 +165,7 @@ public class ItemBlockBasic extends ItemBlock
name = "RefinedObsidian";
break;
case 3:
name = "CoalBlock";
name = "CharcoalBlock";
break;
case 4:
name = "RefinedGlowstone";

View file

@ -112,23 +112,25 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag)
{
MachineType type = MachineType.get(itemstack);
if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
{
list.add("Hold " + EnumColor.AQUA + "shift" + EnumColor.GREY + " for more details.");
}
else {
if(isFactory(itemstack))
if(type == MachineType.BASIC_FACTORY || type == MachineType.ADVANCED_FACTORY || type == MachineType.ELITE_FACTORY)
{
list.add(EnumColor.INDIGO + "Recipe Type: " + EnumColor.GREY + RecipeType.values()[getRecipeType(itemstack)].getName());
}
if(isElectricChest(itemstack))
if(type == MachineType.ELECTRIC_CHEST)
{
list.add(EnumColor.INDIGO + "Authenticated: " + EnumColor.GREY + getAuthenticated(itemstack));
list.add(EnumColor.INDIGO + "Locked: " + EnumColor.GREY + getLocked(itemstack));
}
if(itemstack.getItemDamage() != MachineType.LOGISTICAL_SORTER.meta)
if(type != MachineType.LOGISTICAL_SORTER)
{
list.add(EnumColor.BRIGHT_GREEN + "Stored Energy: " + EnumColor.GREY + MekanismUtils.getEnergyDisplay(getEnergyStored(itemstack)));
list.add(EnumColor.BRIGHT_GREEN + "Voltage: " + EnumColor.GREY + getVoltage(itemstack) + "v");
@ -148,7 +150,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
list.add(EnumColor.PURPLE + "Speed: " + EnumColor.GREY + "x" + (getSpeedMultiplier(itemstack)+1));
}
if(itemstack.getItemDamage() != 14)
if(type != MachineType.CHARGEPAD && type != MachineType.LOGISTICAL_SORTER)
{
list.add(EnumColor.AQUA + "Inventory: " + EnumColor.GREY + (getInventory(itemstack) != null && getInventory(itemstack).tagCount() != 0));
}
@ -166,7 +168,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
{
boolean place = true;
if(stack.getItemDamage() == MachineType.DIGITAL_MINER.meta)
if(MachineType.get(stack) == MachineType.DIGITAL_MINER)
{
for(int xPos = x-1; xPos <= x+1; xPos++)
{
@ -344,7 +346,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
@Override
public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag)
{
if(isElectricChest(itemstack))
if(MachineType.get(itemstack) == MachineType.ELECTRIC_CHEST)
{
if(world != null && !world.isRemote)
{
@ -493,7 +495,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
{
if(!world.isRemote)
{
if(isElectricChest(itemstack))
if(MachineType.get(itemstack) == MachineType.ELECTRIC_CHEST)
{
if(!getAuthenticated(itemstack))
{
@ -535,12 +537,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
itemStack.stackTagCompound.setInteger("recipeType", type);
}
@Override
public boolean isFactory(ItemStack itemStack)
{
return itemStack.getItem() instanceof ItemBlockMachine && itemStack.getItemDamage() >= 5 && itemStack.getItemDamage() <= 7;
}
@Override
public void setInventory(NBTTagList nbtTags, Object... data)
{
@ -620,7 +616,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
@Override
public boolean hasTank(Object... data)
{
return data[0] instanceof ItemStack && ((ItemStack)data[0]).getItem() instanceof ISustainedTank && ((ItemStack)data[0]).getItemDamage() == 12;
return data[0] instanceof ItemStack && ((ItemStack)data[0]).getItem() instanceof ISustainedTank && MachineType.get((ItemStack)data[0]) == MachineType.ELECTRIC_PUMP;
}
@Override
@ -645,12 +641,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
return itemStack.stackTagCompound.getBoolean("authenticated");
}
@Override
public boolean isElectricChest(ItemStack itemStack)
{
return itemStack.getItemDamage() == 13;
}
@Override
public void setPassword(ItemStack itemStack, String pass)
{

View file

@ -6,6 +6,7 @@ import mekanism.api.Object3D;
import mekanism.api.energy.IEnergizedItem;
import mekanism.common.IElectricChest;
import mekanism.common.Mekanism;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.inventory.InventoryElectricChest;
import mekanism.common.tileentity.TileEntityElectricChest;
import mekanism.common.util.MekanismUtils;
@ -121,7 +122,7 @@ public class PacketElectricChest implements IMekanismPacket
else {
ItemStack stack = player.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
{
if(energy)
{
@ -180,7 +181,7 @@ public class PacketElectricChest implements IMekanismPacket
else {
ItemStack stack = player.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
{
((IElectricChest)stack.getItem()).setPassword(stack, pass);
((IElectricChest)stack.getItem()).setAuthenticated(stack, true);
@ -209,7 +210,7 @@ public class PacketElectricChest implements IMekanismPacket
else {
ItemStack stack = player.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
{
((IElectricChest)stack.getItem()).setLocked(stack, lock);
}

View file

@ -12,6 +12,7 @@ import mekanism.api.gas.GasRegistry;
import mekanism.api.gas.GasStack;
import mekanism.api.gas.GasUtils;
import mekanism.api.gas.IGasAcceptor;
import mekanism.api.gas.IGasItem;
import mekanism.api.gas.IGasStorage;
import mekanism.api.gas.ITubeConnection;
import mekanism.client.sound.IHasSound;
@ -31,7 +32,6 @@ import mekanism.common.util.ChargeUtils;
import mekanism.common.util.MekanismUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import com.google.common.io.ByteArrayDataInput;
@ -257,12 +257,15 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
if(inventory[4] != null && RecipeType.values()[recipeType].usesFuel() && secondaryEnergyStored < getMaxSecondaryEnergy())
{
if(recipeType == RecipeType.PURIFYING.ordinal())
{
if(inventory[4].getItem() instanceof IGasItem)
{
GasStack removed = GasUtils.removeGas(inventory[4], GasRegistry.getGas("oxygen"), getMaxSecondaryEnergy()-secondaryEnergyStored);
setSecondaryEnergy(secondaryEnergyStored + (removed != null ? removed.amount : 0));
return;
}
}
int fuelTicks = RecipeType.values()[recipeType].getFuelTicks(inventory[4]);
int energyNeeded = getMaxSecondaryEnergy() - secondaryEnergyStored;

View file

@ -0,0 +1,6 @@
package mekanism.common.tileentity;
public class TileEntityRotaryCondensentrator extends TileEntityElectricBlock
{
}

View file

@ -55,7 +55,7 @@ public class MekanismGenerators implements IModule
public static Block Generator;
//Block IDs
public static int generatorID = 3005;
public static int generatorID;
//Generation Configuration
public static double advancedSolarGeneration;

View file

@ -2,6 +2,7 @@ package mekanism.induction.common;
import mekanism.common.IModule;
import mekanism.common.Mekanism;
import mekanism.common.MekanismRecipe;
import mekanism.common.Tier.EnergyCubeTier;
import mekanism.common.Version;
import mekanism.common.util.MekanismUtils;
@ -129,23 +130,20 @@ public class MekanismInduction implements IModule
@EventHandler
public void postInit(FMLPostInitializationEvent evt)
{
/** Capacitor **/
GameRegistry.addRecipe(new ShapedOreRecipe(Mekanism.EnergyTablet, "RRR", "RIR", "RRR", 'R', Item.redstone, 'I', UniversalRecipes.PRIMARY_METAL));
/** Linker **/
GameRegistry.addRecipe(new ShapedOreRecipe(Linker, " E ", "GCG", " E ", 'E', Item.eyeOfEnder, 'C', Mekanism.EnergyTablet, 'G', UniversalRecipes.SECONDARY_METAL));
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(Linker), new Object[] {" E ", "GCG", " E ", 'E', Item.eyeOfEnder, 'C', Mekanism.EnergyTablet.getUnchargedItem(), 'G', UniversalRecipes.SECONDARY_METAL}));
/** Tesla - by Jyzarc */
GameRegistry.addRecipe(new ShapedOreRecipe(Tesla, "WEW", " C ", " I ", 'W', Mekanism.EnrichedAlloy, 'E', Item.eyeOfEnder, 'C', Mekanism.EnergyTablet, 'I', new ItemStack(Mekanism.BasicBlock, 1, 8)));
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(Tesla), new Object[] {"WEW", " C ", " I ", 'W', Mekanism.EnrichedAlloy, 'E', Item.eyeOfEnder, 'C', Mekanism.EnergyTablet.getUnchargedItem(), 'I', new ItemStack(Mekanism.BasicBlock, 1, 8)}));
/** Multimeter */
GameRegistry.addRecipe(new ShapedOreRecipe(Multimeter, "WWW", "ICI", 'W', Mekanism.EnrichedAlloy, 'C', Mekanism.EnergyTablet, 'I', UniversalRecipes.PRIMARY_METAL));
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(Multimeter), new Object[] {"WWW", "ICI", 'W', Mekanism.EnrichedAlloy, 'C', Mekanism.EnergyTablet.getUnchargedItem(), 'I', UniversalRecipes.PRIMARY_METAL}));
/** Battery */
GameRegistry.addRecipe(new ShapedOreRecipe(Battery, "III", "IRI", "III", 'R', Block.blockRedstone, 'I', MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC)));
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(Battery), new Object[] {"III", "IRI", "III", 'R', Block.blockRedstone, 'I', MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC)}));
/** EM Contractor */
GameRegistry.addRecipe(new ShapedOreRecipe(ElectromagneticContractor, " I ", "GCG", "WWW", 'W', UniversalRecipes.PRIMARY_METAL, 'C', Mekanism.EnergyTablet, 'G', UniversalRecipes.SECONDARY_METAL, 'I', UniversalRecipes.PRIMARY_METAL));
GameRegistry.addRecipe(new MekanismRecipe(new ItemStack(ElectromagneticContractor), new Object[] {" I ", "GCG", "WWW", 'W', UniversalRecipes.PRIMARY_METAL, 'C', Mekanism.EnergyTablet.getUnchargedItem(), 'G', UniversalRecipes.SECONDARY_METAL, 'I', UniversalRecipes.PRIMARY_METAL}));
}
@Override

View file

@ -29,7 +29,7 @@ item.WalkieTalkie.name=Walkie-Talkie
tile.BasicBlock.OsmiumBlock.name=Osmium Block
tile.BasicBlock.BronzeBlock.name=Bronze Block
tile.BasicBlock.RefinedObsidian.name=Refined Obsidian
tile.BasicBlock.CoalBlock.name=Coal Block
tile.BasicBlock.CharcoalBlock.name=Charcoal Block
tile.BasicBlock.RefinedGlowstone.name=Refined Glowstone
tile.BasicBlock.SteelBlock.name=Steel Block
tile.BasicBlock.Bin.name=Bin