@Override public boolean onItemUse( ItemStack stack, EntityPlayer ep, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { ChromaTiles c = ChromaTiles.getTile(world, x, y, z); if (c == ChromaTiles.ROUTERHUB) { stack.stackTagCompound = new NBTTagCompound(); new Coordinate(x, y, z).writeToNBT("target", stack.stackTagCompound); return true; } if (stack.stackTagCompound == null) return false; if (Coordinate.readFromNBT("target", stack.stackTagCompound) == null) return false; if (!(Coordinate.readFromNBT("target", stack.stackTagCompound).getTileEntity(world) instanceof TileEntityRouterHub)) return false; return super.onItemUse(stack, ep, world, x, y, z, side, hitX, hitY, hitZ); }
@Override public final ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z) { int meta = world.getBlockMetadata(target.blockX, target.blockY, target.blockZ); ChromaTiles m = ChromaTiles.getTileFromIDandMetadata(this, meta); ItemStack is = this.getHarvestedItemStack(world, target.blockX, target.blockY, target.blockZ, meta, m); NBTTagCompound nbt = new NBTTagCompound(); ((TileEntityAdjacencyUpgrade) world.getTileEntity(target.blockX, target.blockY, target.blockZ)) .getTagsToWriteToStack(nbt); is.stackTagCompound = nbt.hasNoTags() ? null : (NBTTagCompound) nbt.copy(); return is; }
@Override public void harvestBlock(World world, EntityPlayer ep, int x, int y, int z, int meta) { ChromaTiles c = ChromaTiles.getTile(world, x, y, z); if (c == null) return; if (c == ChromaTiles.PYLON) { } else { boolean silk = EnchantmentHelper.getSilkTouchModifier(ep); TileEntity tile = world.getTileEntity(x, y, z); if (silk) { ItemStack is = c.getCraftedProduct(); if (tile instanceof TileEntityAccelerator) { TileEntityAccelerator te = (TileEntityAccelerator) tile; if (is.stackTagCompound == null) is.stackTagCompound = new NBTTagCompound(); is.stackTagCompound.setInteger("tier", te.getTier()); } ReikaItemHelper.dropItem(world, x + 0.5, y + 0.5, z + 0.5, is); } else { ReikaItemHelper.dropItems(world, x + 0.5, y + 0.5, z + 0.5, this.getPieces(world, x, y, z)); } } }
public ArrayList<ItemStack> getPieces(World world, int x, int y, int z) { ArrayList<ItemStack> li = new ArrayList(); ChromaTiles c = ChromaTiles.getTile(world, x, y, z); if (c == null) return li; switch (c) { case ACCELERATOR: for (int i = 0; i < 4; i++) li.add(ChromaStacks.blueShard); case GUARDIAN: li.add(ChromaStacks.crystalStar); break; default: break; } return li; }
public ArrayList<TileEntityChromaCrystal> getBoosterCrystals(World world, int x, int y, int z) { ArrayList<TileEntityChromaCrystal> li = new ArrayList(); EntityPlayer owner = null; for (Coordinate c : crystalPositions) { if (ChromaTiles.getTile(world, x + c.xCoord, y + c.yCoord, z + c.zCoord) == ChromaTiles.CRYSTAL) { TileEntityChromaCrystal te = (TileEntityChromaCrystal) world.getTileEntity(x + c.xCoord, y + c.yCoord, z + c.zCoord); { EntityPlayer ep = te.getPlacer(); if (ep != null && (owner == null || ep == owner)) { if (owner == null) owner = ep; li.add(te); } } } } return li; }