🇪🇸 Español (Spanish)
🇪🇸 Español (Spanish)
Appearance
🇪🇸 Español (Spanish)
🇪🇸 Español (Spanish)
Appearance
This page is written for version:
1.20.4
This page is written for version:
1.20.4
Los efectos de estado, o simplemente estados, son una condición que puede afectar a una entidad. Pueden ser positivos, negativos o neutrales en naturaleza. El juego base aplica estos efectos de varias maneras como comida, pociones, etc.
El comando /effect
puede ser usado para aplicar efectos en una entidad.
En este tutorial añadiremos un nuevo efecto de estado personalizado llamado Tater, el cual te da un punto de experiencia por cada tick del juego.
StatusEffect
Vamos a crear una para nuestro efecto de estado personalizado extendiendo la clase StatusEffect
, el cual es la clase base para todos los efectos.
public class TaterEffect extends StatusEffect {
protected TaterEffect() {
// category: StatusEffectCategory - describes if the effect is helpful (BENEFICIAL), harmful (HARMFUL) or useless (NEUTRAL)
// color: int - Color is the color assigned to the effect (in RGB)
super(StatusEffectCategory.BENEFICIAL, 0xe9b8b3);
}
// Called every tick to check if the effect can be applied or not
@Override
public boolean canApplyUpdateEffect(int duration, int amplifier) {
// In our case, we just make it return true so that it applies the effect every tick
return true;
}
// Called when the effect is applied.
@Override
public boolean applyUpdateEffect(LivingEntity entity, int amplifier) {
if (entity instanceof PlayerEntity) {
((PlayerEntity) entity).addExperience(1 << amplifier); // Higher amplifier gives you experience faster
}
return super.applyUpdateEffect(entity, amplifier);
}
}
Similar a la registración de bloques e items, usamos Registry.register
para registrar nuestro efecto personalizado en el registro de STATUS_EFFECT
. Esto se puede hacer en nuestro inicializador.
public class FabricDocsReferenceEffects implements ModInitializer {
public static final StatusEffect TATER_EFFECT;
static {
TATER_EFFECT = Registry.register(Registries.STATUS_EFFECT, Identifier.of("fabric-docs-reference", "tater"), new TaterEffect());
}
@Override
public void onInitialize() {
// ...
}
}
Puedes asignar un nombre a tu efecto de estado y proveer una textura de ícono para que aparezca en la pantalla de inventario.
El ícono del efecto de estado es una imagen PNG de 18x18 pixeles. Coloca tu ícono personalizado en:
resources/assets/fabric-docs-reference/textures/mob_effect/tater.png
Como cualquier otra traducción, puedes agregar una entrada con el formato de ID "effect.<mod-id>.<effect-identifier>": "Valor"
al archivo de idioma.
{
"effect.fabric-docs-reference.tater": "Tater"
}
Usa el comando /effect give @p fabric-docs-reference:tater
para darle al jugador nuestro efecto Tater. Usa el comando /effect clear
para remover el efecto.
INFO
Para crear una poción que use este efecto, por favor visita la guía sobre Pociones.