EntityEffectEffect class
Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin
Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/EntityEffectEffect.java
extends: TriggerEffect
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
APPLY, |
REMOVE |
|
|
return |
|
|
return |
|
Ref |
var2 |
|
Store |
var3 |
|
EffectControllerComponent |
var4 |
|
EntityEffect |
var5 |
|
int |
var6 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
Mode Mode() |
|
|
if if(this.effectId != null) |
|
|
if if(var4 != null) |
|
|
if if(this.mode == EntityEffectEffect.Mode.APPLY) |
|
|
if if(var5 == null) |
|
|
if if(this.duration > 0.0F) |
|
|
if if(var6 == Integer.MIN_VALUE) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.effect.builtin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerContext;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEffect;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.EntityEffect;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.OverlapBehavior;
class="kw">import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class EntityEffectEffect class="kw">extends TriggerEffect {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<EntityEffectEffect> CODEC = BuilderCodec.builder(EntityEffectEffect.class, EntityEffectEffect::new, BASE_CODEC)
.append(new KeyedCodec<>("Effect", Codec.STRING), (var0, var1) -> var0.effectId = var1, var0 -> var0.effectId)
.add()
.append(new KeyedCodec<>("Mode", new EnumCodec<>(EntityEffectEffect.Mode.class)), (var0, var1) -> var0.mode = var1, var0 -> var0.mode)
.add()
.append(new KeyedCodec<>("Duration", Codec.FLOAT, false), (var0, var1) -> var0.duration = var1, var0 -> var0.duration)
.add()
.build();
@Nullable
class="kw">private String effectId;
@Nonnull
class="kw">private EntityEffectEffect.Mode mode = EntityEffectEffect.Mode.APPLY;
class="kw">private float duration = -1.0F;
class="kw">public EntityEffectEffect() {
}
@Override
class="kw">public void execute(@Nonnull TriggerContext var1) {
if (this.effectId != null) {
Ref var2 = var1.getEntityRef();
Store var3 = var1.getStore();
EffectControllerComponent var4 = var3.getComponent(var2, EffectControllerComponent.getComponentType());
if (var4 != null) {
if (this.mode == EntityEffectEffect.Mode.APPLY) {
EntityEffect var5 = EntityEffect.getAssetMap().getAsset(this.effectId);
if (var5 == null) {
class="kw">return;
}
if (this.duration > 0.0F) {
var4.addEffect(var2, var5, this.duration, OverlapBehavior.OVERWRITE, var3);
} else {
var4.addEffect(var2, var5, var3);
}
} else {
int var6 = EntityEffect.getAssetMap().getIndex(this.effectId);
if (var6 == Integer.MIN_VALUE) {
class="kw">return;
}
var4.removeEffect(var2, var6, var3);
}
}
}
}
class="kw">public enum Mode {
APPLY,
REMOVE;
Mode() {
}
}
}