001package net.minecraft.world.gen.feature;
002
003import java.util.Random;
004import net.minecraft.block.Block;
005import net.minecraft.world.World;
006
007public class WorldGenDesertWells extends WorldGenerator
008{
009    public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
010    {
011        while (par1World.isAirBlock(par3, par4, par5) && par4 > 2)
012        {
013            --par4;
014        }
015
016        int var6 = par1World.getBlockId(par3, par4, par5);
017
018        if (var6 != Block.sand.blockID)
019        {
020            return false;
021        }
022        else
023        {
024            int var7;
025            int var8;
026
027            for (var7 = -2; var7 <= 2; ++var7)
028            {
029                for (var8 = -2; var8 <= 2; ++var8)
030                {
031                    if (par1World.isAirBlock(par3 + var7, par4 - 1, par5 + var8) && par1World.isAirBlock(par3 + var7, par4 - 2, par5 + var8))
032                    {
033                        return false;
034                    }
035                }
036            }
037
038            for (var7 = -1; var7 <= 0; ++var7)
039            {
040                for (var8 = -2; var8 <= 2; ++var8)
041                {
042                    for (int var9 = -2; var9 <= 2; ++var9)
043                    {
044                        par1World.setBlock(par3 + var8, par4 + var7, par5 + var9, Block.sandStone.blockID);
045                    }
046                }
047            }
048
049            par1World.setBlock(par3, par4, par5, Block.waterMoving.blockID);
050            par1World.setBlock(par3 - 1, par4, par5, Block.waterMoving.blockID);
051            par1World.setBlock(par3 + 1, par4, par5, Block.waterMoving.blockID);
052            par1World.setBlock(par3, par4, par5 - 1, Block.waterMoving.blockID);
053            par1World.setBlock(par3, par4, par5 + 1, Block.waterMoving.blockID);
054
055            for (var7 = -2; var7 <= 2; ++var7)
056            {
057                for (var8 = -2; var8 <= 2; ++var8)
058                {
059                    if (var7 == -2 || var7 == 2 || var8 == -2 || var8 == 2)
060                    {
061                        par1World.setBlock(par3 + var7, par4 + 1, par5 + var8, Block.sandStone.blockID);
062                    }
063                }
064            }
065
066            par1World.setBlockAndMetadata(par3 + 2, par4 + 1, par5, Block.stoneSingleSlab.blockID, 1);
067            par1World.setBlockAndMetadata(par3 - 2, par4 + 1, par5, Block.stoneSingleSlab.blockID, 1);
068            par1World.setBlockAndMetadata(par3, par4 + 1, par5 + 2, Block.stoneSingleSlab.blockID, 1);
069            par1World.setBlockAndMetadata(par3, par4 + 1, par5 - 2, Block.stoneSingleSlab.blockID, 1);
070
071            for (var7 = -1; var7 <= 1; ++var7)
072            {
073                for (var8 = -1; var8 <= 1; ++var8)
074                {
075                    if (var7 == 0 && var8 == 0)
076                    {
077                        par1World.setBlock(par3 + var7, par4 + 4, par5 + var8, Block.sandStone.blockID);
078                    }
079                    else
080                    {
081                        par1World.setBlockAndMetadata(par3 + var7, par4 + 4, par5 + var8, Block.stoneSingleSlab.blockID, 1);
082                    }
083                }
084            }
085
086            for (var7 = 1; var7 <= 3; ++var7)
087            {
088                par1World.setBlock(par3 - 1, par4 + var7, par5 - 1, Block.sandStone.blockID);
089                par1World.setBlock(par3 - 1, par4 + var7, par5 + 1, Block.sandStone.blockID);
090                par1World.setBlock(par3 + 1, par4 + var7, par5 - 1, Block.sandStone.blockID);
091                par1World.setBlock(par3 + 1, par4 + var7, par5 + 1, Block.sandStone.blockID);
092            }
093
094            return true;
095        }
096    }
097}