跳到正文

The Block Keeps Ticking

作者:MagicJinn

在区块未加载时模拟方块刻和实体生长,让你的农场、熔炉和被动型生物即使在远处也能持续生长和运作。

收藏

截图

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

The Block Keeps Ticking

icon

这个精美的模组图标由 Twitter/X 上的 Sulmino_ 制作。

在未加载的区块中模拟方块刻和实体

The Block Keeps Ticking 是 Alive World(Presence Not Required 的一个分支)的完全重写版本,它允许方块和实体在未加载的区块中继续运作,因此即使你身处远方,你的农场、熔炉和被动生物也能持续生长和工作。

特性

  • 离开时模拟: 当你离开某些区块时,模拟这些未加载区块中的方块和实体。
  • 方块支持:
  • 方块实体: 熔炉、营火、酿造台
  • 作物与茎秆: 小麦、胡萝卜、马铃薯、甜菜根、火把花、南瓜和西瓜
  • 下界疣: 生长进度
  • 可可豆: 生长进度
  • 树木: 树苗生长
  • 树叶: 腐烂进度
  • 生长植物: 海带、竹子、甘蔗、仙人掌
  • 干燥恶魂与嗅探兽蛋: 水合与孵化进度
  • 紫水晶母岩: 生长进度
  • 炼药锅: 水和岩浆滴落
  • 泥巴与耕地: 滴水石上方的泥巴转化为黏土、耕地水合
  • 甜浆果丛: 生长进度
  • 实体支持: 可成长生物(向成年生长),包括未加载区块中的鸡下蛋

*注意:由于嗅探兽蛋和干燥恶魂的处理方式,模拟过程中会损失一些精度。

  • 时间模式: 在世界时间(仅在游玩时推进)或现实时间(即使离线也会推进)之间选择。
  • 睡眠后模拟: 时间跳过(例如因睡眠产生)将在跳过的时长内模拟已加载的区块。
  • 懒惰税设置: 配置模拟刻的百分比削减,以按你偏好的平衡程度减慢模拟速度。
  • 逐对象配置: 单独为特定方块和实体启用或禁用模拟。
  • 命令: 所有者/管理员命令,用于查看或更改配置,以及手动模拟区块或方块(见下文)。
  • 服务端: 安装在服务器上时,玩家无需安装该模组。也可安装在单人世界中。

配置

你可以通过 ModMenu 和 YetAnotherConfigLib、编辑 config\the-block-keeps-ticking.json,或使用 /tbkt config(见命令)来配置以下数值。

  • 时间源: 在“世界时间”(仅在游玩时推进)或“现实时间”(即使离线也会推进)之间选择。现实时间与懒惰税配合良好。(默认:世界时间)
  • 睡眠后模拟: 启用后,时间跳过(例如因睡眠产生)将在跳过的时长内模拟已加载的区块。(默认:true)
  • 最小驻留时间(刻): 驻留时间少于此值的区块不会被模拟。可降低探索时的卡顿。6000 即 5 分钟。0 表示始终模拟。范围:0–24000。(默认:6000)
  • 惰性税(%): 模拟刻数会按此百分比减少。提高此值会减慢未加载区块中的模拟速度。范围:0-99。(默认:0)
  • 调试日志: 启用后会在模拟发生时记录详细日志,包括扫描与模拟耗时、驻留时间跳过以及错峰追赶切片。(默认:false)
  • 刻更新对象: 针对每种受支持的方块类型和实体提供独立开关,用于启用或禁用模拟。默认全部启用。

命令

所有命令均需要权限等级 4。也可通过 /theblockkeepsticking ... 使用。

  • /tbkt config:列出当前配置值及设置用法
  • /tbkt config reload:从磁盘重新加载配置,并写入任何缺失的默认值
  • /tbkt config set <option> <value>:设置通用选项(timeMode、lazyTaxPercent、simulateChunksWhenSleeping、minInhabitedTicks、debugLogging)
  • /tbkt config set tickingObject <true|false> <name>:启用或禁用某个刻更新对象
  • /tbkt simulate chunk <ticks> [<chunkX> <chunkZ>]:模拟已加载区块中的所有刻更新对象。省略坐标则使用执行玩家所在的区块
  • /tbkt simulate block <ticks> [<x> <y> <z>]:模拟单个受支持的方块或方块实体。省略坐标则使用执行玩家所在的位置

simulate chunk 要求区块已加载。

⚠️ 警告:此模组会存储 Fabric 区块附加数据。移除它可能会导致关于未知附加类型的无害日志刷屏。这是 Fabric 的限制,并非模组的 Bug。


API 用法

The Block Keeps Ticking 暴露了一个小型 API,以便其他模组注册自己的刻更新对象,使其在未加载区块中被模拟。

注册自定义刻更新对象

要为你的模组注册自定义刻更新对象:

  1. 为每个要模拟的方块、方块实体或实体创建一个 TickingObject 实现。 继承 TickingObject 并至少实现:
  • getType() – 返回你要处理的类(例如某个 Block、BlockEntity 或 Entity 子类)
  • getName() – 一个唯一名称,仅用于配置和日志
  • Simulate(...) – 包含模拟逻辑

重要: 你需要自行完整实现自己的 Simulate(...) 方法。The Block Keeps Ticking 只告诉你应该模拟多少刻以及何时模拟。它不提供默认行为,也不会自动推进你的方块或实体。为简化此过程,提供的 API 和工具类中提供了辅助方法,你可以在自己的 Simulate(...) 实现中调用。

可选地重写 getModId() 以返回你的模组 ID,这样日志和配置就能清楚显示是哪个模组注册了该对象。

  1. 暴露一个 TickingAccessor(推荐) 对于原版或第三方内容,将 TickingAccessor 接口添加到针对相关类的 mixin 中,并将模拟转发到你现有的刻逻辑。对于自定义方块/实体,你可以选择:
  • 实现 TickingAccessor 并委托,或者
  • 直接在您的 TickingObject 内部实现模拟逻辑(不推荐,但对于简单的方块是可行的)。
  1. 实现 InitializeTickingBlocks 入口点 在您的模组中创建一个类,实现 InitializeTickingBlocks 并注册您的 ticking 对象:
   public class YourTickingBlocksInitializer implements InitializeTickingBlocks {
       @Override
       public void registerTickingBlocks(TickingBlockRegistry registry) {
           registry.register(new YourTickingBlock());
           // 如有需要,在此注册更多 ticking 对象
       }
   }
  1. 在 fabric.mod.json 中注册入口点 在您模组的 fabric.mod.json 中,添加指向您初始化器的 theblockkeepsticking 入口点:
   "entrypoints": {
     "theblockkeepsticking": [
       "[[YOUR-MODID]].YourTickingBlocksInitializer"
     ]
   }

当 The Block Keeps Ticking 初始化时,它会发现所有 theblockkeepsticking 入口点并调用 registerTickingBlocks,将您的 TickingObject 接入模拟系统。

API 示例项目

此仓库在 api-example 文件夹下包含一个 API 示例模组。它演示了:

  • 如何为原版 ChestBlockEntity 实现自定义的 TickingObject(TickingChestBlockEntity)
  • 如何使用 mixin 加上 TickingAccessor 接口来桥接现有的 tick 逻辑
  • 如何挂接到 theblockkeepsticking 入口点(APIExampleTickingBlocks)并注册您的 ticking 对象

您可以将此示例作为将您自己的模组与 The Block Keeps Ticking 集成的起点。

常见问题

The Block Keeps Ticking 支持哪些 Minecraft 版本?

The Block Keeps Ticking 支持 Minecraft Java 版 1.21.6–26.3,共 11 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。

The Block Keeps Ticking 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。

评论

登录后评论和评分

MagicJinn 的其他作品

查看全部 →