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 WorldGenTaiga1 extends WorldGenerator 008 { 009 public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) 010 { 011 int var6 = par2Random.nextInt(5) + 7; 012 int var7 = var6 - par2Random.nextInt(2) - 3; 013 int var8 = var6 - var7; 014 int var9 = 1 + par2Random.nextInt(var8 + 1); 015 boolean var10 = true; 016 017 if (par4 >= 1 && par4 + var6 + 1 <= 128) 018 { 019 int var11; 020 int var13; 021 int var14; 022 int var15; 023 int var18; 024 025 for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) 026 { 027 boolean var12 = true; 028 029 if (var11 - par4 < var7) 030 { 031 var18 = 0; 032 } 033 else 034 { 035 var18 = var9; 036 } 037 038 for (var13 = par3 - var18; var13 <= par3 + var18 && var10; ++var13) 039 { 040 for (var14 = par5 - var18; var14 <= par5 + var18 && var10; ++var14) 041 { 042 if (var11 >= 0 && var11 < 128) 043 { 044 var15 = par1World.getBlockId(var13, var11, var14); 045 046 Block block = Block.blocksList[var15]; 047 048 if (var15 != 0 && (block == null || !block.isLeaves(par1World, var13, var11, var14))) 049 { 050 var10 = false; 051 } 052 } 053 else 054 { 055 var10 = false; 056 } 057 } 058 } 059 } 060 061 if (!var10) 062 { 063 return false; 064 } 065 else 066 { 067 var11 = par1World.getBlockId(par3, par4 - 1, par5); 068 069 if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 128 - var6 - 1) 070 { 071 this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); 072 var18 = 0; 073 074 for (var13 = par4 + var6; var13 >= par4 + var7; --var13) 075 { 076 for (var14 = par3 - var18; var14 <= par3 + var18; ++var14) 077 { 078 var15 = var14 - par3; 079 080 for (int var16 = par5 - var18; var16 <= par5 + var18; ++var16) 081 { 082 int var17 = var16 - par5; 083 084 Block block = Block.blocksList[par1World.getBlockId(var14, var13, var16)]; 085 086 if ((Math.abs(var15) != var18 || Math.abs(var17) != var18 || var18 <= 0) && 087 (block == null || block.canBeReplacedByLeaves(par1World, var14, var13, var16))) 088 { 089 this.setBlockAndMetadata(par1World, var14, var13, var16, Block.leaves.blockID, 1); 090 } 091 } 092 } 093 094 if (var18 >= 1 && var13 == par4 + var7 + 1) 095 { 096 --var18; 097 } 098 else if (var18 < var9) 099 { 100 ++var18; 101 } 102 } 103 104 for (var13 = 0; var13 < var6 - 1; ++var13) 105 { 106 var14 = par1World.getBlockId(par3, par4 + var13, par5); 107 108 Block block = Block.blocksList[var14]; 109 110 if (var14 == 0 || block == null || block.isLeaves(par1World, par3, par4 + var13, par5)) 111 { 112 this.setBlockAndMetadata(par1World, par3, par4 + var13, par5, Block.wood.blockID, 1); 113 } 114 } 115 116 return true; 117 } 118 else 119 { 120 return false; 121 } 122 } 123 } 124 else 125 { 126 return false; 127 } 128 } 129 }