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();
   }
}