package zmaster587.advancedRocketry.tile.multiblock.machine; import java.util.List; import java.util.Set; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import zmaster587.advancedRocketry.api.AdvancedRocketryBlocks; import zmaster587.advancedRocketry.inventory.TextureResources; import zmaster587.libVulpes.api.LibVulpesBlocks; import zmaster587.libVulpes.block.BlockMeta; import zmaster587.libVulpes.client.util.ProgressBarImage; import zmaster587.libVulpes.interfaces.IRecipe; import zmaster587.libVulpes.inventory.modules.IModularInventory; import zmaster587.libVulpes.inventory.modules.ModuleBase; import zmaster587.libVulpes.inventory.modules.ModuleProgress; import zmaster587.libVulpes.recipe.RecipesMachine; import zmaster587.libVulpes.tile.IMultiblock; import zmaster587.libVulpes.tile.multiblock.TileMultiblockMachine; import zmaster587.libVulpes.tile.multiblock.hatch.TileInputHatch; import zmaster587.libVulpes.tile.multiblock.hatch.TileOutputHatch; public class TileElectricArcFurnace extends TileMultiblockMachine implements IModularInventory { public static final Object[][][] structure = { { {null,null,null,null,null}, {null,'P',AdvancedRocketryBlocks.blockBlastBrick,'P',null}, {null,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,null}, {null,AdvancedRocketryBlocks.blockBlastBrick,'P',AdvancedRocketryBlocks.blockBlastBrick,null}, {null,null,null,null,null}, }, { {null,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,null}, {AdvancedRocketryBlocks.blockBlastBrick,Blocks.gold_block,Blocks.air,Blocks.gold_block,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,Blocks.air,Blocks.air,Blocks.air,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,Blocks.air,Blocks.gold_block,Blocks.air,AdvancedRocketryBlocks.blockBlastBrick}, {null,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,null}, }, { {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,Blocks.air,Blocks.air,Blocks.air,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,Blocks.air,Blocks.air,Blocks.air,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,Blocks.air,Blocks.air,Blocks.air,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, }, { {AdvancedRocketryBlocks.blockBlastBrick,'*','c','*',AdvancedRocketryBlocks.blockBlastBrick}, {'*',Blocks.air,Blocks.air,Blocks.air,'*'}, {'*',Blocks.air,Blocks.air,Blocks.air, '*'}, {'*',Blocks.air, Blocks.air,Blocks.air, '*'}, {AdvancedRocketryBlocks.blockBlastBrick,'*','*','*',AdvancedRocketryBlocks.blockBlastBrick}, }, { {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, {AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick,AdvancedRocketryBlocks.blockBlastBrick}, } }; @Override public List<BlockMeta> getAllowableWildCardBlocks() { List<BlockMeta> list = super.getAllowableWildCardBlocks(); list.add(new BlockMeta(LibVulpesBlocks.blockHatch, 0)); list.add(new BlockMeta(LibVulpesBlocks.blockHatch, 1)); list.add(new BlockMeta(AdvancedRocketryBlocks.blockBlastBrick, -1)); return list; } @Override public ResourceLocation getSound() { return TextureResources.sndElectricArcFurnace; } //Since this doesn't have a render just set the meta and masterBlock @Override protected void replaceStandardBlock(int xCoord, int yCoord, int zCoord, Block block, TileEntity tile) { if(block == AdvancedRocketryBlocks.blockBlastBrick) { worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, 1, 2); TileEntity tileEntity = worldObj.getTileEntity(xCoord, yCoord, zCoord); if(tileEntity instanceof IMultiblock) { IMultiblock multiblock = (IMultiblock)tileEntity; multiblock.setComplete(this.xCoord, this.yCoord, this.zCoord); } } } @Override protected void destroyBlockAt(int x, int y, int z, Block block, TileEntity tile) { if(block == AdvancedRocketryBlocks.blockBlastBrick) { worldObj.setBlockMetadataWithNotify(x, y, z, 0, 2); } else super.destroyBlockAt(x, y, z, block, tile); } @Override public Object[][][] getStructure() { return structure; } @Override public List<IRecipe> getMachineRecipeList() { return RecipesMachine.getInstance().getRecipes(this.getClass()); } @Override public String getMachineName() { return "tile.electricArcFurnace.name"; } @Override public List<ModuleBase> getModules(int ID, EntityPlayer player) { // TODO Auto-generated method stub List<ModuleBase> modules = super.getModules(ID, player); modules.add(new ModuleProgress(100, 20, 0, TextureResources.arcFurnaceProgressBar, this)); return modules; } }