package makeo.gadomancy.common.blocks; import makeo.gadomancy.common.Gadomancy; import makeo.gadomancy.common.blocks.tiles.TileNodeManipulator; import makeo.gadomancy.common.registration.RegisteredItems; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import thaumcraft.api.ThaumcraftApiHelper; import thaumcraft.common.blocks.BlockStoneDevice; import thaumcraft.common.items.wands.ItemWandCasting; import thaumcraft.common.lib.research.ResearchManager; import java.util.List; /** * This class is part of the Gadomancy Mod * Gadomancy is Open Source and distributed under the * GNU LESSER GENERAL PUBLIC LICENSE * for more read the LICENSE file * <p/> * Created by HellFirePvP @ 26.10.2015 19:23 */ public class BlockNodeManipulator extends BlockStoneDevice { public BlockNodeManipulator() { setBlockName("blockNodeManipulator"); setCreativeTab(RegisteredItems.creativeTab); } @Override public void registerBlockIcons(IIconRegister ir) { super.registerBlockIcons(ir); iconPedestal[1] = ir.registerIcon(Gadomancy.MODID + ":manipulator_bot"); iconWandPedestal[0] = ir.registerIcon(Gadomancy.MODID + ":manipulator_side"); iconWandPedestal[1] = ir.registerIcon(Gadomancy.MODID + ":manipulator_top"); iconWandPedestalFocus[0] = ir.registerIcon(Gadomancy.MODID + ":manipulator_focus_side"); iconWandPedestalFocus[1] = ir.registerIcon(Gadomancy.MODID + ":manipulator_focus_top"); iconWandPedestalFocus[2] = ir.registerIcon(Gadomancy.MODID + ":manipulator_focus_bot"); } @Override public TileEntity createNewTileEntity(World world, int meta) { return null; } //TC stuff... @Override public TileEntity createTileEntity(World world, int metadata) { if (metadata == 5) return new TileNodeManipulator(); return null; } @Override public int getComparatorInputOverride(World world, int x, int y, int z, int rs) { int ret = super.getComparatorInputOverride(world, x, y, z, rs); TileEntity te = world.getTileEntity(x, y, z); if (te != null && te instanceof TileNodeManipulator) return 0; return ret; } @Override public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { par3List.add(new ItemStack(par1, 1, 5)); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float par7, float par8, float par9) { TileNodeManipulator tile = (TileNodeManipulator) world.getTileEntity(x, y, z); ItemStack heldItem = player.getHeldItem(); if(tile.isInMultiblock()) { super.onBlockActivated(world, x, y, z, player, side, par7, par8, par9); } else if(!world.isRemote && heldItem != null && heldItem.getItem() instanceof ItemWandCasting) { tile.checkMultiblock(); if (tile.isMultiblockStructurePresent()) { String research = tile.getMultiblockType().getResearchNeeded(); if(!ResearchManager.isResearchComplete(player.getCommandSenderName(), research)) return false; if (ThaumcraftApiHelper.consumeVisFromWandCrafting(player.getCurrentEquippedItem(), player, tile.getMultiblockType().getMultiblockCosts(), true)) { tile.formMultiblock(); return true; } } } return false; } }