# 树木生成

首先我们需要参照 **方块基础** 一节所讲解的内容，创建树木的木头和叶子两个方块和它们的材质。

### 树木生成配置

在任意物品配置文件中添加如下内容：

```
trees_populators:
  my_tree:
    worlds:
    - world
    bottom_blocks:
    - DIRT
    - GRASS_BLOCK
    - PODZOL
    chance: 40.0
    max_height: 100
    min_height: 50
    amount: 3
    iterations: 2
    tree_type: TREE
    leaves: myitems:my_leaves
    log: myitems:my_log
    biomes:
    - PLAINS
    - SUNFLOWER_PLAINS
    - MOUNTAINS
```

所给的示例配置中，我们创建了id为 `my_tree` 的树木生成器，其下为其配置，包括：

* worlds：该生成规则所生效的世界，可以添加无数多的世界。
* bottom\_blocks：该树木在哪些方块上生成，可以添加无数多的方块。
* chance：各个区块在生成时使用该生成规则的概率，`100` 即代表生成新的区块时必定使用 **1** 次该规则，也就是在合适情况下必定会至少有 **1** 棵这样的树木生成。
* min\_height：该生成规则的最低高度。
* max\_height：该生成规则的最高高度。
* iterations：在 `chance` 选项下，生成规则在该区块被决定使用后，将会生成多少组的树木。
* amount：每组树木的数量，一组树木将会相邻生成。
* 在上面配置中，1个区块必定有1次生成，1次生成将会生成 **2** 组树，每组树实际生成 **3** 个树木，所以 **1** 个区块实际生成 **6** 棵树。
* tree\_type：树木类型。树木类型决定你设置的自定义树木的样式，例如丛林木较高，而橡木矮小，请试想你在玩单机MC时各个树木的样式，就是它们！
* levels：叶子的方块id。
* log：原木的方块id。
* biomes：该生成规则在哪些生物群系使用。

### 树木类型

* TREE：普通的树，类似最普通橡木。
* BIG\_TREE：高大的树，只是比 `TREE` 树干高了一些，你可以理解游戏中高大一些的橡木的样子。
* REDWOOD：云杉树，数根树根交叉后笔直向上。
* TALL\_REDWOOD：高大的云杉树。树顶的树叶较为稀少。
* BIRCH：白桦树。
* JUNGLE：丛林树。有 **4** 格宽。
* SMALL\_JUNGLE：小丛林树。仅 **1** 格宽。
* COCOA\_TREE：带有可可豆的树木。仅 **1** 格宽。
* JUNGLE\_BUSH：丛林灌木。较丛林木较矮小。
* RED\_MUSHROOML：红蘑菇。又小又宽。
* BROWN\_MUSHROOM：灰蘑菇。像伞状一样。
* SWAMP：沼泽树。将会有苔藓附在其上。
* ACACIA：金合欢树。
* DARK\_OAK：深色橡树。
* MEGA\_REDWOOD：巨型云杉树。有 **4** 格宽。
* TALL\_BIRCH：高大的白桦树。树顶的树叶较为稀少。
* CHORUS\_PLANT：紫菘植物样式。末地外岛遍地都是的就是它。
* CRIMSON\_FUNGUS：下界绯红树。
* WARPED\_FUNGUS：下界扭曲树。
* AZALEA：杜鹃花树。在繁茂洞穴上生成。

具体的图片和介绍可以在 [**Minecraft Wiki**](https://minecraft.fandom.com/zh/wiki/%E6%A0%91%E6%9C%A8) 上找到。

### 树苗

设置完树木以后，我们需要再设置这个树木的树木。找到任意一个物品，在其下添加如下行为属性即可：

```
    behaviours:
      sapling:
        tree_populator: orange_tree
```

例如：

```
items:
  orange_tree_sapling:
    display_name: 树苗
    permission: orange_tree_sapling
    resource:
      material: ORANGE_WOOL
      generate: true
      textures:
      - block/orange/sapling.png
    behaviours:
      sapling:
        tree_populator: orange_tree
```

### 树木的限制

* 不建议在末地使用。
* 当自定义的树木和原版树木混在一起时将会产生问题，这是MC本身原因导致的。
* 较大的树木在生成时将会产生性能问题，不建议设置过多的高大树木。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.superiormc.cn/itemsadder-doc/fang-kuai/shu-mu-sheng-cheng.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
