Client Interactions¶
Interacciones que se ejecutan y verifican en el cliente, sincronizándose con el servidor.
Tipos de Client Interactions¶
DestroyBlockInteraction¶
Destruye un bloque objetivo.
Ubicación: com.hypixel.hytale.server.core.modules.interaction.interaction.config.client.DestroyBlockInteraction.java
public class DestroyBlockInteraction extends SimpleInstantInteraction {
protected void firstRun(InteractionType type,
InteractionContext context,
CooldownHandler cooldownHandler) {
BlockPosition blockPosition = context.getTargetBlock();
if (blockPosition != null) {
BlockHarvestUtils.performBlockBreak(...);
}
}
}
PlaceBlockInteraction¶
Coloca un bloque en la posición objetivo.
public class PlaceBlockInteraction extends SimpleInstantInteraction {
protected void firstRun(...) {
// Colocar bloque
}
}
UseEntityInteraction¶
Interactúa con una entidad (abrir interfaz, montar, etc.).
public class UseEntityInteraction extends SimpleInstantInteraction {
protected void firstRun(...) {
// Usar entidad
}
}
ChargingInteraction¶
Interacción progresiva que se carga con el tiempo (ej: arco).
public class ChargingInteraction extends Interaction {
float chargeTime; // Tiempo para carga completa
protected void tick0(...) {
float charge = time / chargeTime;
// Actualizar carga
}
}
Ejemplo de Uso¶
// Definir interacción personalizada
public class MiInteraccionCliente extends SimpleInstantInteraction {
@Override
protected void firstRun(InteractionType type,
InteractionContext ctx,
CooldownHandler cooldown) {
// Obtener datos del contexto
BlockPosition block = ctx.getTargetBlock();
Ref<EntityStore> entity = ctx.getMetaObject(Interaction.TARGET_ENTITY);
// Ejecutar lógica
if (block != null) {
processBlock(block, ctx);
}
// Marcar como completada
ctx.getState().state = InteractionState.Finished;
}
}
Ver También¶
- Overview: Sistema de interacciones
- Block Interactions: Interacciones con bloques