package net.minecraft.world.gen.feature;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.util.ForgeDirection;
public class WorldGenShrub extends WorldGenTrees
{
private int field_150528_a;
private int field_150527_b;
private static final String __OBFID = "CL_00000411";
public WorldGenShrub(int p_i2015_1_, int p_i2015_2_)
{
super(false);
this.field_150527_b = p_i2015_1_;
this.field_150528_a = p_i2015_2_;
}
public boolean generate(World p_76484_1_, Random p_76484_2_, int p_76484_3_, int p_76484_4_, int p_76484_5_)
{
Block block;
do
{
block = p_76484_1_.getBlock(p_76484_3_, p_76484_4_, p_76484_5_);
if (!(block.isLeaves(p_76484_1_, p_76484_3_, p_76484_4_, p_76484_5_) || block.isAir(p_76484_1_, p_76484_3_, p_76484_4_, p_76484_5_)))
{
break;
}
--p_76484_4_;
} while (p_76484_4_ > 0);
Block block1 = p_76484_1_.getBlock(p_76484_3_, p_76484_4_, p_76484_5_);
if (block1.canSustainPlant(p_76484_1_, p_76484_3_, p_76484_4_, p_76484_5_, ForgeDirection.UP, (IPlantable)Blocks.sapling))
{
++p_76484_4_;
this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_, p_76484_4_, p_76484_5_, Blocks.log, this.field_150527_b);
for (int l = p_76484_4_; l <= p_76484_4_ + 2; ++l)
{
int i1 = l - p_76484_4_;
int j1 = 2 - i1;
for (int k1 = p_76484_3_ - j1; k1 <= p_76484_3_ + j1; ++k1)
{
int l1 = k1 - p_76484_3_;
for (int i2 = p_76484_5_ - j1; i2 <= p_76484_5_ + j1; ++i2)
{
int j2 = i2 - p_76484_5_;
if ((Math.abs(l1) != j1 || Math.abs(j2) != j1 || p_76484_2_.nextInt(2) != 0) && p_76484_1_.getBlock(k1, l, i2).canBeReplacedByLeaves(p_76484_1_, k1, l, i2))
{
this.setBlockAndNotifyAdequately(p_76484_1_, k1, l, i2, Blocks.leaves, this.field_150528_a);
}
}
}
}
}
return true;
}
}