项目目标
在尊重 Minecraft 图形风格化表现的同时,创造更加动态、美观、有趣且自然的树木,并严格控制项目范围以保持简洁。
我们的核心价值观是:
- 与 Minecraft 美术风格沉浸式融合
- 保持项目范围小而精
- 对性能影响尽可能低
- 以模组兼容性为核心
也可以试试 Dynamic Trees Plus!
特性
正在生长的树是一种由根土、树枝和树叶方块组成的多方块结构,相比原版 Minecraft 的树结构有许多改进。树的形成始于种子。这个种子既可以像原版树苗一样由玩家手动种植,也有机会在被留在地面且位置合适时自行种下。随后,树会从幼苗开始生长,随着时间慢慢变大,最终长成一棵完整的大树。之后你可以从树根处将其砍倒,一次性获取全部木材。
树木
- 会随着时间逐步从种子长成成熟树木。
- 以接近现实树木的自然方式生长,且通常会长成独特而可信的形态。
- 会以自然的方式绕开障碍物生长。
- 并不只是换皮肤;不同树种使用不同的生长算法。
- 生长速度和成熟大小受生物群系、温度和降雨影响。
- 会随机掉落种子,这些种子可能自行种下。
- 不会在黑暗中生长。未连接到外层树枝上的树叶,或缺乏光照的树叶会死亡。没有树叶的外层树枝会慢慢腐烂。
- 在黑暗环境中会死亡并腐烂(某些树种腐烂时会长出蘑菇)。
- 在树叶方块上行走会变慢并下陷。掉落到树叶上会免疫摔落伤害,但会破坏树叶。
- 原版水果(苹果和可可豆)拥有各自独立的树种以便区分。(苹果是橡树的变种,可可是丛林木的变种)
- 细树枝可以像梯子一样攀爬。
- 树木在被砍倒、撞击地面、落入水中或修枝时都有自定义音效。
- 树木倒地时树叶会产生粒子效果。
成熟的橡树
根土
- 为树木提供养分,并会随着时间推移被消耗
- 施加骨粉可提高土壤肥力,并允许树木长到超过成熟状态
- 可施加多种酿造药水以产生不同效果(见下一节)
- 当对土壤或最底部树干方块施加作用物质时,整棵树会产生特殊效果粒子
- 可使用比较器检测土壤肥力等级
药水
- Biochar Base:用于酿造的基础树木药水
- Potion of Depletion:完全耗尽土壤,使树停止生长
- Potion of Burgeoning:让树木完全施肥,然后在肥力耗尽前加速生长
- Potion of Transformation:将现有的 Dynamic Trees 树木变成另一种树种
- Potion of Gigas:将树木转换为其 Mega 变种(如果有)。默认可作用于云杉和丛林木。
种子
- 取代原版树苗
- 会从树木上随机掉落(可配置)
- 若放置在森林中的泥土/草方块/灰化土上,且上方可直视天空,则可自行种下(可配置)
树苗(上:橡树、云杉、白桦、丛林木;下:金合欢、深色橡树、绯红菌、诡异菌)及其对应种子。
兼容性
- 原版树木可正常运作。
- 可禁用世界生成,以便仍然生成原版树木。
- 生长中的树掉落物全部为原版树叶、木棍和原木。树枝在生存模式中无法获得。剪刀只能获得原版树叶。
- 木材和树叶均使用原版材质,因此对资源包友好。
- 可使用泥土桶在原版树苗和种子之间相互合成。
- 火焰蔓延和燃烧速度与原版树火一致。
季节系统
Dynamic Trees 为其树木完整实现了季节系统,默认兼容 Serene Seasons。树木会对气候作出反应,并相应减缓/停止生长。果实也有特定的收获季和开花季。
完整的果实及其适宜季节列表请访问 the wiki。
要启用此系统,至少需要一个季节模组。
如果插件默认尚未兼容,也可以接入季节系统。
森林
- 随着树木掉落种子,森林边界会不断扩张。
- 树木彼此靠近时会争夺阳光,因此会比开阔地中的树长得更高更瘦,从而形成森林树冠效果。
- 树冠会遮挡天光,形成白天也会刷怪、树苗难以生长的黑暗森林。
- 某些树种的黑暗森林树冠下,泥土或草方块会转化为灰化土。灰化土旨在模拟森林地面的落叶层外观。
橡树林的边缘
平原旁的橡树林
稀疏分布着金合欢树的热带草原
海岸附近的针叶林,后方是巨型针叶林
茂密森林中细长的白桦树
高大丛林树的树冠让森林地面变得昏暗
一片阴郁的绯红森林,旁边是较小的诡异森林
采伐
- 从树根处砍伐会使整棵树倒下
- 更粗的树枝需要更长时间采集
- 可以从树上拆下整根树枝,而不影响树的主体结构
- 采伐会产出原版原木和木棍,其数量根据整棵树或树枝的木材总体积计算
- 斧头上的 Fortune 附魔会真正发挥作用,并提高原木产量
- 工具耐久损耗取决于采集到的原木数量(可配置)
- 如果外层树枝未受损,被破坏的树叶会重新长出
- 树木在被采伐时会倒下(可配置)
Woodland Staff
Woodland Staff 是一种为创造模式设计的多功能工具(无法合成)。最基础的用途是复制树木。手持法杖右键任意动态树,即可提取其 JoCode。然后对可生长土壤右键,即可重建同样的树。树木还会根据玩家朝向旋转。如果玩家潜行时用法杖右键树木,则只会复制树种,JoCode 保持不变。
借助这一点,例如你可以创造出一棵拥有高大丛林树外形的金合欢树。
Woodland Staff 的另一个功能是:从树木中提取出的任何 JoCode 也会作为文本复制到系统剪贴板。这使玩家可以轻松与他人分享树木模型。
Dynamic Trees Plus
Dynamic Trees Plus 是 Dynamic Trees 的扩展模组,仅适用于 1.16.5 及以上版本,旨在为一些不适合纳入本模组范围的其他植被添加动态版本,例如仙人掌和巨型蘑菇。
恶地生物群系中的巨柱仙人掌(Dynamic Trees Plus 1.16.5 及以上版本的特性)
Tree Packs
Tree Packs 是一个类似数据包的 JSON 系统,已实装到 Dynamic Trees 中,可对动态树木及你的世界进行完全自定义。它们是所有附加模组的基础骨架,同时也是用户和整合包制作者的强大工具。
Tree Packs 能做什么?
- 修改任意树木的属性,如生长速度、大小、树叶方块、树叶类型、生长形状、树干粗细、掉落物等!
- 使用任意方块作为基础,创建全新的树木。
- 创建自定义果实和荚果。
- 为任意树木添加自定义特性,例如藤蔓、开花树叶。
- 即使没有编程知识的人也很容易学习和使用。
有关 Tree Packs 的更多信息和指南,请访问 https://github.com/DynamicTreesTeam/DynamicTrees/wiki/Tree-Packs 或加入我们的 discord。
模组兼容性
附加模组
附加模组是使用 Dynamic Trees API,以更模块化、更易维护的方式为其他模组树木提供支持的模组。这样可以避免基础版 Dynamic Trees 因只包含原版 Minecraft 树木之外的内容而变得臃肿。以下是当前由 DynamicTreesTeam 和其他模组作者开发的附加模组列表。有关这些模组能提供哪些树木的信息,请参阅它们各自的项目页面。
- 完整的 addons 列表请访问 https://github.com/DynamicTreesTeam/DynamicTrees/wiki
兼容模组
这些模组的特性能很好地与 Dynamic Trees 结合,兼容性较为明显或已被明确提供。不在此列表中的模组不一定不兼容。
- Create:伐木机可与动态树正常配合
- Distant Horizons:树木在 LOD 区块中会按预期渲染。
- Better Foliage:树叶方块会按预期得到增强(不适用于树干圆角功能)
- Better Beginnings:不能徒手砍树,工具会按预期工作。
- Passable Leaves / Passable Foliage:安装此模组后,Dynamic Tree 的树叶会变为可穿过。
- No Tree Punching:树木将成功无法徒手击打,祝你好运!
如前所述,实现季节的模组将与 Dynamic Trees 的季节系统兼容。
- Serene Seasons
- Better Weather:自 1.16+ 的 0.10.0 Beta 23 起
不兼容模组
- Applied Energistics 2:陨石生成会破坏动态生成的树木。
- Tree Chopper:已知会导致崩溃或使树木不掉落任何东西。
- Liquid Luck:已知安装此模组后,Dynamic Trees 不会掉落原木和木棍。
- Cave Biomes API:区块生成的更改会导致树木生成错误
项目范围
项目范围
属于范围内的功能示例
- 树,而且只有树。
- 提供原版树木的高级生长版本
- 零到极少配置。应当在合理设置或默认设置下开箱即用
- 为其他模组开发者提供接口,以通过附加模组扩展本模组,添加新树木、效果、生物和其他内容。如果你需要 hook,告诉我 :)
- 响应季节变化
- 在合适时尽可能实现与其他热门模组的兼容
- 风格化表现不应偏离 Minecraft 美术风格。方块模型的所有部分都应由长方体组成,并且每个面都对齐到 1/16 米(Minecraft 标准 texel)
超出范围的功能示例
- 原版 Minecraft 中未实现的树种(例如 Forestry、Pam's Harvestcraft、Natura、Biomes O' Plenty 中的树种)。如需兼容这些内容,请参阅 Addons 部分。
- 生物实体、怪物和/或粒子(树人、松鼠、猴子、萤火虫等)
- 果实(除原版 Minecraft 树木产物中的水果:苹果、可可豆外)
- 地牢战利品(对这个模组毫无意义)
- 树屋村庄、村民和/或贸易站
- 秋千或其他常挂在树上的装置
- 魔法、能量系统、XP 掉落、附魔
- 工具和/或服饰(生存模式下不提供,管理员工具也许可以)
- 嫁接
- 树木遗传和/或授粉,例如 forestry 中那种
- 自动施肥机、探测器,或任何与树互动的机器
这类功能永远不会被实现。我并不是说这些点子不好或不好玩,但它们确实超出了本项目应完成的范围。
如果有人想实现这些超出范围的功能,欢迎以单独的扩展模组或兼容模组形式来做。热门模组往往会出现范围膨胀和功能过载。最终你就会得到喷气背包、金属矿石树、nyan cat、燃烧的超级死亡仙人掌剑,以及 15 种苦力怕。我可不接受这种情况。
技术细节
技术细节
底层实现
树木生长使用树叶的元胞自动机算法与树干/树枝的分支网络逻辑相结合
不使用 tile entity rendering。渲染通过 BakedModels 完成,以便在大量树节点下获得更好的性能
树叶仅通过 updateTick() 更新,因此区块只会在脏时重新渲染,频率不会比原版农作物更高
使用 DropCreator 接口来创建种子掉落和其他物品。其他模组可以注册新的 drop creator,以扩展现有或新的树木行为
世界生成使用自定义变体的 Adaptive Incremental Stippling(AIS),结合 PoissonDisk Distribution,实现高质量且互不重叠的树木摆放
季节数据可在此处获取
许可、授权与整合包
现明确授权:你可以在任何整合包或服务器中使用本模组。既然我已经告诉你可以用了,就请不要再来问能不能把这个模组放进你的整合包里,这很烦。署名会很好,但不是强制要求。未经提供 CurseForge 下载链接并获得我的许可,你不得将本模组重新发布到其他网站。对了,我有提到你可以在整合包中使用这个模组吧?……很好!说明你有认真看!
](https://discord.gg/A4FCBS3) [