classpublicPriority 3
IsInStateCondition
com.hypixel.hytale.server.npc.decisionmaker.core.conditions.IsInStateCondition
extends SimpleCondition
2
Methods
2
Public Methods
2
Fields
1
Constructors
Constants
BuilderCodec<IsInStateCondition>CODEC= BuilderCodec.builder(IsInStateCondition.class, IsInStateCondition::new, ABSTRACT_CODEC)
.do...
Constructors
protected
IsInStateCondition()Methods
Public Methods (2)
public
String getState()public
String toString()@Nonnull@Override
Fields
Protected Fields (2)
protected
String stateprotected
String subStateInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Source Code
package com.hypixel.hytale.server.npc.decisionmaker.core.conditions;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.codec.validation.Validators;
import com.hypixel.hytale.component.ArchetypeChunk;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.server.npc.decisionmaker.core.EvaluationContext;
import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.base.SimpleCondition;
import com.hypixel.hytale.server.npc.entities.NPCEntity;
import com.hypixel.hytale.server.npc.role.support.StateSupport;
import javax.annotation.Nonnull;
public class IsInStateCondition extends SimpleCondition {
public static final BuilderCodec<IsInStateCondition> CODEC = BuilderCodec.builder(IsInStateCondition.class, IsInStateCondition::new, ABSTRACT_CODEC)
.documentation("A simple boolean condition that returns whether the NPC is in a given state.")
.<String>appendInherited(
new KeyedCodec<>("State", Codec.STRING),
(condition, s) -> condition.state = s,
condition -> condition.state,
(condition, parent) -> condition.state = parent.state
)
.documentation("The main state to evaluate.")
.addValidator(Validators.nonNull())
.addValidator(Validators.nonEmptyString())
.add()
.<String>appendInherited(
new KeyedCodec<>("SubState", Codec.STRING),
(condition, s) -> condition.subState = s,
condition -> condition.subState,
(condition, parent) -> condition.subState = parent.subState
)
.documentation("The optional substate to evaluate.")
.add()
.build();
protected String state;
protected String subState;
protected IsInStateCondition() {
}
public String getState() {
return this.state;
}
@Override
protected boolean evaluate(
int selfIndex,
@Nonnull ArchetypeChunk<EntityStore> archetypeChunk,
Ref<EntityStore> target,
CommandBuffer<EntityStore> commandBuffer,
EvaluationContext context
) {
NPCEntity npcComponent = archetypeChunk.getComponent(selfIndex, NPCEntity.getComponentType());
assert npcComponent != null;
StateSupport stateSupport = npcComponent.getRole().getStateSupport();
return stateSupport.inState(this.state, this.subState);
}
@Nonnull
@Override
public String toString() {
return "IsInStateCondition{state=" + this.state + ", subState=" + this.subState + "} " + super.toString();
}
}