Skip to content

🏷️ API и Расширение через теги данных

📌 Отказ от ответственности за исходный код: Документация в этой Вики отражает текущее состояние исходного кода в репозитории, которое может включать недавние невыпущенные коммиты или разрабатываемые функции до публичных релизов на CurseForge и Modrinth.


📦 Теги данных (Data-Driven Tags)

Создатели датапаков и разработчики аддонов могут настраивать поведение машин и существ без написания Java-кода.


1. Тег ускоряемых машин (#truesleep:accelerated_machines)

  • Путь к файлу тега: data/truesleep/tags/block_entity_type/accelerated_machines.json
  • Назначение: Объявляет типы тайл-энтити, получающие мульти-тики во время сна.
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.