SimplePhysicsProvider

public class SimplePhysicsProvider implements IBlockCollisionConsumer

Class SimplePhysicsProvider. Provides simplephysicsprovider functionality for the Hytale server.

java.lang.Object > SimplePhysicsProvider

Field Summary

world

protected World world

Field world.

bounced

protected boolean bounced

Field bounced.

onGround

protected boolean onGround

Field onGround.

provideCharacterCollisions

protected boolean provideCharacterCollisions

Field provideCharacterCollisions.

gravity

protected double gravity

Field gravity.

bounciness

protected double bounciness

Field bounciness.

sticksVertically

protected boolean sticksVertically

Field sticksVertically.

computeYaw

protected boolean computeYaw

Field computeYaw.

computePitch

protected boolean computePitch

Field computePitch.

rotationMode

protected ROTATION_MODE rotationMode

Field rotationMode.

creatorUuid

protected UUID creatorUuid

Field creatorUuid.

moveOutOfSolidSpeed

protected double moveOutOfSolidSpeed

Field moveOutOfSolidSpeed.

movedInsideSolid

protected boolean movedInsideSolid

Field movedInsideSolid.

collisionStart

protected double collisionStart

Field collisionStart.

displacedMass

protected double displacedMass

Field displacedMass.

subSurfaceVolume

protected double subSurfaceVolume

Field subSurfaceVolume.

enterFluid

protected double enterFluid

Field enterFluid.

leaveFluid

protected double leaveFluid

Field leaveFluid.

inFluid

protected boolean inFluid

Field inFluid.

velocityExtremaCount

protected int velocityExtremaCount

Field velocityExtremaCount.

state

protected STATE state

Field state.

forceProviderEntity

protected ForceProviderEntity forceProviderEntity

Field forceProviderEntity.

forceProviders

protected ForceProvider[] forceProviders

Field forceProviders.

terminalVelocity1

protected double terminalVelocity1

Field terminalVelocity1.

density1

protected double density1

Field density1.

terminalVelocity2

protected double terminalVelocity2

Field terminalVelocity2.

density2

protected double density2

Field density2.

dragMultiplier

protected double dragMultiplier

Field dragMultiplier.

dragOffset

protected double dragOffset

Field dragOffset.

hitWaterImpulseLoss

protected double hitWaterImpulseLoss

Field hitWaterImpulseLoss.

rotationForce

protected double rotationForce

Field rotationForce.

speedRotationFactor

protected float speedRotationFactor

Field speedRotationFactor.

swimmingDampingFactor

protected double swimmingDampingFactor

Field swimmingDampingFactor.

boundingBox

protected BoundingBox boundingBox

Field boundingBox.

blockMaterial

final BlockMaterial blockMaterial

Field blockMaterial.

nearestBlock

final Vector3i nearestBlock

Field nearestBlock.

collisionEnd

final double collisionEnd

Field collisionEnd.

density

final double density

Field density.

volume

final double volume

Field volume.

surfaceAlignment

final double surfaceAlignment

Field surfaceAlignment.

mass

final double mass

Field mass.

creator

final Entity creator

Field creator.

speedBefore

final double speedBefore

Field speedBefore.

speedAfter

final double speedAfter

Field speedAfter.

externalForce

final Vector3d externalForce

Field externalForce.

hitGround

final boolean hitGround

Field hitGround.

contact

final EntityContactData contact

Field contact.

contactRef

final Ref contactRef

Field contactRef.

target

final Entity target

Field target.

vx

final double vx

Field vx.

vz

final double vz

Field vz.

pitch

final float pitch

Field pitch.

maxDelta

final float maxDelta

Field maxDelta.

squaredLength

final double squaredLength

Field squaredLength.

proj

final double proj

Field proj.

terminalVelocity

final double terminalVelocity

Field terminalVelocity.

area

final double area

Field area.

drag1

final double drag1

Field drag1.

drag2

final double drag2

Field drag2.

Method Detail

SimplePhysicsProvider

public public SimplePhysicsProvider ()

Method SimplePhysicsProvider.

BlockCollisionProvider

public new BlockCollisionProvider ()

Method BlockCollisionProvider.

setImpacted

public void setImpacted (final boolean impacted)

Method setImpacted.

Parameters:
final boolean impacted

isImpacted

public boolean isImpacted ()

Method isImpacted.

setResting

public void setResting (final boolean resting)

Method setResting.

Parameters:
final boolean resting

isResting

public boolean isResting ()

Method isResting.

onCollision

public Result onCollision (final int blockX, final int blockY, final int blockZ, @Nonnull final Vector3d direction, @Nonnull final BlockContactData contactData, @Nonnull final BlockData blockData, @Nonnull final Box collider)

Method onCollision.

Parameters:
final int blockX
final int blockY
final int blockZ
@Nonnull final Vector3d direction
@Nonnull final BlockContactData contactData
@Nonnull final BlockData blockData
@Nonnull final Box collider

probeCollisionDamage

public Result probeCollisionDamage (final int blockX, final int blockY, final int blockZ, final Vector3d direction, final BlockContactData collisionData, final BlockData blockData)

Method probeCollisionDamage.

Parameters:
final int blockX
final int blockY
final int blockZ
final Vector3d direction
final BlockContactData collisionData
final BlockData blockData

onCollisionDamage

public void onCollisionDamage (final int blockX, final int blockY, final int blockZ, final Vector3d direction, final BlockContactData collisionData, final BlockData blockData)

Method onCollisionDamage.

Parameters:
final int blockX
final int blockY
final int blockZ
final Vector3d direction
final BlockContactData collisionData
final BlockData blockData

onCollisionSliceFinished

public Result onCollisionSliceFinished ()

Method onCollisionSliceFinished.

onCollisionFinished

public void onCollisionFinished ()

Method onCollisionFinished.

tick

public Entity tick (final double dt, @Nonnull final Velocity entityVelocity, @Nonnull final World entityWorld, @Nonnull final TransformComponent entityTransform, final Ref selfRef, @Nonnull final ComponentAccessor componentAccessor)

Method tick.

Parameters:
final double dt
@Nonnull final Velocity entityVelocity
@Nonnull final World entityWorld
@Nonnull final TransformComponent entityTransform
final Ref selfRef
@Nonnull final ComponentAccessor componentAccessor

if

public else if (this.inFluid && this.leaveFluid < this.collisionStart)

Method if.

Parameters:
this.inFluid && this.leaveFluid < this.collisionStart

finishTick

protected void finishTick (@Nonnull final TransformComponent position, @Nonnull final Velocity velocity)

Method finishTick.

Parameters:
@Nonnull final TransformComponent position
@Nonnull final Velocity velocity

rotateBody

protected void rotateBody (final double dt, @Nonnull final Vector3f bodyRotation)

Method rotateBody.

Parameters:
final double dt
@Nonnull final Vector3f bodyRotation

isOnGround

public boolean isOnGround ()

Method isOnGround.

isSwimming

public boolean isSwimming ()

Method isSwimming.

computeReflectedVector

static void computeReflectedVector (@Nonnull final Vector3d vec, @Nonnull final Vector3d normal, @Nonnull final Vector3d result)

Method computeReflectedVector.

Parameters:
@Nonnull final Vector3d vec
@Nonnull final Vector3d normal
@Nonnull final Vector3d result

isProvidingCharacterCollisions

public boolean isProvidingCharacterCollisions ()

Method isProvidingCharacterCollisions.

setProvideCharacterCollisions

public void setProvideCharacterCollisions (final boolean provideCharacterCollisions)

Method setProvideCharacterCollisions.

Parameters:
final boolean provideCharacterCollisions

setGravity

public void setGravity (final double gravity, @Nonnull final BoundingBox boundingBox)

Method setGravity.

Parameters:
final double gravity
@Nonnull final BoundingBox boundingBox

setBounciness

public void setBounciness (final double bounciness)

Method setBounciness.

Parameters:
final double bounciness

setTerminalVelocities

public void setTerminalVelocities (final double terminalVelocityAir, final double terminalVelocityWater, @Nonnull final BoundingBox boundingBox)

Method setTerminalVelocities.

Parameters:
final double terminalVelocityAir
final double terminalVelocityWater
@Nonnull final BoundingBox boundingBox

setImpactSlowdown

public SimplePhysicsProvider setImpactSlowdown (final double impactSlowdown)

Method setImpactSlowdown.

Parameters:
final double impactSlowdown

setSticksVertically

public void setSticksVertically (final boolean sticksVertically)

Method setSticksVertically.

Parameters:
final boolean sticksVertically

isComputeYaw

public boolean isComputeYaw ()

Method isComputeYaw.

setComputeYaw

public void setComputeYaw (final boolean computeYaw)

Method setComputeYaw.

Parameters:
final boolean computeYaw

isComputePitch

public boolean isComputePitch ()

Method isComputePitch.

setComputePitch

public void setComputePitch (final boolean computePitch)

Method setComputePitch.

Parameters:
final boolean computePitch

setCreatorId

public void setCreatorId (final UUID creatorUuid)

Method setCreatorId.

Parameters:
final UUID creatorUuid

initialize

public void initialize (@Nullable final Projectile projectile, @Nonnull final BoundingBox boundingBox)

Method initialize.

Parameters:
@Nullable final Projectile projectile
@Nonnull final BoundingBox boundingBox

getVelocity

public Vector3d getVelocity ()

Method getVelocity.

addVelocity

public void addVelocity (final float x, final float y, final float z)

Method addVelocity.

Parameters:
final float x
final float y
final float z

setVelocity

public void setVelocity (@Nonnull final Vector3d velocity)

Method setVelocity.

Parameters:
@Nonnull final Vector3d velocity

setMoveOutOfSolid

public void setMoveOutOfSolid (final boolean moveOutOfSolid)

Method setMoveOutOfSolid.

Parameters:
final boolean moveOutOfSolid

getDragCoefficient

protected double getDragCoefficient (final double density)

Method getDragCoefficient.

Parameters:
final double density

recomputeDragFactors

protected void recomputeDragFactors (@Nonnull final BoundingBox boundingBoxComponent)

Method recomputeDragFactors.

Parameters:
@Nonnull final BoundingBox boundingBoxComponent