package me.km.blocks; import java.util.Random; import javax.annotation.Nullable; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.trees.Tree; import net.minecraft.world.gen.blockstateprovider.SimpleBlockStateProvider; import net.minecraft.world.gen.feature.BaseTreeFeatureConfig; import net.minecraft.world.gen.feature.ConfiguredFeature; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.FeatureSpread; import net.minecraft.world.gen.feature.TwoLayerFeature; import net.minecraft.world.gen.foliageplacer.BlobFoliagePlacer; import net.minecraft.world.gen.trunkplacer.StraightTrunkPlacer; public class ModTree extends Tree { private final BaseTreeFeatureConfig treeConfig; public ModTree(BlockState leaves) { treeConfig = new BaseTreeFeatureConfig.Builder( new SimpleBlockStateProvider(Blocks.OAK_LOG.getDefaultState()), new SimpleBlockStateProvider(leaves), new BlobFoliagePlacer(FeatureSpread.func_242252_a(2), FeatureSpread.func_242252_a(0), 3), new StraightTrunkPlacer(5, 2, 0), new TwoLayerFeature(1, 0, 1)).setIgnoreVines().build(); } @Nullable @Override protected ConfiguredFeature getTreeFeature(Random r, boolean largeHive) { return Feature.TREE.withConfiguration(treeConfig); } }