classpublicabstractPriority 3
EntityStatBoundCondition
com.hypixel.hytale.server.core.modules.entitystats.asset.condition.EntityStatBoundCondition
extends Condition
3
Methods
3
Public Methods
2
Fields
2
Constructors
Constants
BuilderCodec<EntityStatBoundCondition>CODEC= BuilderCodec.abstractBuilder(EntityStatBoundCondition.class, Condition.BASE_CODEC)
.append(...
Constructors
protected
EntityStatBoundCondition()public
EntityStatBoundCondition(boolean inverse, int stat)Methods
Public Methods (3)
public
boolean eval0(ComponentAccessor<EntityStore> componentAccessor, Ref<EntityStore> ref, Instant currentTime)@Override
public
boolean eval0(Ref<EntityStore> var1, Instant var2, EntityStatValue var3)public
String toString()@Nonnull@Override
Fields
Protected Fields (2)
protected
int statprotected
String unknownStatInheritance
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.core.modules.entitystats.asset.condition;
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.ComponentAccessor;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap;
import com.hypixel.hytale.server.core.modules.entitystats.EntityStatValue;
import com.hypixel.hytale.server.core.modules.entitystats.EntityStatsModule;
import com.hypixel.hytale.server.core.modules.entitystats.asset.EntityStatType;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import java.time.Instant;
import javax.annotation.Nonnull;
public abstract class EntityStatBoundCondition extends Condition {
@Nonnull
public static final BuilderCodec<EntityStatBoundCondition> CODEC = BuilderCodec.abstractBuilder(EntityStatBoundCondition.class, Condition.BASE_CODEC)
.append(new KeyedCodec<>("Stat", Codec.STRING), (condition, value) -> condition.unknownStat = value, condition -> condition.unknownStat)
.documentation("The stat to evaluate the condition against.")
.addValidator(Validators.nonNull())
.addValidatorLate(() -> EntityStatType.VALIDATOR_CACHE.getValidator().late())
.add()
.build();
protected String unknownStat;
protected int stat = -2147483648;
protected EntityStatBoundCondition() {
}
public EntityStatBoundCondition(boolean inverse, int stat) {
super(inverse);
this.stat = stat;
}
@Override
public boolean eval0(@Nonnull ComponentAccessor<EntityStore> componentAccessor, @Nonnull Ref<EntityStore> ref, @Nonnull Instant currentTime) {
if (this.stat == -2147483648) {
this.stat = EntityStatType.getAssetMap().getIndex(this.unknownStat);
}
EntityStatMap entityStatMapComponent = componentAccessor.getComponent(ref, EntityStatsModule.get().getEntityStatMapComponentType());
if (entityStatMapComponent == null) {
return false;
} else {
EntityStatValue statValue = entityStatMapComponent.get(this.stat);
return statValue == null ? false : this.eval0(ref, currentTime, statValue);
}
}
public abstract boolean eval0(@Nonnull Ref<EntityStore> var1, @Nonnull Instant var2, @Nonnull EntityStatValue var3);
@Nonnull
@Override
public String toString() {
return "EntityStatBoundCondition{unknownStat='" + this.unknownStat + "', stat=" + this.stat + "} " + super.toString();
}
}