Class CollisionResult

java.lang.Object
com.hypixel.hytale.server.core.modules.collision.CollisionResult
All Implemented Interfaces:
BoxBlockIterator.BoxIterationConsumer

public class CollisionResult extends Object implements BoxBlockIterator.BoxIterationConsumer
  • Field Details

    • BLOCK_COLLISION_DATA_COMPARATOR

      public static final Comparator<BlockCollisionData> BLOCK_COLLISION_DATA_COMPARATOR
    • collisionEntities

      public List<Ref<EntityStore>> collisionEntities
    • slideStart

      public double slideStart
    • slideEnd

      public double slideEnd
    • isSliding

      public boolean isSliding
    • validate

      public int validate
    • isNonWalkable

      public Predicate<CollisionConfig> isNonWalkable
  • Constructor Details

    • CollisionResult

      public CollisionResult()
    • CollisionResult

      public CollisionResult(boolean enableSlides, boolean enableCharacters)
  • Method Details

    • getConfig

      @Nonnull public CollisionConfig getConfig()
    • getCollisionEntities

      public List<Ref<EntityStore>> getCollisionEntities()
    • setCollisionEntities

      public void setCollisionEntities(List<Ref<EntityStore>> collisionEntities)
    • getBoxBlockIntersection

      @Nonnull public BoxBlockIntersectionEvaluator getBoxBlockIntersection()
    • getMovingBoxBoxCollision

      @Nonnull public MovingBoxBoxCollisionEvaluator getMovingBoxBoxCollision()
    • allocCharacterCollision

      public CharacterCollisionData allocCharacterCollision()
    • addCollision

      public void addCollision(@Nonnull IBlockCollisionEvaluator blockCollisionEvaluator, int index)
    • newCollision

      public BlockCollisionData newCollision()
    • addSlide

      public void addSlide(@Nonnull IBlockCollisionEvaluator blockCollisionEvaluator, int index)
    • newSlide

      public BlockCollisionData newSlide()
    • addTrigger

      public void addTrigger(@Nonnull IBlockCollisionEvaluator blockCollisionEvaluator, int index)
    • newTrigger

      public BlockCollisionData newTrigger()
    • addPassThrough

      public void addPassThrough(@Nonnull IBlockCollisionEvaluator blockCollisionEvaluator, int index)
    • newPassThrough

      public BlockCollisionData newPassThrough()
    • reset

      public void reset()
    • process

      public void process()
    • getBlockCollisionCount

      public int getBlockCollisionCount()
    • getBlockCollision

      public BlockCollisionData getBlockCollision(int i)
    • getFirstBlockCollision

      @Nullable public BlockCollisionData getFirstBlockCollision()
    • forgetFirstBlockCollision

      @Nullable public BlockCollisionData forgetFirstBlockCollision()
    • getCharacterCollisionCount

      public int getCharacterCollisionCount()
    • getCharacterCollision

      public CharacterCollisionData getCharacterCollision(int i)
    • getFirstCharacterCollision

      @Nullable public CharacterCollisionData getFirstCharacterCollision()
    • forgetFirstCharacterCollision

      @Nullable public CharacterCollisionData forgetFirstCharacterCollision()
    • getPassThroughCount

      public int getPassThroughCount()
    • getPassThrough

      public BlockCollisionData getPassThrough(int i)
    • pruneTriggerBlocks

      public void pruneTriggerBlocks(double distance)
    • getTriggerBlocks

      @Nonnull public CollisionDataArray<BlockCollisionData> getTriggerBlocks()
    • defaultTriggerBlocksProcessing

      public int defaultTriggerBlocksProcessing(@Nonnull InteractionManager manager, @Nonnull Entity entity, @Nonnull Ref<EntityStore> ref, boolean executeTriggers, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
    • next

      public boolean next()
      Description copied from interface: BoxBlockIterator.BoxIterationConsumer
      Called when the current iteration step is done and the next block to hit is further away.
      Specified by:
      next in interface BoxBlockIterator.BoxIterationConsumer
      Returns:
      TRUE if iteration should continue
    • accept

      public boolean accept(long x, long y, long z)
      Description copied from interface: BoxBlockIterator.BoxIterationConsumer
      Called by the algorithm to report a block that is being hit by the AABB on the given direction.
      Specified by:
      accept in interface BoxBlockIterator.BoxIterationConsumer
      Parameters:
      x - X-Coordinate of block
      y - Y-Coordinate of block
      z - Z-Coordinate of block
      Returns:
      TRUE if iteration should continue
    • iterateBlocks

      public void iterateBlocks(@Nonnull Box collider, @Nonnull org.joml.Vector3d pos, @Nonnull org.joml.Vector3d direction, double length, boolean stopOnCollisionFound, double extent)
    • acquireCollisionModule

      public void acquireCollisionModule()
    • disableSlides

      public void disableSlides()
    • enableSlides

      public void enableSlides()
    • disableCharacterCollisions

      public void disableCharacterCollisions()
    • enableCharacterCollsions

      public void enableCharacterCollsions()
    • isCheckingForCharacterCollisions

      public boolean isCheckingForCharacterCollisions()
    • isRecordingPassThrough

      public boolean isRecordingPassThrough()
    • setRecordPassThrough

      public void setRecordPassThrough(boolean recordPassThrough)
    • enableTriggerBlocks

      public void enableTriggerBlocks()
    • disableTriggerBlocks

      public void disableTriggerBlocks()
    • isCheckingTriggerBlocks

      public boolean isCheckingTriggerBlocks()
    • enableDamageBlocks

      public void enableDamageBlocks()
    • disableDamageBlocks

      public void disableDamageBlocks()
    • isCheckingDamageBlocks

      public boolean isCheckingDamageBlocks()
    • setDamageBlocking

      public boolean setDamageBlocking(boolean blocking)
    • isDamageBlocking

      public boolean isDamageBlocking()
    • getBlockCollisionFilter

      @Nullable public Predicate<CollisionConfig> getBlockCollisionFilter()
    • setBlockCollisionFilter

      @Nullable public Predicate<CollisionConfig> setBlockCollisionFilter(@Nullable Predicate<CollisionConfig> filter)
    • setCollisionByMaterial

      public void setCollisionByMaterial(int collidingMaterials)
    • setCollisionByMaterial

      public void setCollisionByMaterial(int collidingMaterials, int walkableMaterials)
    • getCollisionByMaterial

      public int getCollisionByMaterial()
    • setDefaultCollisionBehaviour

      public void setDefaultCollisionBehaviour()
    • setDefaultBlockCollisionPredicate

      public void setDefaultBlockCollisionPredicate()
    • setDefaultNonWalkablePredicate

      public void setDefaultNonWalkablePredicate()
    • setNonWalkablePredicate

      public void setNonWalkablePredicate(Predicate<CollisionConfig> classifier)
    • setWalkableByMaterial

      public void setWalkableByMaterial(int walkableMaterial)
    • setDefaultWalkableBehaviour

      public void setDefaultWalkableBehaviour()
    • setDefaultPlayerSettings

      public void setDefaultPlayerSettings()
    • isComputeOverlaps

      public boolean isComputeOverlaps()
    • setComputeOverlaps

      public void setComputeOverlaps(boolean computeOverlaps)
    • getLogger

      public HytaleLogger getLogger()
    • shouldLog

      public boolean shouldLog()
    • setLogger

      public void setLogger(HytaleLogger logger)
    • setLogger

      public void setLogger(HytaleLogger logger, int debugEntityId)
    • setDebugEntityId

      public void setDebugEntityId(int debugEntityId)
    • getDebugEntityId

      public int getDebugEntityId()