Class StandardPhysicsProvider

java.lang.Object
com.hypixel.hytale.server.core.modules.projectile.config.StandardPhysicsProvider
All Implemented Interfaces:
Component<EntityStore>, IBlockCollisionConsumer, Cloneable

public class StandardPhysicsProvider extends Object implements IBlockCollisionConsumer, Component<EntityStore>
  • Field Details

    • WATER_DETECTION_EXTREMA_COUNT

      public static final int WATER_DETECTION_EXTREMA_COUNT
      See Also:
    • MIN_BOUNCE_EPSILON

      public static final double MIN_BOUNCE_EPSILON
      See Also:
    • MIN_BOUNCE_EPSILON_SQUARED

      public static final double MIN_BOUNCE_EPSILON_SQUARED
      See Also:
    • LOGGER

      @Nonnull protected static final com.hypixel.hytale.logger.HytaleLogger LOGGER
    • blockCollisionProvider

      @Nonnull protected final BlockCollisionProvider blockCollisionProvider
    • entityCollisionProvider

      @Nonnull protected final EntityRefCollisionProvider entityCollisionProvider
    • triggerTracker

      @Nonnull protected final BlockTracker triggerTracker
    • restingSupport

      @Nonnull protected final RestingSupport restingSupport
    • world

      @Nullable protected World world
    • velocity

      @Nonnull protected final Vector3d velocity
    • position

      @Nonnull protected final Vector3d position
    • movement

      @Nonnull protected final Vector3d movement
    • nextMovement

      protected final Vector3d nextMovement
    • bounced

      protected boolean bounced
    • bounces

      protected int bounces
    • onGround

      protected boolean onGround
    • provideCharacterCollisions

      protected boolean provideCharacterCollisions
    • creatorUuid

      @Nullable protected final UUID creatorUuid
    • physicsConfig

      @Nonnull protected final StandardPhysicsConfig physicsConfig
    • tempVector

      protected final Vector3d tempVector
    • bounceConsumer

      @Nullable protected BounceConsumer bounceConsumer
    • impactConsumer

      @Nullable protected ImpactConsumer impactConsumer
    • movedInsideSolid

      protected boolean movedInsideSolid
    • moveOutOfSolidVelocity

      protected final Vector3d moveOutOfSolidVelocity
    • contactPosition

      protected final Vector3d contactPosition
    • contactNormal

      protected final Vector3d contactNormal
    • collisionStart

      protected double collisionStart
    • stateUpdater

      protected final PhysicsBodyStateUpdater stateUpdater
    • stateBefore

      protected final PhysicsBodyState stateBefore
    • stateAfter

      protected final PhysicsBodyState stateAfter
    • displacedMass

      protected double displacedMass
    • subSurfaceVolume

      protected double subSurfaceVolume
    • enterFluid

      protected double enterFluid
    • leaveFluid

      protected double leaveFluid
    • inFluid

      protected boolean inFluid
    • velocityExtremaCount

      protected int velocityExtremaCount
    • state

      @Nonnull protected StandardPhysicsProvider.STATE state
    • forceProviderEntity

      protected ForceProviderEntity forceProviderEntity
    • forceProviders

      protected ForceProvider[] forceProviders
    • forceProviderStandardState

      protected final ForceProviderStandardState forceProviderStandardState
    • dragMultiplier

      protected double dragMultiplier
    • dragOffset

      protected double dragOffset
    • fluidTracker

      protected final BlockTracker fluidTracker
    • isSliding

      protected boolean isSliding
    • boundingBox

      @Deprecated(forRemoval=true) protected BoundingBox boundingBox
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • StandardPhysicsProvider

      public StandardPhysicsProvider(@Nonnull BoundingBox boundingBox, @Nullable UUID creatorUuid, @Nonnull StandardPhysicsConfig physicsConfig, @Nonnull Vector3d initialForce, boolean predicted)
  • Method Details

    • getComponentType

      @Nonnull public static ComponentType<EntityStore,StandardPhysicsProvider> getComponentType()
    • onCollision

      @Nonnull public IBlockCollisionConsumer.Result onCollision(int blockX, int blockY, int blockZ, @Nonnull Vector3d direction, @Nonnull BlockContactData contactData, @Nonnull BlockData blockData, @Nonnull Box collider)
      Specified by:
      onCollision in interface IBlockCollisionConsumer
    • probeCollisionDamage

      @Nonnull public IBlockCollisionConsumer.Result probeCollisionDamage(int blockX, int blockY, int blockZ, Vector3d direction, BlockContactData collisionData, BlockData blockData)
      Specified by:
      probeCollisionDamage in interface IBlockCollisionConsumer
    • onCollisionDamage

      public void onCollisionDamage(int blockX, int blockY, int blockZ, Vector3d direction, BlockContactData collisionData, BlockData blockData)
      Specified by:
      onCollisionDamage in interface IBlockCollisionConsumer
    • onCollisionSliceFinished

      @Nonnull public IBlockCollisionConsumer.Result onCollisionSliceFinished()
      Specified by:
      onCollisionSliceFinished in interface IBlockCollisionConsumer
    • onCollisionFinished

      public void onCollisionFinished()
      Specified by:
      onCollisionFinished in interface IBlockCollisionConsumer
    • finishTick

      public void finishTick(@Nonnull TransformComponent position, @Nonnull Velocity velocity)
    • rotateBody

      public void rotateBody(double dt, @Nonnull Vector3f bodyRotation)
    • isOnGround

      public boolean isOnGround()
    • isSwimming

      public boolean isSwimming()
    • getDragCoefficient

      public double getDragCoefficient(double density)
    • recomputeDragFactors

      protected void recomputeDragFactors(@Nonnull BoundingBox boundingBoxComponent)
    • getState

      @Nonnull public StandardPhysicsProvider.STATE getState()
    • setState

      public void setState(@Nonnull StandardPhysicsProvider.STATE state)
    • getPhysicsConfig

      @Nonnull public StandardPhysicsConfig getPhysicsConfig()
    • getForceProviderStandardState

      @Nonnull public ForceProviderStandardState getForceProviderStandardState()
    • getRestingSupport

      @Nonnull public RestingSupport getRestingSupport()
    • setWorld

      public void setWorld(@Nullable World world)
    • getPosition

      @Nonnull public Vector3d getPosition()
    • getVelocity

      @Nonnull public Vector3d getVelocity()
    • getMovement

      @Nonnull public Vector3d getMovement()
    • getNextMovement

      @Nonnull public Vector3d getNextMovement()
    • getForceProviderEntity

      @Nonnull public ForceProviderEntity getForceProviderEntity()
    • getForceProviders

      @Nonnull public ForceProvider[] getForceProviders()
    • getStateUpdater

      @Nonnull public PhysicsBodyStateUpdater getStateUpdater()
    • getStateBefore

      @Nonnull public PhysicsBodyState getStateBefore()
    • getStateAfter

      @Nonnull public PhysicsBodyState getStateAfter()
    • isProvidesCharacterCollisions

      public boolean isProvidesCharacterCollisions()
    • getCreatorUuid

      @Nullable public UUID getCreatorUuid()
    • getEntityCollisionProvider

      @Nonnull public EntityRefCollisionProvider getEntityCollisionProvider()
    • isBounced

      public boolean isBounced()
    • setBounced

      public void setBounced(boolean bounced)
    • getBounces

      public int getBounces()
    • incrementBounces

      public void incrementBounces()
    • getMoveOutOfSolidVelocity

      @Nonnull public Vector3d getMoveOutOfSolidVelocity()
    • isMovedInsideSolid

      public boolean isMovedInsideSolid()
    • setMovedInsideSolid

      public void setMovedInsideSolid(boolean movedInsideSolid)
    • getDisplacedMass

      public double getDisplacedMass()
    • setDisplacedMass

      public void setDisplacedMass(double displacedMass)
    • getSubSurfaceVolume

      public double getSubSurfaceVolume()
    • setSubSurfaceVolume

      public void setSubSurfaceVolume(double subSurfaceVolume)
    • getEnterFluid

      public double getEnterFluid()
    • setEnterFluid

      public void setEnterFluid(double enterFluid)
    • getLeaveFluid

      public double getLeaveFluid()
    • setLeaveFluid

      public void setLeaveFluid(double leaveFluid)
    • getCollisionStart

      public double getCollisionStart()
    • setCollisionStart

      public void setCollisionStart(double collisionStart)
    • getContactPosition

      @Nonnull public Vector3d getContactPosition()
    • getContactNormal

      @Nonnull public Vector3d getContactNormal()
    • isSliding

      public boolean isSliding()
    • setSliding

      public void setSliding(boolean sliding)
    • getBlockCollisionProvider

      @Nonnull public BlockCollisionProvider getBlockCollisionProvider()
    • getTriggerTracker

      @Nonnull public BlockTracker getTriggerTracker()
    • getFluidTracker

      @Nonnull public BlockTracker getFluidTracker()
    • isInFluid

      public boolean isInFluid()
    • setInFluid

      public void setInFluid(boolean inFluid)
    • getVelocityExtremaCount

      public int getVelocityExtremaCount()
    • setVelocityExtremaCount

      public void setVelocityExtremaCount(int velocityExtremaCount)
    • decrementVelocityExtremaCount

      public void decrementVelocityExtremaCount()
    • setOnGround

      public void setOnGround(boolean onGround)
    • getImpactConsumer

      @Nullable public ImpactConsumer getImpactConsumer()
    • getBounceConsumer

      @Nullable public BounceConsumer getBounceConsumer()
    • clone

      @Nonnull public Component<EntityStore> clone()
      Specified by:
      clone in interface Component<EntityStore>
      Overrides:
      clone in class Object