package net.minecraft.world.gen.feature; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityEnderCrystal; import net.minecraft.init.Blocks; import net.minecraft.util.BlockPos; import net.minecraft.world.World; public class WorldGenSpikes extends WorldGenerator { private Block field_150520_a; private static final String __OBFID = "CL_00000433"; public WorldGenSpikes(Block p_i45464_1_) { this.field_150520_a = p_i45464_1_; } public boolean generate(World worldIn, Random p_180709_2_, BlockPos p_180709_3_) { if (worldIn.isAirBlock(p_180709_3_) && worldIn.getBlockState(p_180709_3_.offsetDown()).getBlock() == this.field_150520_a) { int var4 = p_180709_2_.nextInt(32) + 6; int var5 = p_180709_2_.nextInt(4) + 1; int var6; int var7; int var8; int var9; for (var6 = p_180709_3_.getX() - var5; var6 <= p_180709_3_.getX() + var5; ++var6) { for (var7 = p_180709_3_.getZ() - var5; var7 <= p_180709_3_.getZ() + var5; ++var7) { var8 = var6 - p_180709_3_.getX(); var9 = var7 - p_180709_3_.getZ(); if (var8 * var8 + var9 * var9 <= var5 * var5 + 1 && worldIn.getBlockState(new BlockPos(var6, p_180709_3_.getY() - 1, var7)).getBlock() != this.field_150520_a) { return false; } } } for (var6 = p_180709_3_.getY(); var6 < p_180709_3_.getY() + var4 && var6 < 256; ++var6) { for (var7 = p_180709_3_.getX() - var5; var7 <= p_180709_3_.getX() + var5; ++var7) { for (var8 = p_180709_3_.getZ() - var5; var8 <= p_180709_3_.getZ() + var5; ++var8) { var9 = var7 - p_180709_3_.getX(); int var10 = var8 - p_180709_3_.getZ(); if (var9 * var9 + var10 * var10 <= var5 * var5 + 1) { worldIn.setBlockState(new BlockPos(var7, var6, var8), Blocks.obsidian.getDefaultState(), 2); } } } } EntityEnderCrystal var11 = new EntityEnderCrystal(worldIn); var11.setLocationAndAngles((double)((float)p_180709_3_.getX() + 0.5F), (double)(p_180709_3_.getY() + var4), (double)((float)p_180709_3_.getZ() + 0.5F), p_180709_2_.nextFloat() * 360.0F, 0.0F); worldIn.spawnEntityInWorld(var11); worldIn.setBlockState(p_180709_3_.offsetUp(var4), Blocks.bedrock.getDefaultState(), 2); return true; } else { return false; } } }