ModTree.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package me.km.blocks;
  2. import java.util.Random;
  3. import javax.annotation.Nullable;
  4. import net.minecraft.block.BlockState;
  5. import net.minecraft.block.Blocks;
  6. import net.minecraft.block.trees.Tree;
  7. import net.minecraft.world.gen.blockstateprovider.SimpleBlockStateProvider;
  8. import net.minecraft.world.gen.feature.BaseTreeFeatureConfig;
  9. import net.minecraft.world.gen.feature.ConfiguredFeature;
  10. import net.minecraft.world.gen.feature.Feature;
  11. import net.minecraft.world.gen.feature.FeatureSpread;
  12. import net.minecraft.world.gen.feature.TwoLayerFeature;
  13. import net.minecraft.world.gen.foliageplacer.BlobFoliagePlacer;
  14. import net.minecraft.world.gen.trunkplacer.StraightTrunkPlacer;
  15. public class ModTree extends Tree {
  16. private final BaseTreeFeatureConfig treeConfig;
  17. public ModTree(BlockState leaves) {
  18. treeConfig = new BaseTreeFeatureConfig.Builder(
  19. new SimpleBlockStateProvider(Blocks.OAK_LOG.getDefaultState()),
  20. new SimpleBlockStateProvider(leaves),
  21. new BlobFoliagePlacer(FeatureSpread.func_242252_a(2),
  22. FeatureSpread.func_242252_a(0), 3),
  23. new StraightTrunkPlacer(5, 2, 0),
  24. new TwoLayerFeature(1, 0, 1)).setIgnoreVines().build();
  25. }
  26. @Nullable
  27. @Override
  28. protected ConfiguredFeature<BaseTreeFeatureConfig, ?> getTreeFeature(Random r, boolean largeHive) {
  29. return Feature.TREE.withConfiguration(treeConfig);
  30. }
  31. }