MotionController interface
Пакет: com.hypixel.hytale.server.npc.movement.controllers
Файл: com/hypixel/hytale/server/npc/movement/controllers/MotionController.java
extends: DebugSupport.DebugFlagsChangeListener
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public double |
current |
|
public double |
max |
|
public double |
min |
|
yield |
var1 |
|
MovementStatesComponent |
var3 |
|
MovementStates |
var4 |
|
Velocity |
var5 |
|
boolean |
var6 |
Методы (78)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
VerticalRangepublic VerticalRange() |
abstract |
void |
activatevoid activate() |
abstract |
void |
addVelocityvoid addVelocity(@Nonnull Vector3d var1, @Nullable VelocityConfig var2) |
default |
void |
applyRailStepvoid applyRailStep(@Nonnull Ref<EntityStore> var1,
@Nonnull Role var2,
@Nonnull Vector3dc var3,
@Nonnull RailStepConfig var4,
@Nonnull RailStepResult var5,
@Nonnull ComponentAccessor<EntityStore> var6) |
abstract |
void |
beforeInstructionMotionvoid beforeInstructionMotion(double var1) |
abstract |
void |
beforeInstructionSensorsAndActionsvoid beforeInstructionSensorsAndActions(double var1) |
abstract |
boolean |
canRestAtPlaceboolean canRestAtPlace() |
abstract |
boolean |
canSteerboolean canSteer(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) |
abstract |
void |
clearExternalForcesvoid clearExternalForces() |
default |
void |
clearOverridesvoid clearOverrides() |
abstract |
void |
constrainRotationsvoid constrainRotations(Role var1, TransformComponent var2) |
abstract |
void |
deactivatevoid deactivate() |
abstract |
void |
enableHeadingBlendingvoid enableHeadingBlending(double var1, Vector3d var3, double var4) |
abstract |
void |
enableHeadingBlendingvoid enableHeadingBlending() |
abstract |
boolean |
estimateVelocityboolean estimateVelocity(Steering var1, Vector3d var2) |
abstract |
double |
getCombinedExternalVelocityLengthdouble getCombinedExternalVelocityLength() |
abstract |
Vector3d |
getComponentSelectorVector3d getComponentSelector() |
abstract |
double |
getCurrentMaxBodyRotationSpeeddouble getCurrentMaxBodyRotationSpeed() |
abstract |
double |
getCurrentSpeeddouble getCurrentSpeed() |
abstract |
double |
getCurrentTurnRadiusdouble getCurrentTurnRadius() |
abstract |
double |
getDesiredAltitudeWeightdouble getDesiredAltitudeWeight() |
abstract |
MotionController.VerticalRange |
getDesiredVerticalRangeMotionController.VerticalRange getDesiredVerticalRange(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) |
abstract |
Vector3d |
getExternalVelocityVector3d getExternalVelocity() |
abstract |
double |
getGravitydouble getGravity() |
abstract |
double |
getHeightOverGrounddouble getHeightOverGround() |
abstract |
float |
getMaxClimbAnglefloat getMaxClimbAngle() |
default |
double |
getMaxClimbHeightdouble getMaxClimbHeight() |
default |
double |
getMaxDropHeightdouble getMaxDropHeight() |
abstract |
float |
getMaxSinkAnglefloat getMaxSinkAngle() |
abstract |
double |
getMaximumSpeeddouble getMaximumSpeed() |
abstract |
NavState |
getNavStateNavState getNavState() |
abstract |
Vector3d |
getPlanarComponentSelectorVector3d getPlanarComponentSelector() |
default |
double |
getSquaredDistancedouble getSquaredDistance(@Nonnull Vector3d var1, @Nonnull Vector3d var2, boolean var3) |
abstract |
double |
getTargetDeltaSquareddouble getTargetDeltaSquared() |
abstract |
double |
getThrottleDurationdouble getThrottleDuration() |
abstract |
double |
getWanderVerticalMovementRatiodouble getWanderVerticalMovementRatio() |
abstract |
Vector3dc |
getWorldAntiNormalVector3dc getWorldAntiNormal() |
abstract |
Vector3dc |
getWorldNormalVector3dc getWorldNormal() |
abstract |
boolean |
inAirboolean inAir() |
abstract |
boolean |
inWaterboolean inWater() |
abstract |
boolean |
is2Dboolean is2D() |
abstract |
boolean |
isAvoidingBlockDamageboolean isAvoidingBlockDamage() |
abstract |
boolean |
isForcePushedboolean isForcePushed() |
abstract |
boolean |
isForceRecomputePathboolean isForceRecomputePath() |
static |
boolean |
isInMovementStateboolean isInMovementState(@Nonnull Ref<EntityStore> var0, @Nonnull MovementState var1, @Nonnull ComponentAccessor<EntityStore> var2) |
abstract |
boolean |
isInProgressboolean isInProgress() |
abstract |
boolean |
isObstructedboolean isObstructed() |
abstract |
boolean |
isValidPositionboolean isValidPosition(@Nonnull Vector3dc var1, ComponentAccessor<EntityStore> var2) |
|
public boolean |
isWithinRangepublic boolean isWithinRange() |
default |
boolean |
matchesTypeboolean matchesType(@Nonnull Class<? extends MotionController> var1) |
abstract |
boolean |
onGroundboolean onGround() |
abstract |
double |
probeMovedouble probeMove(@Nonnull Ref<EntityStore> var1,
@Nonnull Vector3dc var2,
@Nonnull Vector3dc var3,
@Nonnull ProbeMoveData var4,
@Nonnull ComponentAccessor<EntityStore> var5) |
abstract |
double |
probeMovedouble probeMove(@Nonnull Ref<EntityStore> var1, @Nonnull ProbeMoveData var2, @Nonnull ComponentAccessor<EntityStore> var3) |
abstract |
void |
requirePreciseMovementvoid requirePreciseMovement(Vector3d var1) |
|
public void |
setpublic void set(double var1, double var3, double var5) |
abstract |
void |
setComponentSelectorvoid setComponentSelector(Vector3d var1) |
default |
void |
setDebugEntityIdvoid setDebugEntityId(int var1) |
abstract |
void |
setForceRecomputePathvoid setForceRecomputePath(boolean var1) |
abstract |
void |
setHeadPitchAngleRangevoid setHeadPitchAngleRange(@Nullable float[] var1) |
abstract |
void |
setInertiavoid setInertia(double var1) |
abstract |
void |
setKnockbackScalevoid setKnockbackScale(double var1) |
abstract |
void |
setNavStatevoid setNavState(NavState var1, double var2, double var4) |
abstract |
void |
setRelaxedMoveConstraintsvoid setRelaxedMoveConstraints(@Nonnull EnumSet<RelaxedConstraint> var1) |
abstract |
void |
setRolevoid setRole(Role var1) |
abstract |
void |
setVelocityvoid setVelocity(@Nonnull Vector3dc var1, @Nullable VelocityConfig var2, boolean var3) |
abstract |
void |
spawnedvoid spawned() |
abstract |
boolean |
standingOnBlockOfTypeboolean standingOnBlockOfType(int var1) |
abstract |
double |
steerdouble steer(@Nonnull Ref<EntityStore> var1,
@Nonnull Role var2,
@Nonnull Steering var3,
@Nonnull Steering var4,
double var5,
@Nonnull ComponentAccessor<EntityStore> var7) |
|
return |
switchreturn switch(var1) |
abstract |
boolean |
translateToAccessiblePositionboolean translateToAccessiblePosition(Vector3d var1, Box var2, double var3, double var5, ComponentAccessor<EntityStore> var7) |
abstract |
void |
updateModelParametersvoid updateModelParameters(@Nullable Ref<EntityStore> var1, Model var2, Box var3, @Nullable ComponentAccessor<EntityStore> var4) |
abstract |
void |
updateMovementStatevoid updateMovementState(@Nonnull Ref<EntityStore> var1,
@Nonnull MovementStates var2,
@Nonnull Steering var3,
@Nonnull Vector3d var4,
@Nonnull ComponentAccessor<EntityStore> var5) |
abstract |
void |
updatePhysicsValuesvoid updatePhysicsValues(PhysicsValues var1) |
abstract |
double |
waypointDistancedouble waypointDistance(Vector3dc var1, Vector3dc var2) |
abstract |
double |
waypointDistancedouble waypointDistance(@Nonnull Ref<EntityStore> var1, Vector3d var2, @Nonnull ComponentAccessor<EntityStore> var3) |
abstract |
double |
waypointDistanceSquareddouble waypointDistanceSquared(Vector3dc var1, Vector3dc var2) |
abstract |
double |
waypointDistanceSquareddouble waypointDistanceSquared(@Nonnull Ref<EntityStore> var1, Vector3d var2, @Nonnull ComponentAccessor<EntityStore> var3) |
abstract |
boolean |
willReceiveBlockDamageboolean willReceiveBlockDamage() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.movement.controllers;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.protocol.MovementStates;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.entity.movement.MovementStatesComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.physics.component.PhysicsValues;
class="kw">import com.hypixel.hytale.server.core.modules.physics.component.Velocity;
class="kw">import com.hypixel.hytale.server.core.modules.splitvelocity.VelocityConfig;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.movement.MovementMode;
class="kw">import com.hypixel.hytale.server.npc.movement.MovementState;
class="kw">import com.hypixel.hytale.server.npc.movement.NavState;
class="kw">import com.hypixel.hytale.server.npc.movement.Steering;
class="kw">import com.hypixel.hytale.server.npc.movement.constraints.RelaxedConstraint;
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.DebugSupport;
class="kw">import java.util.EnumSet;
class="kw">import java.util.Set;
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="kw">interface MotionController class="kw">extends DebugSupport.DebugFlagsChangeListener {
@Nonnull
String getType();
@Nonnull
Set<MovementMode> getSupportedMovementModes();
@Nonnull
Set<MovementMode> getDefaultSpawnMovementModes();
@Nonnull
Role getRole();
void setRole(Role var1);
class="kw">default void setDebugEntityId(int var1) {
}
void setInertia(double var1);
void setKnockbackScale(double var1);
double getGravity();
void setHeadPitchAngleRange(@Nullable float[] var1);
void spawned();
void activate();
void deactivate();
void updateModelParameters(@Nullable Ref<EntityStore> var1, Model var2, Box var3, @Nullable ComponentAccessor<EntityStore> var4);
double steer(
@Nonnull Ref<EntityStore> var1,
@Nonnull Role var2,
@Nonnull Steering var3,
@Nonnull Steering var4,
double var5,
@Nonnull ComponentAccessor<EntityStore> var7
);
double probeMove(
@Nonnull Ref<EntityStore> var1,
@Nonnull Vector3dc var2,
@Nonnull Vector3dc var3,
@Nonnull ProbeMoveData var4,
@Nonnull ComponentAccessor<EntityStore> var5
);
double probeMove(@Nonnull Ref<EntityStore> var1, @Nonnull ProbeMoveData var2, @Nonnull ComponentAccessor<EntityStore> var3);
class="kw">default void applyRailStep(
@Nonnull Ref<EntityStore> var1,
@Nonnull Role var2,
@Nonnull Vector3dc var3,
@Nonnull RailStepConfig var4,
@Nonnull RailStepResult var5,
@Nonnull ComponentAccessor<EntityStore> var6
) {
throw new UnsupportedOperationException("applyRailStep is not supported by " + this.getType());
}
void constrainRotations(Role var1, TransformComponent var2);
double getCurrentMaxBodyRotationSpeed();
void updateMovementState(
@Nonnull Ref<EntityStore> var1,
@Nonnull MovementStates var2,
@Nonnull Steering var3,
@Nonnull Vector3d var4,
@Nonnull ComponentAccessor<EntityStore> var5
);
boolean isValidPosition(@Nonnull Vector3dc var1, ComponentAccessor<EntityStore> var2);
boolean canSteer(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2);
boolean isForcePushed();
@Nullable
String canSteerFailReason(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2);
boolean isInProgress();
boolean isObstructed();
boolean inAir();
boolean inWater();
boolean onGround();
boolean standingOnBlockOfType(int var1);
double getMaximumSpeed();
double getCurrentSpeed();
boolean estimateVelocity(Steering var1, Vector3d var2);
double getCurrentTurnRadius();
double waypointDistance(Vector3dc var1, Vector3dc var2);
double waypointDistanceSquared(Vector3dc var1, Vector3dc var2);
double waypointDistance(@Nonnull Ref<EntityStore> var1, Vector3d var2, @Nonnull ComponentAccessor<EntityStore> var3);
double waypointDistanceSquared(@Nonnull Ref<EntityStore> var1, Vector3d var2, @Nonnull ComponentAccessor<EntityStore> var3);
float getMaxClimbAngle();
float getMaxSinkAngle();
class="kw">default double getMaxClimbHeight() {
class="kw">return 0.0;
}
class="kw">default double getMaxDropHeight() {
class="kw">return 0.0;
}
boolean translateToAccessiblePosition(Vector3d var1, Box var2, double var3, double var5, ComponentAccessor<EntityStore> var7);
@Nonnull
Box getCollisionBoundingBox();
Vector3d getComponentSelector();
Vector3d getPlanarComponentSelector();
void setComponentSelector(Vector3d var1);
boolean is2D();
Vector3dc getWorldNormal();
Vector3dc getWorldAntiNormal();
void addVelocity(@Nonnull Vector3d var1, @Nullable VelocityConfig var2);
Vector3d getExternalVelocity();
double getCombinedExternalVelocityLength();
void clearExternalForces();
void setVelocity(@Nonnull Vector3dc var1, @Nullable VelocityConfig var2, boolean var3);
MotionController.VerticalRange getDesiredVerticalRange(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2);
double getWanderVerticalMovementRatio();
boolean isAvoidingBlockDamage();
boolean willReceiveBlockDamage();
void requirePreciseMovement(Vector3d var1);
void enableHeadingBlending(double var1, Vector3d var3, double var4);
void enableHeadingBlending();
void setRelaxedMoveConstraints(@Nonnull EnumSet<RelaxedConstraint> var1);
@Nonnull
EnumSet<RelaxedConstraint> getRelaxedConstraints();
NavState getNavState();
double getThrottleDuration();
double getTargetDeltaSquared();
void setNavState(NavState var1, double var2, double var4);
void setForceRecomputePath(boolean var1);
boolean isForceRecomputePath();
boolean canRestAtPlace();
void beforeInstructionSensorsAndActions(double var1);
void beforeInstructionMotion(double var1);
class="kw">default boolean matchesType(@Nonnull Class<? class="kw">extends MotionController> var1) {
class="kw">return var1.isInstance(this);
}
double getDesiredAltitudeWeight();
double getHeightOverGround();
class="kw">default void clearOverrides() {
}
class="kw">default double getSquaredDistance(@Nonnull Vector3d var1, @Nonnull Vector3d var2, boolean var3) {
class="kw">return var3 ? this.waypointDistanceSquared(var1, var2) : var1.distanceSquared(var2);
}
void updatePhysicsValues(PhysicsValues var1);
class="kw">static boolean isInMovementState(@Nonnull Ref<EntityStore> var0, @Nonnull MovementState var1, @Nonnull ComponentAccessor<EntityStore> var2) {
MovementStatesComponent var3 = var2.getComponent(var0, MovementStatesComponent.getComponentType());
assert var3 != null;
MovementStates var4 = var3.getMovementStates();
class="kw">return class="kw">switch (var1) {
case CLIMBING -> var4.climbing;
case FALLING -> var4.falling;
case CROUCHING -> var4.crouching;
case FLYING -> var4.flying;
case JUMPING -> var4.jumping;
case SPRINTING -> var4.sprinting;
case RUNNING -> var4.running;
case IDLE, WALKING -> {
Velocity var5 = var2.getComponent(var0, Velocity.getComponentType());
assert var5 != null;
boolean var6 = Vector3dUtil.closeToZero(var5.getVelocity(), 0.001);
yield var1 == MovementState.IDLE
? var6
: !var6 && !var4.falling && !var4.climbing && !var4.flying && !var4.running && !var4.sprinting && !var4.jumping && !var4.crouching;
}
case ANY -> true;
};
}
@Override
class="kw">default void onDebugFlagsChanged(EnumSet<RoleDebugFlags> var1) {
}
class VerticalRange {
class="kw">public double current;
class="kw">public double min;
class="kw">public double max;
class="kw">public VerticalRange() {
}
class="kw">public void set(double var1, double var3, double var5) {
this.current = var1;
this.min = var3;
this.max = var5;
}
class="kw">public boolean isWithinRange() {
class="kw">return this.current >= this.min && this.current <= this.max;
}
}
}