动态倒下的树

动态倒下的树

以真实物理效果推倒树木!包含动态倾倒特性、脆弱树叶碰撞机制,并通过ModMenu提供完整配置支持。

游戏机制

Dynamic Falling Tree

为 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 许可证。