🏷️ API 与数据驱动标签扩展
📌 代码仓库源码声明:本 Wiki 中的文档反映了代码仓库当前的最新源码状态,可能包含尚未在 CurseForge 和 Modrinth 上发布的开发中功能或最新提交。
📦 数据驱动标签体系
数据包作者与附属模组开发者无需编写 Java 代码,即可深度自定义 True Sleep 的机器与生物行为。
1. 加速机器标签 (#truesleep:accelerated_machines)
- 标签文件路径:
data/truesleep/tags/block_entity_type/accelerated_machines.json - 核心作用:声明在睡眠曲速推进期间获得多倍 Tick 加速的方块实体类型。
json
{
"replace": false,
"values": [
"minecraft:furnace",
"minecraft:blast_furnace",
"minecraft:smoker",
"minecraft:brewing_stand",
"minecraft:campfire",
"minecraft:soul_campfire",
"minecraft:beehive",
"mymod:custom_smelter",
"mymod:alloy_forge"
]
}2. 工作生物标签 (#truesleep:worker_mobs)
- 标签文件路径:
data/truesleep/tags/entity_type/worker_mobs.json - 核心作用:声明受
truesleep:freeze_workers游戏规则管辖的生物类型,而非受制于全局freeze_mobs。
json
{
"replace": false,
"values": [
"minecraft:allay",
"minecraft:villager",
"mymod:goblin_trader"
]
}💻 开发者 Java 代码钩子
1. TimeWarpManager 静态访问器
java
import net.vanillaoutsider.truesleep.logic.TimeWarpManager;
// Check if world time is currently accelerating
boolean isWarping = TimeWarpManager.get().isWarping();
// Get current time stride multiplier
long stride = TimeWarpManager.get().getStride();2. 药水状态效果老化推进接口
java
import net.vanillaoutsider.truesleep.MobEffectInstanceExtensions;
MobEffectInstance effect = mob.getEffect(MobEffects.REGENERATION);
if (effect != null) {
((MobEffectInstanceExtensions) effect).truesleep$ageEffect(skipTicks);
}