001 package net.minecraft.world.gen.feature;
002
003 import java.util.Random;
004 import net.minecraft.block.Block;
005 import net.minecraft.world.World;
006
007 public 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 }