@Override public List<BlockPos> getRelativeBlocks(IBlockAccess world, BlockPos pos, IBlockState state, List<BlockPos> availableBlocks) { ArrayList<BlockPos> poses = new ArrayList<BlockPos>(); for(int i = -4; i <= 4; i++) { for(int k = -4; k <= 4; k++) { BlockPos newPos = pos.add(i, 0, k); if(BlockEndPortalFrame.class.isInstance(world.getBlockState(newPos).getBlock()) || BlockEndPortal.class.isInstance(world.getBlockState(newPos).getBlock())) { poses.add(newPos); } } } return poses; }
private void nomEndCake(World world, int x, int y, int z, EntityPlayer player) { if (player.canEat(false)) { int l = world.getBlockMetadata(x, y, z) + 1; if (l >= 6) { return; } else { player.getFoodStats().addStats(2, 0.1F); world.setBlockMetadataWithNotify(x, y, z, l, 2); if (world.provider.dimensionId == 0) { if (!BlockEndPortal.bossDefeated) player.addPotionEffect(new PotionEffect(Potion.resistance.id, 200, 1)); player.travelToDimension(1); } } } }
private void func_70975_a(int p_70975_1_, int p_70975_2_) { byte var3 = 64; BlockEndPortal.field_72275_a = true; byte var4 = 4; for(int var5 = var3 - 1; var5 <= var3 + 32; ++var5) { for(int var6 = p_70975_1_ - var4; var6 <= p_70975_1_ + var4; ++var6) { for(int var7 = p_70975_2_ - var4; var7 <= p_70975_2_ + var4; ++var7) { double var8 = (double)(var6 - p_70975_1_); double var10 = (double)(var7 - p_70975_2_); double var12 = var8 * var8 + var10 * var10; if(var12 <= ((double)var4 - 0.5D) * ((double)var4 - 0.5D)) { if(var5 < var3) { if(var12 <= ((double)(var4 - 1) - 0.5D) * ((double)(var4 - 1) - 0.5D)) { this.field_70170_p.func_94575_c(var6, var5, var7, Block.field_71986_z.field_71990_ca); } } else if(var5 > var3) { this.field_70170_p.func_94575_c(var6, var5, var7, 0); } else if(var12 > ((double)(var4 - 1) - 0.5D) * ((double)(var4 - 1) - 0.5D)) { this.field_70170_p.func_94575_c(var6, var5, var7, Block.field_71986_z.field_71990_ca); } else { this.field_70170_p.func_94575_c(var6, var5, var7, Block.field_72102_bH.field_71990_ca); } } } } } this.field_70170_p.func_94575_c(p_70975_1_, var3 + 0, p_70975_2_, Block.field_71986_z.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_, var3 + 1, p_70975_2_, Block.field_71986_z.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_, var3 + 2, p_70975_2_, Block.field_71986_z.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_ - 1, var3 + 2, p_70975_2_, Block.field_72069_aq.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_ + 1, var3 + 2, p_70975_2_, Block.field_72069_aq.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_, var3 + 2, p_70975_2_ - 1, Block.field_72069_aq.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_, var3 + 2, p_70975_2_ + 1, Block.field_72069_aq.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_, var3 + 3, p_70975_2_, Block.field_71986_z.field_71990_ca); this.field_70170_p.func_94575_c(p_70975_1_, var3 + 4, p_70975_2_, Block.field_72084_bK.field_71990_ca); BlockEndPortal.field_72275_a = false; }
/** * Creates the ender portal leading back to the normal world after defeating the enderdragon. */ private void createEnderPortal(int par1, int par2) { byte var3 = 64; BlockEndPortal.field_149948_a = true; byte var4 = 4; for (int var5 = var3 - 1; var5 <= var3 + 32; ++var5) { for (int var6 = par1 - var4; var6 <= par1 + var4; ++var6) { for (int var7 = par2 - var4; var7 <= par2 + var4; ++var7) { double var8 = (double)(var6 - par1); double var10 = (double)(var7 - par2); double var12 = var8 * var8 + var10 * var10; if (var12 <= ((double)var4 - 0.5D) * ((double)var4 - 0.5D)) { if (var5 < var3) { if (var12 <= ((double)(var4 - 1) - 0.5D) * ((double)(var4 - 1) - 0.5D)) { this.worldObj.setBlock(var6, var5, var7, Blocks.bedrock); } } else if (var5 > var3) { this.worldObj.setBlock(var6, var5, var7, Blocks.air); } else if (var12 > ((double)(var4 - 1) - 0.5D) * ((double)(var4 - 1) - 0.5D)) { this.worldObj.setBlock(var6, var5, var7, Blocks.bedrock); } else { this.worldObj.setBlock(var6, var5, var7, Blocks.end_portal); } } } } } this.worldObj.setBlock(par1, var3 + 0, par2, Blocks.bedrock); this.worldObj.setBlock(par1, var3 + 1, par2, Blocks.bedrock); this.worldObj.setBlock(par1, var3 + 2, par2, Blocks.bedrock); this.worldObj.setBlock(par1 - 1, var3 + 2, par2, Blocks.torch); this.worldObj.setBlock(par1 + 1, var3 + 2, par2, Blocks.torch); this.worldObj.setBlock(par1, var3 + 2, par2 - 1, Blocks.torch); this.worldObj.setBlock(par1, var3 + 2, par2 + 1, Blocks.torch); this.worldObj.setBlock(par1, var3 + 3, par2, Blocks.bedrock); this.worldObj.setBlock(par1, var3 + 4, par2, Blocks.dragon_egg); BlockEndPortal.field_149948_a = false; }
private void createEnderPortal(int p_70975_1_, int p_70975_2_) { byte b0 = 64; BlockEndPortal.field_149948_a = true; byte b1 = 4; for (int k = b0 - 1; k <= b0 + 32; ++k) { for (int l = p_70975_1_ - b1; l <= p_70975_1_ + b1; ++l) { for (int i1 = p_70975_2_ - b1; i1 <= p_70975_2_ + b1; ++i1) { double d0 = (double)(l - p_70975_1_); double d1 = (double)(i1 - p_70975_2_); double d2 = d0 * d0 + d1 * d1; if (d2 <= ((double)b1 - 0.5D) * ((double)b1 - 0.5D)) { if (k < b0) { if (d2 <= ((double)(b1 - 1) - 0.5D) * ((double)(b1 - 1) - 0.5D)) { this.worldObj.setBlock(l, k, i1, Blocks.bedrock); } } else if (k > b0) { this.worldObj.setBlock(l, k, i1, Blocks.air); } else if (d2 > ((double)(b1 - 1) - 0.5D) * ((double)(b1 - 1) - 0.5D)) { this.worldObj.setBlock(l, k, i1, Blocks.bedrock); } else { this.worldObj.setBlock(l, k, i1, Blocks.end_portal); } } } } } this.worldObj.setBlock(p_70975_1_, b0 + 0, p_70975_2_, Blocks.bedrock); this.worldObj.setBlock(p_70975_1_, b0 + 1, p_70975_2_, Blocks.bedrock); this.worldObj.setBlock(p_70975_1_, b0 + 2, p_70975_2_, Blocks.bedrock); this.worldObj.setBlock(p_70975_1_ - 1, b0 + 2, p_70975_2_, Blocks.torch); this.worldObj.setBlock(p_70975_1_ + 1, b0 + 2, p_70975_2_, Blocks.torch); this.worldObj.setBlock(p_70975_1_, b0 + 2, p_70975_2_ - 1, Blocks.torch); this.worldObj.setBlock(p_70975_1_, b0 + 2, p_70975_2_ + 1, Blocks.torch); this.worldObj.setBlock(p_70975_1_, b0 + 3, p_70975_2_, Blocks.bedrock); this.worldObj.setBlock(p_70975_1_, b0 + 4, p_70975_2_, Blocks.dragon_egg); BlockEndPortal.field_149948_a = false; }
/** * Creates the ender portal leading back to the normal world after defeating the enderdragon. */ private void createEnderPortal(int par1, int par2) { byte b0 = 64; BlockEndPortal.bossDefeated = true; byte b1 = 4; for (int k = b0 - 1; k <= b0 + 32; ++k) { for (int l = par1 - b1; l <= par1 + b1; ++l) { for (int i1 = par2 - b1; i1 <= par2 + b1; ++i1) { double d0 = (double)(l - par1); double d1 = (double)(i1 - par2); double d2 = d0 * d0 + d1 * d1; if (d2 <= ((double)b1 - 0.5D) * ((double)b1 - 0.5D)) { if (k < b0) { if (d2 <= ((double)(b1 - 1) - 0.5D) * ((double)(b1 - 1) - 0.5D)) { this.worldObj.setBlock(l, k, i1, Block.bedrock.blockID); } } else if (k > b0) { this.worldObj.setBlock(l, k, i1, 0); } else if (d2 > ((double)(b1 - 1) - 0.5D) * ((double)(b1 - 1) - 0.5D)) { this.worldObj.setBlock(l, k, i1, Block.bedrock.blockID); } else { this.worldObj.setBlock(l, k, i1, Block.endPortal.blockID); } } } } } this.worldObj.setBlock(par1, b0 + 0, par2, Block.bedrock.blockID); this.worldObj.setBlock(par1, b0 + 1, par2, Block.bedrock.blockID); this.worldObj.setBlock(par1, b0 + 2, par2, Block.bedrock.blockID); this.worldObj.setBlock(par1 - 1, b0 + 2, par2, Block.torchWood.blockID); this.worldObj.setBlock(par1 + 1, b0 + 2, par2, Block.torchWood.blockID); this.worldObj.setBlock(par1, b0 + 2, par2 - 1, Block.torchWood.blockID); this.worldObj.setBlock(par1, b0 + 2, par2 + 1, Block.torchWood.blockID); this.worldObj.setBlock(par1, b0 + 3, par2, Block.bedrock.blockID); this.worldObj.setBlock(par1, b0 + 4, par2, Block.dragonEgg.blockID); BlockEndPortal.bossDefeated = false; }