package net.minecraft.world.gen.feature;
import com.google.common.base.Predicates;
import java.util.Iterator;
import java.util.Random;
import net.minecraft.block.BlockSand;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.BlockStoneSlab;
import net.minecraft.block.state.IBlockState;
import net.minecraft.block.state.pattern.BlockStateHelper;
import net.minecraft.init.Blocks;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
public class WorldGenDesertWells extends WorldGenerator
{
private static final BlockStateHelper field_175913_a = BlockStateHelper.forBlock(Blocks.sand).func_177637_a(BlockSand.VARIANT_PROP, Predicates.equalTo(BlockSand.EnumType.SAND));
private final IBlockState field_175911_b;
private final IBlockState field_175912_c;
private final IBlockState field_175910_d;
private static final String __OBFID = "CL_00000407";
public WorldGenDesertWells()
{
this.field_175911_b = Blocks.stone_slab.getDefaultState().withProperty(BlockStoneSlab.field_176556_M, BlockStoneSlab.EnumType.SAND).withProperty(BlockSlab.HALF_PROP, BlockSlab.EnumBlockHalf.BOTTOM);
this.field_175912_c = Blocks.sandstone.getDefaultState();
this.field_175910_d = Blocks.flowing_water.getDefaultState();
}
public boolean generate(World worldIn, Random p_180709_2_, BlockPos p_180709_3_)
{
while (worldIn.isAirBlock(p_180709_3_) && p_180709_3_.getY() > 2)
{
p_180709_3_ = p_180709_3_.offsetDown();
}
if (!field_175913_a.func_177639_a(worldIn.getBlockState(p_180709_3_)))
{
return false;
}
else
{
int var4;
int var5;
for (var4 = -2; var4 <= 2; ++var4)
{
for (var5 = -2; var5 <= 2; ++var5)
{
if (worldIn.isAirBlock(p_180709_3_.add(var4, -1, var5)) && worldIn.isAirBlock(p_180709_3_.add(var4, -2, var5)))
{
return false;
}
}
}
for (var4 = -1; var4 <= 0; ++var4)
{
for (var5 = -2; var5 <= 2; ++var5)
{
for (int var6 = -2; var6 <= 2; ++var6)
{
worldIn.setBlockState(p_180709_3_.add(var5, var4, var6), this.field_175912_c, 2);
}
}
}
worldIn.setBlockState(p_180709_3_, this.field_175910_d, 2);
Iterator var7 = EnumFacing.Plane.HORIZONTAL.iterator();
while (var7.hasNext())
{
EnumFacing var8 = (EnumFacing)var7.next();
worldIn.setBlockState(p_180709_3_.offset(var8), this.field_175910_d, 2);
}
for (var4 = -2; var4 <= 2; ++var4)
{
for (var5 = -2; var5 <= 2; ++var5)
{
if (var4 == -2 || var4 == 2 || var5 == -2 || var5 == 2)
{
worldIn.setBlockState(p_180709_3_.add(var4, 1, var5), this.field_175912_c, 2);
}
}
}
worldIn.setBlockState(p_180709_3_.add(2, 1, 0), this.field_175911_b, 2);
worldIn.setBlockState(p_180709_3_.add(-2, 1, 0), this.field_175911_b, 2);
worldIn.setBlockState(p_180709_3_.add(0, 1, 2), this.field_175911_b, 2);
worldIn.setBlockState(p_180709_3_.add(0, 1, -2), this.field_175911_b, 2);
for (var4 = -1; var4 <= 1; ++var4)
{
for (var5 = -1; var5 <= 1; ++var5)
{
if (var4 == 0 && var5 == 0)
{
worldIn.setBlockState(p_180709_3_.add(var4, 4, var5), this.field_175912_c, 2);
}
else
{
worldIn.setBlockState(p_180709_3_.add(var4, 4, var5), this.field_175911_b, 2);
}
}
}
for (var4 = 1; var4 <= 3; ++var4)
{
worldIn.setBlockState(p_180709_3_.add(-1, var4, -1), this.field_175912_c, 2);
worldIn.setBlockState(p_180709_3_.add(-1, var4, 1), this.field_175912_c, 2);
worldIn.setBlockState(p_180709_3_.add(1, var4, -1), this.field_175912_c, 2);
worldIn.setBlockState(p_180709_3_.add(1, var4, 1), this.field_175912_c, 2);
}
return true;
}
}
}