40 lines
1.3 KiB
Java
Executable file
40 lines
1.3 KiB
Java
Executable file
package game.worldgen.foliage;
|
|
|
|
import game.block.BlockFlower;
|
|
import game.rng.Random;
|
|
import game.world.BlockPos;
|
|
import game.world.State;
|
|
import game.world.WorldServer;
|
|
import game.worldgen.FeatureGenerator;
|
|
|
|
public class WorldGenFlowers extends FeatureGenerator
|
|
{
|
|
private BlockFlower flower;
|
|
private State field_175915_b;
|
|
|
|
public WorldGenFlowers(BlockFlower p_i45632_1_, BlockFlower.EnumFlowerType p_i45632_2_)
|
|
{
|
|
this.setGeneratedBlock(p_i45632_1_, p_i45632_2_);
|
|
}
|
|
|
|
public void setGeneratedBlock(BlockFlower p_175914_1_, BlockFlower.EnumFlowerType p_175914_2_)
|
|
{
|
|
this.flower = p_175914_1_;
|
|
this.field_175915_b = p_175914_1_.getState().withProperty(p_175914_1_.getTypeProperty(), p_175914_2_);
|
|
}
|
|
|
|
public boolean generate(WorldServer worldIn, Random rand, BlockPos position)
|
|
{
|
|
for (int i = 0; i < 64; ++i)
|
|
{
|
|
BlockPos blockpos = position.add(rand.zrange(8) - rand.zrange(8), rand.zrange(4) - rand.zrange(4), rand.zrange(8) - rand.zrange(8));
|
|
|
|
if (worldIn.isAirBlock(blockpos) && (!worldIn.dimension.hasNoLight() || blockpos.getY() < 511) && this.flower.canBlockStay(worldIn, blockpos, this.field_175915_b))
|
|
{
|
|
worldIn.setState(blockpos, this.field_175915_b, 2);
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|