NPCEntity class
Пакет: com.hypixel.hytale.server.npc.entities
Файл: com/hypixel/hytale/server/npc/entities/NPCEntity.java
extends: LivingEntity
implements: INonPlayerCharacter
Поля (24)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<NPCEntity> |
CODEC |
|
AlarmStore |
var1 |
|
|
var1 |
|
DebugSupport |
var1 |
|
ApplicationEffects |
var10 |
|
float |
var11 |
|
String |
var2 |
|
boolean |
var2 |
|
DebugSupport |
var2 |
|
CombatSupport |
var3 |
|
ModelComponent |
var3 |
|
EffectControllerComponent |
var3 |
|
Model |
var4 |
|
Model |
var4 |
|
int[] |
var4 |
|
StateSupport |
var5 |
|
NPCEntity |
var5 |
|
Model |
var6 |
|
|
var6 |
|
ModelAsset |
var6 |
|
ModelComponent |
var7 |
|
ActiveAnimationComponent |
var8 |
|
String[] |
var9 |
|
EntityEffect |
var9 |
Методы (83)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("setSpawnConfiguration: Cannot find spawn configuration name for index: " + var1) |
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Appearance can't be changed to empty") |
public |
void |
addReservationvoid addReservation(@Nonnull UUID var1) |
public |
void |
clearDamageDatavoid clearDamageData() |
|
|
for for(int var8 : var4) |
public |
boolean |
getCanCauseDamageboolean getCanCauseDamage(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) |
public |
float |
getCurrentHorizontalSpeedMultiplierfloat getCurrentHorizontalSpeedMultiplier(@Nullable Ref<EntityStore> var1, @Nullable ComponentAccessor<EntityStore> var2) |
public |
DamageData |
getDamageDataDamageData getDamageData() |
public |
double |
getDespawnTimedouble getDespawnTime() |
public |
int |
getEnvironmentint getEnvironment() |
public |
double |
getHoverHeightdouble getHoverHeight() |
public |
float |
getHoverPhasefloat getHoverPhase() |
public |
float |
getLeashHeadingfloat getLeashHeading() |
public |
float |
getLeashPitchfloat getLeashPitch() |
public |
Vector3d |
getLeashPointVector3d getLeashPoint() |
public |
Vector3d |
getOldPositionVector3d getOldPosition() |
public |
EnumSet<RoleDebugFlags> |
getRoleDebugFlagsEnumSet<RoleDebugFlags> getRoleDebugFlags() |
public |
int |
getRoleIndexint getRoleIndex() |
public |
String |
getRoleNameString getRoleName() |
public |
int |
getSpawnConfigurationint getSpawnConfiguration() |
public |
Instant |
getSpawnInstantInstant getSpawnInstant() |
public |
int |
getSpawnRoleIndexint getSpawnRoleIndex() |
|
|
if if(var7 != null) |
|
|
if if(var8 == null) |
|
|
if if(this.isDespawning) |
|
|
if if(var1 == this.roleIndex) |
|
|
if if(var1 == Integer.MIN_VALUE) |
|
|
if if(var1 == Integer.MIN_VALUE) |
|
|
if if(var2 == null) |
|
|
if if(var3 == null) |
|
|
if if(var6 == null) |
|
|
if if(this.cachedEntityHorizontalSpeedMultiplier != Float.MAX_VALUE) |
|
|
if if(var1 != null && var2 != null) |
|
|
if if(var3 == null) |
|
|
if if(var4 == null) |
|
|
if if(var9 != null) |
|
|
if if(var10 != null) |
|
|
if if(var11 >= 0.0F) |
public |
void |
invalidateCachedHorizontalSpeedMultipliervoid invalidateCachedHorizontalSpeedMultiplier() |
public |
boolean |
isDespawningboolean isDespawning() |
public |
boolean |
isPlayingDespawnAnimboolean isPlayingDespawnAnim() |
public |
boolean |
isReservedboolean isReserved() |
public |
boolean |
isReservedByboolean isReservedBy(@Nonnull UUID var1) |
public |
void |
onFlockSetStatevoid onFlockSetState(@Nonnull Ref<EntityStore> var1, @Nonnull String var2, @Nullable String var3, @Nonnull ComponentAccessor<EntityStore> var4) |
public |
void |
onFlockSetTargetvoid onFlockSetTarget(@Nonnull String var1, @Nonnull Ref<EntityStore> var2) |
public |
void |
playAnimationvoid playAnimation(@Nonnull Ref<EntityStore> var1, @Nonnull AnimationSlot var2, @Nullable String var3, @Nonnull ComponentAccessor<EntityStore> var4) |
public |
void |
playAnimationvoid playAnimation(@Nonnull Ref<EntityStore> var1, @Nonnull AnimationSlot var2, @Nullable String var3, boolean var4, @Nonnull ComponentAccessor<EntityStore> var5) |
public |
void |
removeReservationvoid removeReservation(@Nonnull UUID var1) |
public |
boolean |
requiresLeashPositionboolean requiresLeashPosition() |
public |
void |
saveLeashBlockTypevoid saveLeashBlockType() |
public |
void |
saveLeashInformationvoid saveLeashInformation(@Nonnull Vector3dc var1, @Nonnull Rotation3fc var2) |
public |
void |
setActiveMotionControllerNamevoid setActiveMotionControllerName(@Nullable String var1) |
static |
boolean |
setAppearanceboolean setAppearance(@Nonnull Ref<EntityStore> var0, @Nonnull String var1, @Nonnull ComponentAccessor<EntityStore> var2) |
public |
void |
setAppearancevoid setAppearance(@Nonnull Ref<EntityStore> var1, @Nonnull ModelAsset var2, @Nonnull ComponentAccessor<EntityStore> var3) |
public |
void |
setCollectSensorStatsvoid setCollectSensorStats(boolean var1) |
public |
void |
setDespawnAnimationRemainingSecondsvoid setDespawnAnimationRemainingSeconds(float var1) |
public |
void |
setDespawnCheckRemainingSecondsvoid setDespawnCheckRemainingSeconds(float var1) |
public |
void |
setDespawnRemainingSecondsvoid setDespawnRemainingSeconds(float var1) |
public |
void |
setDespawnTimevoid setDespawnTime(float var1) |
public |
void |
setDespawningvoid setDespawning(boolean var1) |
public |
void |
setEnvironmentvoid setEnvironment(int var1) |
public |
void |
setHoverHeightvoid setHoverHeight(double var1) |
public |
void |
setHoverPhasevoid setHoverPhase(float var1) |
public |
void |
setInitialModelScalevoid setInitialModelScale(float var1) |
public |
void |
setLeashHeadingvoid setLeashHeading(float var1) |
public |
void |
setLeashPitchvoid setLeashPitch(float var1) |
public |
void |
setLeashPointvoid setLeashPoint(@Nonnull Vector3d var1) |
public |
void |
setPlayingDespawnAnimvoid setPlayingDespawnAnim(boolean var1) |
public |
void |
setRolevoid setRole(Role var1) |
public |
void |
setRoleDebugFlagsvoid setRoleDebugFlags(@Nonnull EnumSet<RoleDebugFlags> var1) |
public |
void |
setRoleIndexvoid setRoleIndex(int var1) |
public |
void |
setRoleNamevoid setRoleName(String var1) |
public |
void |
setSpawnConfigurationvoid setSpawnConfiguration(int var1) |
public |
void |
setSpawnInstantvoid setSpawnInstant(@Nonnull Instant var1) |
public |
void |
setSpawnRoleIndexvoid setSpawnRoleIndex(int var1) |
public |
void |
setToDespawnvoid setToDespawn() |
public |
boolean |
shouldCollectSensorStatsboolean shouldCollectSensorStats() |
public |
void |
storeTickStartPositionvoid storeTickStartPosition(@Nonnull Vector3d var1) |
abstract |
|
super super(var1) |
public |
boolean |
tickDespawnAnimationRemainingSecondsboolean tickDespawnAnimationRemainingSeconds(float var1) |
public |
boolean |
tickDespawnCheckRemainingSecondsboolean tickDespawnCheckRemainingSeconds(float var1) |
public |
boolean |
tickDespawnRemainingSecondsboolean tickDespawnRemainingSeconds(float var1) |
public |
boolean |
updateSpawnTrackingStateboolean updateSpawnTrackingState(boolean var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.entities;
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.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.random.RandomExtra;
class="kw">import com.hypixel.hytale.math.vector.Rotation3fc;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.protocol.AnimationSlot;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.ApplicationEffects;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.EntityEffect;
class="kw">import com.hypixel.hytale.server.core.asset.type.environment.config.Environment;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.ModelAsset;
class="kw">import com.hypixel.hytale.server.core.entity.AnimationUtils;
class="kw">import com.hypixel.hytale.server.core.entity.Entity;
class="kw">import com.hypixel.hytale.server.core.entity.LivingEntity;
class="kw">import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ActiveAnimationComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.npc.INonPlayerCharacter;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.role.Role;
class="kw">import com.hypixel.hytale.server.npc.role.RoleDebugFlags;
class="kw">import com.hypixel.hytale.server.npc.role.support.CombatSupport;
class="kw">import com.hypixel.hytale.server.npc.role.support.DebugSupport;
class="kw">import com.hypixel.hytale.server.npc.role.support.StateSupport;
class="kw">import com.hypixel.hytale.server.npc.storage.AlarmStore;
class="kw">import com.hypixel.hytale.server.npc.util.DamageData;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawns.config.WorldNPCSpawn;
class="kw">import java.time.Instant;
class="kw">import java.util.EnumSet;
class="kw">import java.util.HashSet;
class="kw">import java.util.Objects;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">public class NPCEntity class="kw">extends LivingEntity class="kw">implements INonPlayerCharacter {
class="kw">public class="kw">static class="kw">final BuilderCodec<NPCEntity> CODEC = BuilderCodec.builder(NPCEntity.class, NPCEntity::new, LivingEntity.CODEC)
.append(new KeyedCodec<>("Env", Codec.STRING), (var0, var1) -> var0.environmentIndex = Environment.getAssetMap().getIndex(var1), var0 -> {
Environment var1 = Environment.getAssetMap().getAssetOrDefault(var0.environmentIndex, null);
class="kw">return var1 != null ? var1.getId() : null;
})
.add()
.append(new KeyedCodec<>("HvrPhs", Codec.DOUBLE), (var0, var1) -> var0.hoverPhase = var1.floatValue(), var0 -> (double)var0.hoverPhase)
.add()
.append(new KeyedCodec<>("HvrHght", Codec.DOUBLE), (var0, var1) -> var0.hoverHeight = var1, var0 -> var0.hoverHeight)
.add()
.append(new KeyedCodec<>("SpawnName", Codec.STRING), (var0, var1) -> {
var0.spawnRoleName = var1;
var0.spawnRoleIndex = NPCPlugin.get().getIndex(var1);
}, var0 -> var0.spawnRoleName)
.add()
.append(new KeyedCodec<>("MdlScl", Codec.DOUBLE), (var0, var1) -> var0.initialModelScale = var1.floatValue(), var0 -> (double)var0.initialModelScale)
.add()
.append(new KeyedCodec<>("SpawnConfig", Codec.STRING), (var0, var1) -> {
var0.spawnConfigurationName = var1;
var0.spawnConfigurationIndex = WorldNPCSpawn.getAssetMap().getIndex(var1);
}, var0 -> var0.spawnConfigurationName)
.add()
.append(new KeyedCodec<>("SpawnInstant", Codec.INSTANT), (var0, var1) -> var0.spawnInstant = var1, var0 -> var0.spawnInstant)
.add()
.append(new KeyedCodec<>("AlarmStore", AlarmStore.CODEC), (var0, var1) -> var0.alarmStore = var1, var0 -> null)
.add()
.append(new KeyedCodec<>("WorldgenId", Codec.INTEGER), (var0, var1) -> var0.worldgenId = var1, var0 -> var0.worldgenId)
.add()
.append(new KeyedCodec<>("PathManager", PathManager.CODEC), (var0, var1) -> var0.pathManager = var1, var0 -> var0.pathManager)
.add()
.append(new KeyedCodec<>("LeashPos", Vector3dUtil.CODEC), (var0, var1) -> {
var0.leashPoint.set(var1);
var0.hasLeashPosition = true;
}, var0 -> var0.requiresLeashPosition() ? var0.leashPoint : null)
.add()
.append(
new KeyedCodec<>("LeashHdg", Codec.DOUBLE),
(var0, var1) -> var0.leashHeading = var1.floatValue(),
var0 -> var0.requiresLeashPosition() ? (double)var0.leashHeading : null
)
.add()
.append(
new KeyedCodec<>("LeashPtch", Codec.DOUBLE),
(var0, var1) -> var0.leashPitch = var1.floatValue(),
var0 -> var0.requiresLeashPosition() ? (double)var0.leashPitch : null
)
.add()
.append(new KeyedCodec<>("RoleName", Codec.STRING), (var0, var1) -> var0.roleName = var1, var0 -> var0.roleName)
.add()
.append(new KeyedCodec<>("ActiveMC", Codec.STRING), (var0, var1) -> var0.activeMotionControllerName = var1, var0 -> var0.activeMotionControllerName)
.add()
.build();
class="kw">private String roleName;
class="kw">private int roleIndex = Integer.MIN_VALUE;
@Nullable
class="kw">private Role role;
class="kw">private int spawnRoleIndex = Integer.MIN_VALUE;
@Nullable
class="kw">private String spawnRoleName;
@Nullable
class="kw">private String spawnConfigurationName;
@Nullable
class="kw">private String activeMotionControllerName;
class="kw">private int environmentIndex = Integer.MIN_VALUE;
class="kw">private int spawnConfigurationIndex = Integer.MIN_VALUE;
class="kw">private boolean isSpawnTracked;
class="kw">private boolean collectSensorStats;
class="kw">private boolean isDespawning;
class="kw">private boolean isPlayingDespawnAnim;
class="kw">private float despawnRemainingSeconds;
class="kw">private float despawnCheckRemainingSeconds = RandomExtra.randomRange(1.0F, 5.0F);
class="kw">private float despawnAnimationRemainingSeconds;
class="kw">private float cachedEntityHorizontalSpeedMultiplier = Float.MAX_VALUE;
class="kw">private class="kw">final Vector3d leashPoint = new Vector3d();
class="kw">private float leashHeading;
class="kw">private float leashPitch;
class="kw">private boolean hasLeashPosition;
class="kw">private float hoverPhase;
class="kw">private double hoverHeight;
class="kw">private float initialModelScale = 1.0F;
class="kw">private Instant spawnInstant;
@Nonnull
class="kw">private PathManager pathManager = new PathManager();
class="kw">private class="kw">final DamageData damageData = new DamageData();
@Deprecated(forRemoval = true)
@Nullable
class="kw">private AlarmStore alarmStore;
@Deprecated(forRemoval = true)
class="kw">private int worldgenId = 0;
@Nonnull
class="kw">private class="kw">final Set<UUID> reservedBy = new HashSet<>();
class="kw">private class="kw">final Vector3d oldPosition = new Vector3d();
@Nullable
class="kw">public class="kw">static ComponentType<EntityStore, NPCEntity> getComponentType() {
class="kw">return EntityModule.get().getComponentType(NPCEntity.class);
}
class="kw">public NPCEntity() {
this.role = null;
}
class="kw">public NPCEntity(@Nonnull World var1) {
super(var1);
this.role = null;
}
@Deprecated(forRemoval = true)
@Nullable
class="kw">public AlarmStore takeLegacyAlarmStore() {
AlarmStore var1 = this.alarmStore;
this.alarmStore = null;
class="kw">return var1;
}
@Nullable
class="kw">public Role getRole() {
class="kw">return this.role;
}
class="kw">public void invalidateCachedHorizontalSpeedMultiplier() {
this.cachedEntityHorizontalSpeedMultiplier = Float.MAX_VALUE;
}
class="kw">public void storeTickStartPosition(@Nonnull Vector3d var1) {
this.oldPosition.set(var1);
}
class="kw">public boolean tickDespawnAnimationRemainingSeconds(float var1) {
class="kw">return (this.despawnAnimationRemainingSeconds -= var1) <= 0.0F;
}
class="kw">public void setDespawnAnimationRemainingSeconds(float var1) {
this.despawnAnimationRemainingSeconds = var1;
}
class="kw">public boolean tickDespawnRemainingSeconds(float var1) {
class="kw">return (this.despawnRemainingSeconds -= var1) <= 0.0F;
}
class="kw">public void setDespawnRemainingSeconds(float var1) {
this.despawnRemainingSeconds = var1;
}
class="kw">public void setDespawning(boolean var1) {
this.isDespawning = var1;
}
class="kw">public void setPlayingDespawnAnim(boolean var1) {
this.isPlayingDespawnAnim = var1;
}
class="kw">public boolean tickDespawnCheckRemainingSeconds(float var1) {
class="kw">return (this.despawnCheckRemainingSeconds -= var1) <= 0.0F;
}
class="kw">public void setDespawnCheckRemainingSeconds(float var1) {
this.despawnCheckRemainingSeconds = var1;
}
class="kw">public void setInitialModelScale(float var1) {
this.initialModelScale = var1;
}
class="kw">public Vector3d getOldPosition() {
class="kw">return this.oldPosition;
}
class="kw">public void playAnimation(@Nonnull Ref<EntityStore> var1, @Nonnull AnimationSlot var2, @Nullable String var3, @Nonnull ComponentAccessor<EntityStore> var4) {
this.playAnimation(var1, var2, var3, false, var4);
}
class="kw">public void playAnimation(
@Nonnull Ref<EntityStore> var1, @Nonnull AnimationSlot var2, @Nullable String var3, boolean var4, @Nonnull ComponentAccessor<EntityStore> var5
) {
Model var6 = null;
ModelComponent var7 = var5.getComponent(var1, ModelComponent.getComponentType());
if (var7 != null) {
var6 = var7.getModel();
}
if (var2 != AnimationSlot.Action && var3 != null && var6 != null && !var6.getAnimationSetMap().containsKey(var3)) {
((HytaleLogger.Api)Entity.LOGGER.at(Level.WARNING).atMostEvery(1, TimeUnit.MINUTES))
.log("Missing animation '%s' for Model '%s'", var3, var6.getModelAssetId());
} else {
ActiveAnimationComponent var8 = var5.getComponent(var1, ActiveAnimationComponent.getComponentType());
if (var8 == null) {
((HytaleLogger.Api)Entity.LOGGER.at(Level.WARNING).atMostEvery(1, TimeUnit.MINUTES))
.log("Missing active animation component for entity: %s", this.roleName);
} else {
String[] var9 = var8.getActiveAnimations();
if (var4 || var2 == AnimationSlot.Action || !Objects.equals(var9[var2.ordinal()], var3)) {
var9[var2.ordinal()] = var3;
var8.setPlayingAnimation(var2, var3);
AnimationUtils.playAnimation(var1, var2, var3, var5);
}
}
}
}
class="kw">public void clearDamageData() {
this.damageData.reset();
}
class="kw">public void setToDespawn() {
this.isDespawning = true;
}
class="kw">public void setDespawnTime(float var1) {
if (this.isDespawning) {
this.despawnRemainingSeconds = var1;
}
}
class="kw">public double getDespawnTime() {
class="kw">return this.despawnRemainingSeconds;
}
class="kw">public DamageData getDamageData() {
class="kw">return this.damageData;
}
class="kw">public boolean getCanCauseDamage(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
CombatSupport var3 = CombatSupport.get(this.reference, var2);
class="kw">return var3.getCanCauseDamage(this.reference, var1, var2);
}
class="kw">public void onFlockSetState(@Nonnull Ref<EntityStore> var1, @Nonnull String var2, @Nullable String var3, @Nonnull ComponentAccessor<EntityStore> var4) {
StateSupport var5 = StateSupport.get(var1, var4);
var5.setState(var1, var2, var3, var4);
}
class="kw">public void onFlockSetTarget(@Nonnull String var1, @Nonnull Ref<EntityStore> var2) {
this.role.setMarkedTarget(this.reference, this.reference.getStore(), var1, var2);
}
class="kw">public void saveLeashInformation(@Nonnull Vector3dc var1, @Nonnull Rotation3fc var2) {
this.leashPoint.set(var1);
this.leashHeading = var2.yaw();
this.leashPitch = var2.pitch();
this.saveLeashBlockType();
}
class="kw">public void saveLeashBlockType() {
}
class="kw">public boolean requiresLeashPosition() {
class="kw">return this.role != null ? this.role.requiresLeashPosition() : this.hasLeashPosition;
}
class="kw">public Vector3d getLeashPoint() {
class="kw">return this.leashPoint;
}
class="kw">public void setLeashPoint(@Nonnull Vector3d var1) {
this.leashPoint.set(var1);
}
class="kw">public float getLeashHeading() {
class="kw">return this.leashHeading;
}
class="kw">public void setLeashHeading(float var1) {
this.leashHeading = var1;
}
class="kw">public float getLeashPitch() {
class="kw">return this.leashPitch;
}
class="kw">public void setLeashPitch(float var1) {
this.leashPitch = var1;
}
class="kw">public float getHoverPhase() {
class="kw">return this.hoverPhase;
}
class="kw">public void setHoverPhase(float var1) {
this.hoverPhase = var1;
}
class="kw">public double getHoverHeight() {
class="kw">return this.hoverHeight;
}
class="kw">public void setHoverHeight(double var1) {
this.hoverHeight = var1;
}
class="kw">public String getRoleName() {
class="kw">return this.roleName;
}
class="kw">public void setRoleName(String var1) {
this.roleName = var1;
}
class="kw">public int getRoleIndex() {
class="kw">return this.roleIndex;
}
class="kw">public void setRoleIndex(int var1) {
this.roleIndex = var1;
}
class="kw">public boolean shouldCollectSensorStats() {
class="kw">return this.collectSensorStats;
}
class="kw">public void setCollectSensorStats(boolean var1) {
this.collectSensorStats = var1;
}
class="kw">public void setRole(Role var1) {
this.role = var1;
}
class="kw">public int getSpawnRoleIndex() {
class="kw">return this.spawnRoleIndex != Integer.MIN_VALUE ? this.spawnRoleIndex : this.roleIndex;
}
class="kw">public void setSpawnRoleIndex(int var1) {
if (var1 == this.roleIndex) {
var1 = Integer.MIN_VALUE;
}
this.spawnRoleIndex = var1;
if (var1 == Integer.MIN_VALUE) {
this.spawnRoleName = null;
} else {
this.spawnRoleName = NPCPlugin.get().getName(var1);
}
}
@Nullable
class="kw">public String getActiveMotionControllerName() {
class="kw">return this.activeMotionControllerName;
}
class="kw">public void setActiveMotionControllerName(@Nullable String var1) {
this.activeMotionControllerName = var1;
}
class="kw">public void setEnvironment(int var1) {
this.environmentIndex = var1;
}
class="kw">public int getEnvironment() {
class="kw">return this.environmentIndex;
}
class="kw">public int getSpawnConfiguration() {
class="kw">return this.spawnConfigurationIndex;
}
class="kw">public void setSpawnConfiguration(int var1) {
if (var1 == Integer.MIN_VALUE) {
this.spawnConfigurationIndex = Integer.MIN_VALUE;
this.spawnConfigurationName = null;
} else {
String var2 = WorldNPCSpawn.getAssetMap().getAsset(var1).getId();
if (var2 == null) {
throw new IllegalArgumentException("setSpawnConfiguration: Cannot find spawn configuration name for index: " + var1);
}
this.spawnConfigurationIndex = var1;
this.spawnConfigurationName = var2;
}
}
class="kw">public boolean updateSpawnTrackingState(boolean var1) {
boolean var2 = this.isSpawnTracked;
this.isSpawnTracked = var1;
class="kw">return var2;
}
class="kw">public boolean isDespawning() {
class="kw">return this.isDespawning;
}
class="kw">public boolean isPlayingDespawnAnim() {
class="kw">return this.isPlayingDespawnAnim;
}
class="kw">public EnumSet<RoleDebugFlags> getRoleDebugFlags() {
DebugSupport var1 = DebugSupport.get(this.reference, this.reference.getStore());
class="kw">return var1.getDebugFlags();
}
class="kw">public void setRoleDebugFlags(@Nonnull EnumSet<RoleDebugFlags> var1) {
DebugSupport var2 = DebugSupport.get(this.reference, this.reference.getStore());
var2.setDebugFlags(var1);
}
class="kw">public void setSpawnInstant(@Nonnull Instant var1) {
this.spawnInstant = var1;
}
class="kw">public Instant getSpawnInstant() {
class="kw">return this.spawnInstant;
}
@Deprecated(forRemoval = true)
class="kw">public int getLegacyWorldgenId() {
class="kw">return this.worldgenId;
}
@Nonnull
class="kw">public PathManager getPathManager() {
class="kw">return this.pathManager;
}
class="kw">public class="kw">static boolean setAppearance(@Nonnull Ref<EntityStore> var0, @Nonnull String var1, @Nonnull ComponentAccessor<EntityStore> var2) {
if (var1.isEmpty()) {
throw new IllegalArgumentException("Appearance can't be changed to empty");
} else {
ModelComponent var3 = var2.getComponent(var0, ModelComponent.getComponentType());
if (var3 == null) {
class="kw">return false;
} else {
Model var4 = var3.getModel();
if (var1.equals(var4.getModelAssetId())) {
class="kw">return true;
} else {
NPCEntity var5 = var2.getComponent(var0, getComponentType());
assert var5 != null;
ModelAsset var6 = ModelAsset.getAssetMap().getAsset(var1);
if (var6 == null) {
NPCPlugin.get().getLogger().at(Level.SEVERE).log("Role '%s': Cannot find model '%s'", var5.roleName, var1);
class="kw">return false;
} else {
var5.setAppearance(var0, var6, var2);
class="kw">return true;
}
}
}
}
}
class="kw">public void setAppearance(@Nonnull Ref<EntityStore> var1, @Nonnull ModelAsset var2, @Nonnull ComponentAccessor<EntityStore> var3) {
Model var4 = Model.createScaledModel(var2, this.initialModelScale);
var3.putComponent(var1, ModelComponent.getComponentType(), new ModelComponent(var4));
this.role.updateMotionControllers(var1, var4, var4.getBoundingBox(), var3);
}
class="kw">public float getCurrentHorizontalSpeedMultiplier(@Nullable Ref<EntityStore> var1, @Nullable ComponentAccessor<EntityStore> var2) {
if (this.cachedEntityHorizontalSpeedMultiplier != Float.MAX_VALUE) {
class="kw">return this.cachedEntityHorizontalSpeedMultiplier;
}
this.cachedEntityHorizontalSpeedMultiplier = 1.0F;
if (var1 != null && var2 != null) {
EffectControllerComponent var3 = var2.getComponent(var1, EffectControllerComponent.getComponentType());
if (var3 == null) {
class="kw">return this.cachedEntityHorizontalSpeedMultiplier;
}
int[] var4 = var3.getActiveEffectIndexes();
if (var4 == null) {
class="kw">return this.cachedEntityHorizontalSpeedMultiplier;
}
for (int var8 : var4) {
EntityEffect var9 = EntityEffect.getAssetMap().getAsset(var8);
if (var9 != null) {
ApplicationEffects var10 = var9.getApplicationEffects();
if (var10 != null) {
float var11 = var10.getHorizontalSpeedMultiplier();
if (var11 >= 0.0F) {
this.cachedEntityHorizontalSpeedMultiplier *= var11;
}
}
}
}
class="kw">return this.cachedEntityHorizontalSpeedMultiplier;
} else {
class="kw">return this.cachedEntityHorizontalSpeedMultiplier;
}
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "NPCEntity{role="
+ this.role
+ ", spawnRoleIndex="
+ this.spawnRoleIndex
+ ", leashPoint="
+ this.leashPoint
+ ", leashHeading="
+ this.leashHeading
+ ", leashPitch="
+ this.leashPitch
+ ", environmentIndex="
+ this.environmentIndex
+ "} "
+ super.toString();
}
@Override
class="kw">public String getNPCTypeId() {
class="kw">return this.roleName;
}
@Override
class="kw">public int getNPCTypeIndex() {
class="kw">return this.roleIndex;
}
class="kw">public void addReservation(@Nonnull UUID var1) {
this.reservedBy.add(var1);
}
class="kw">public void removeReservation(@Nonnull UUID var1) {
this.reservedBy.remove(var1);
}
class="kw">public boolean isReserved() {
class="kw">return !this.reservedBy.isEmpty();
}
class="kw">public boolean isReservedBy(@Nonnull UUID var1) {
class="kw">return this.reservedBy.contains(var1);
}
}