
leaf-treegen
为世界添加树木多样性,基于物种JSON。
查看大图LeafTreeGen
通过原版世界生成程序化生成、感知生物群系的自定义树木。
LeafTreeGen 添加了数十种自定义树木品种。树木在 JSON 中通过数学定义,启动时烘焙为原版 .nbt 结构模板,然后添加到拼图模板池中,由游戏自身的世界生成机制处理放置。没有运行时方块放置监听器。
基于我最初为个人 Iris 世界编写的 Python 代码制作,原本使用 .iob 文件。Iris 现在在其最新版本中采用了我的程序化引擎。
我已重新设计,你可以选择只运行一次以生成数据包(基于 .nbt),或者保留它以管理程序化生成和自定义树苗。
截图
樱花林巨树——一棵高耸的巨型樱花树在一片较小的樱花树林上方确立了其匹配的生物群系。
黑暗森林树冠——密集重叠的高大树冠,散布着巨大的蘑菇,从树线以上俯瞰。
黑暗森林蘑菇。
自定义热带草原树木。
圣诞树——所有树木均可通过带有 NBT 标签的树苗放置。
特性
- 匹配生物群系的品种——热带草原金合欢、黑暗森林树冠、冰川松、樱花林、螺旋冠森林和彩虹林,映射到它们适合的生物群系
- 程序化引擎——树木根据每个品种的参数在 Java 中构建:高度、树干形状、倾斜角度和树冠层
- 拼图世界生成——插件在首次加载时写入一个原版世界生成数据包,并让 Minecraft 的结构系统放置树木
- 可种植的树苗——
/leaftree give分发带有 NBT 标签的树苗,在有效生物群系中种植时会生长为随机变种 - 重载命令——
/leaftree reload重新烘焙所有变种并重新生成数据包 - 服务器友好的放置——大树跨多个刻放置,在每刻预算内进行,以保持主线程响应
- 多平台——一个 jar 文件可在 Paper、Folia、Fabric 和 NeoForge 上运行,所有平台均提供相同功能(世界生成、树苗和
/leaftree命令)
品种亮点
| 类别 | 示例 |
|---|---|
| 温带 | 森林、白桦林、原始白桦林、枫树-白桦巨树、白蜡林 |
| 热带 | 丛林、樱花林、蓝花楹林 |
| 寒冷 | 针叶林、原始松树针叶林、冰川松 |
| 黑暗与奇异 | 黑暗森林巨树、螺旋冠森林、彩虹林、辉光菇 |
完整生物群系树木映射表
| 生物群系 | 品种 | 标志性形状 | 角色 |
|---|---|---|---|
forest |
forest |
圆润橡树,中型到大型 | 主要 |
flower_forest |
oak-small-mid |
小型到中型圆润橡树,零散分布 | 主要 |
plains |
oak-small-mid |
稀疏的小型到中型橡树 | 主要 |
meadow |
oak-small-mid |
稀疏的小型到中型橡树 | 主要 |
meadow |
meadow-azalea |
小型橡树干,杜鹃花树冠 | 点缀 |
meadow |
rainbow-grove |
白桦树干,多色调树冠 | 稀有地标 |
dark_forest |
glowcap |
发光的棕色蘑菇灌木 | 下层植被 |
dark_forest |
dark-forest-floor-lights |
微小的菌光体发光蘑菇 | 地面覆盖物 |
dark_forest |
dark-forest-mids |
小型到中型扭曲黑暗橡树 | 中层植被 |
dark_forest |
dark-forest-megas |
带有巨大树冠的巨型黑暗橡树 | 树冠层 |
birch_forest |
birch-forest |
高大纤细的白色白桦 | 主要 |
old_growth_birch_forest |
old-growth-birch-forest |
高耸的原始白桦 | 主要 |
old_growth_birch_forest |
maple-birch-giants |
巨大的枫树和白桦地标 | 稀有地标 |
taiga |
taiga |
锥形云杉 | 主要 |
snowy_taiga |
evergreen |
覆雪的锥形云杉 | 主要 |
snowy_taiga |
christmas-tree |
装饰着饰品的节日云杉 | 极其稀有的地标 |
old_growth_pine_taiga |
old-growth-pine-taiga |
高大、树干裸露的松树 | 主要 |
old_growth_spruce_taiga |
old-growth-pine-taiga |
高大、树干裸露的松树 | 主要 |
snowy_plains |
glacierpine |
覆霜的云杉,带有冰柱尖端 | 主要 |
ice_spikes |
glacierpine |
覆霜的云杉,带有冰柱尖端 | 主要 |
grove |
glacierpine |
覆霜的云杉,带有冰柱尖端 | 主要 |
snowy_slopes |
glacierpine |
覆霜的云杉,带有冰柱尖端 | 稀疏 |
frozen_peaks |
glacierpine |
覆霜的云杉,带有冰柱尖端 | 稀疏 |
jagged_peaks |
glacierpine |
覆霜的云杉,带有冰柱尖端 | 稀疏 |
jungle |
jungle |
丛林树,小型到巨型 | 主要 |
sparse_jungle |
jungle |
丛林树,小型到巨型 | 主要 |
bamboo_jungle |
bamboo-jungle |
环绕着竹子的丛林树 | 主要 |
savanna |
savanna |
平顶倾斜金合欢 | 主要 |
savanna_plateau |
savanna |
平顶倾斜金合欢 | 主要 |
windswept_savanna |
savanna |
平顶倾斜金合欢 | 主要 |
cherry_grove |
cherry-grove |
层叠的粉色樱花树冠 | 主要 |
cherry_grove |
jacaranda-grove |
巨大的垂枝樱花木蓝花楹 | 稀有地标 |
windswept_hills |
ashwood |
覆盖着蜘蛛网的瘦削灰色枯淡橡树 | 主要 |
windswept_forest |
ashwood |
覆盖着蜘蛛网的瘦削灰色枯淡橡树 | 主要 |
windswept_gravelly_hills |
ashwood |
覆盖着蜘蛛网的瘦削灰色枯淡橡树 | 主要 |
swamp |
swamp |
垂挂藤蔓的垂枝橡树 + 红树 | 主要 |
mangrove_swamp |
swamp |
垂挂藤蔓的垂枝橡树 + 红树 | 主要 |
命令
| 命令 | 描述 |
|---|---|
/leaftree generate species=<id> |
在光标位置放置一棵树(管理员测试) |
/leaftree give species=<id> [player] [amount] |
分发自定义树苗 |
/leaftree list [species=<id>] |
列出已注册的品种或变种 |
/leaftree reload |
应用配置更改并重新生成数据包 |
需要 leaftreegen.admin 权限节点。
配置
品种在 species/ 文件夹中定义为 JSON 文件。生物群系分配和放置调整(间距、间隔、盐值)位于 config.yml 中,并支持按品种覆盖。
generation-mode: DATAPACK # DATAPACK | PROCEDURAL | BOTH | NONE
placement:
glacierpine:
spacing: 6
separation: 3
biomes:
- minecraft:snowy_taiga
- minecraft:grove
{
"name": "glacierpine",
"procedural": {
"trunk-block": "minecraft:spruce_log",
"leaf-block": "minecraft:spruce_leaves",
"height-min": 10,
"height-max": 18,
"trunk-shape": "LINEAR",
"canopy": [
{ "yOffset": 0, "radius": 4 },
{ "yOffset": 3, "radius": 3 },
{ "yOffset": 6, "radius": 2 }
]
}
}
要求
- Java 25+
- 以下之一:
- Paper 或 Folia 1.21+
- Fabric 26.1+(Fabric Loader 0.18.4+,Fabric API)
- NeoForge 26.1+
正在加载版本记录…




正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。