Skip to content

🏷️ 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);
}

Official documentation & web portal for Dasik Igaijinn mods.