动态倒下的树

动态倒下的树

用逼真的物理效果推倒树木!功能包括动态倾倒、脆弱的树叶碰撞,以及通过ModMenu进行的全面配置支持。

杂项

动态倒树模组

为 Minecraft 1.21.1 (Fabric) 添加逼真的树木倒塌物理效果。砍树时,树木会通过刚体物理模拟倒塌,而不会瞬间消失。

树木倒塌演示

游戏内截图

功能简介

  • 砍断树木底部的原木后,整棵树会通过真实的物理模拟倾斜并倒塌。
  • 方块通过在同一服务器刻中执行 BARRIER -> AIR(屏障 -> 空气)序列移除,实现无闪烁效果。
  • 树木撞击地面时会生成冲击烟雾粒子。
  • 落叶在树木静止后自然破碎,并伴有原版粒子效果。
  • 同时支持有根树木和无根/漂浮树木。

前置需求

依赖 版本
Minecraft 1.21.1
Fabric Loader >= 0.16.9
Fabric API >= 0.110.0+1.21.1
Sable >= 1.2.2

安装步骤

  1. 安装适用于 1.21.1 版本的 Fabric Loader。
  2. 下载 Sable 并将其放入 mods/ 文件夹。
  3. 下载本模组的 JAR 文件,同样放入 mods/ 文件夹。
  4. 启动游戏,然后砍一棵树试试。

配置说明

配置文件会自动生成在 .minecraft/config/treephysics.properties:

rootless_tree_detection=true
requires_axe=false
prevent_interacting_with_trees=true
rooted_dirt_generation=true
impulse_torque=2.0
impulse_force=1.5
选项 描述 默认值
rootless_tree_detection 允许漂浮树木倒塌。 true
requires_axe 仅当手持斧头时触发物理效果。 false
prevent_interacting_with_trees 阻止在正在倒塌的树木上放置或使用物品。 true
rooted_dirt_generation 在自然生成的树木下方生成缠根泥土。 true
impulse_torque 作用于倒塌树木的旋转力。 2.0
impulse_force 作用于倒塌树木的线性推力。 1.5

工作原理

  1. 检测:破坏原木会触发洪水填充搜索,查找相连的原木、树叶以及附着方块。
  2. 验证:检测到的结构会被验证是否为树木(必须有扎根于泥土的根部,或在启用无根模式时含有树叶)。
  3. 组装:有效的树木方块会被转换为 Sable 的 ServerSubLevel——一个由物理引擎驱动的方块容器,具有独立的碰撞和变换属性。
  4. 闪烁修复:原世界方块先被替换为 BARRIER(屏障),再立即替换为 AIR(空气),从而防止任何视觉闪烁。
  5. 冲量:根据玩家位置施加一个方向性的推力和扭矩,使树木倾倒。
  6. 冲击与衰变:在倒塌过程中,服务端会追踪速度。与地面接触时会生成烟雾粒子。树木静止后,树叶会自然破碎。

技术细节

  • 基于 Sable 物理引擎,使用 SubLevel 刚体模拟技术。
  • 所有物理计算在服务端运行,并通过网络同步至客户端。
  • 兼容单人游戏和多人游戏。
  • 基于 MIT 许可证开源。