🏷️ API y Extensión mediante Etiquetas de Datos
📌 Aviso sobre el código fuente del repositorio: La documentación de esta Wiki refleja el estado actual del código fuente en el repositorio, que puede incluir confirmaciones recientes no publicadas o características en desarrollo antes de los lanzamientos públicos en CurseForge y Modrinth.
📦 Etiquetas Orientadas a Datos (Data-Driven)
Los creadores de datapacks y mods pueden personalizar el comportamiento de máquinas y entidades sin necesidad de programar en Java.
1. Etiqueta de Máquinas Aceleradas (#truesleep:accelerated_machines)
- Ruta del Archivo:
data/truesleep/tags/block_entity_type/accelerated_machines.json - Propósito: Declara los tipos de entidades de bloque que reciben aceleración multitick.
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. Etiqueta de Criaturas Trabajadoras (#truesleep:worker_mobs)
- Ruta del Archivo:
data/truesleep/tags/entity_type/worker_mobs.json - Propósito: Declara los tipos de entidades gobernados por la GameRule
truesleep:freeze_workersen vez defreeze_mobs.
json
{
"replace": false,
"values": [
"minecraft:allay",
"minecraft:villager",
"mymod:goblin_trader"
]
}💻 Hooks de Java para Desarrolladores
1. Acceso Estático a 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. Interfaz de Envejecimiento de Efectos de Pociones
java
import net.vanillaoutsider.truesleep.MobEffectInstanceExtensions;
MobEffectInstance effect = mob.getEffect(MobEffects.REGENERATION);
if (effect != null) {
((MobEffectInstanceExtensions) effect).truesleep$ageEffect(skipTicks);
}