StateCombatAction class
Пакет: com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.combatactions
Файл: com/hypixel/hytale/builtin/npccombatactionevaluator/evaluator/combatactions/StateCombatAction.java
extends: CombatActionOption
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Ref |
var7 |
|
HytaleLogger.Api |
var8 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
String |
getStateString getState() |
public |
String |
getSubStateString getSubState() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.combatactions;
class="kw">import com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.CombatActionEvaluator;
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.validation.Validators;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.valuestore.ValueStore;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">public class StateCombatAction class="kw">extends CombatActionOption {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<StateCombatAction> CODEC = BuilderCodec.builder(
StateCombatAction.class, StateCombatAction::new, CombatActionOption.BASE_CODEC
)
.documentation(
"A combat action which switches the NPCs state. Using substate only will class="kw">switch between combat substates, whereas including the main state can be used to transition out of combat."
)
.<String>append(new KeyedCodec<>("State", Codec.STRING), (var0, var1) -> var0.state = var1, var0 -> var0.state)
.documentation("The main state name.")
.addValidator(Validators.nonNull())
.addValidator(Validators.nonEmptyString())
.add()
.<String>append(new KeyedCodec<>("SubState", Codec.STRING), (var0, var1) -> var0.subState = var1, var0 -> var0.subState)
.documentation("The substate name.")
.add()
.build();
class="kw">protected String state;
class="kw">protected String subState;
class="kw">public StateCombatAction() {
}
class="kw">public String getState() {
class="kw">return this.state;
}
class="kw">public String getSubState() {
class="kw">return this.subState;
}
@Override
class="kw">public void execute(
int var1,
@Nonnull ArchetypeChunk<EntityStore> var2,
@Nonnull CommandBuffer<EntityStore> var3,
@Nonnull ExecutionSupport var4,
@Nonnull CombatActionEvaluator var5,
ValueStore var6
) {
Ref var7 = var2.getReferenceTo(var1);
var4.getStateSupport().setState(var7, this.state, this.subState, var3);
var5.completeCurrentAction(true, true);
var5.clearTimeout();
HytaleLogger.Api var8 = CombatActionEvaluator.LOGGER.at(Level.FINEST);
if (var8.isEnabled()) {
var8.log("%s: Set state to %s.%s", var2.getReferenceTo(var1), this.state, this.subState == null ? "Default" : this.subState);
}
}
@Override
class="kw">public boolean isBasicAttackAllowed(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, CombatActionEvaluator var4) {
class="kw">return false;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "StateCombatAction{state='" + this.state + "', subState='" + this.subState + "'}" + super.toString();
}
}