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