截图
介绍
The Block Keeps Ticking
这个精美的模组图标由 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,以便其他模组注册自己的刻更新对象,使其在未加载区块中被模拟。
注册自定义刻更新对象
要为你的模组注册自定义刻更新对象:
- 为每个要模拟的方块、方块实体或实体创建一个
TickingObject实现。 继承TickingObject并至少实现:
getType()– 返回你要处理的类(例如某个Block、BlockEntity或Entity子类)getName()– 一个唯一名称,仅用于配置和日志Simulate(...)– 包含模拟逻辑
重要: 你需要自行完整实现自己的 Simulate(...) 方法。The Block Keeps Ticking 只告诉你应该模拟多少刻以及何时模拟。它不提供默认行为,也不会自动推进你的方块或实体。为简化此过程,提供的 API 和工具类中提供了辅助方法,你可以在自己的 Simulate(...) 实现中调用。
可选地重写 getModId() 以返回你的模组 ID,这样日志和配置就能清楚显示是哪个模组注册了该对象。
- 暴露一个
TickingAccessor(推荐) 对于原版或第三方内容,将TickingAccessor接口添加到针对相关类的 mixin 中,并将模拟转发到你现有的刻逻辑。对于自定义方块/实体,你可以选择:
- 实现
TickingAccessor并委托,或者 - 直接在您的
TickingObject内部实现模拟逻辑(不推荐,但对于简单的方块是可行的)。
- 实现
InitializeTickingBlocks入口点 在您的模组中创建一个类,实现InitializeTickingBlocks并注册您的 ticking 对象:
public class YourTickingBlocksInitializer implements InitializeTickingBlocks {
@Override
public void registerTickingBlocks(TickingBlockRegistry registry) {
registry.register(new YourTickingBlock());
// 如有需要,在此注册更多 ticking 对象
}
}
- 在
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 的其他作品
查看全部 →
Quantum Things
Quantum Things 是 Lumien231 的 Random Things 在 1.12.2 上的延续版本。
Better Pet Teleporting
大幅改进宠物传送逻辑,让你不再丢失宠物。支持所有维度中的各类宠物。
Beacon Aura
改进信标效果:让效果持续时间随时间叠加。
Chronos Backups
适用于多个加载器的Minecraft备份工具。专为保存世界中最重要的内容而设计,让备份文件更小。
评论
登录后评论和评分