Interface Motion

All Superinterfaces:
IAnnotatedComponent, RoleStateChange
All Known Subinterfaces:
BodyMotion, HeadMotion
All Known Implementing Classes:
BodyMotionAimCharge, BodyMotionBase, BodyMotionCharge, BodyMotionFind, BodyMotionFindBase, BodyMotionFindWithTarget, BodyMotionFlock, BodyMotionLand, BodyMotionLeave, BodyMotionMaintainDistance, BodyMotionMatchLook, BodyMotionMoveAway, BodyMotionNothing, BodyMotionPath, BodyMotionSequence, BodyMotionTakeOff, BodyMotionTeleport, BodyMotionTestProbe, BodyMotionTimer, BodyMotionWander, BodyMotionWanderBase, BodyMotionWanderInCircle, BodyMotionWanderInRect, HeadMotionAim, HeadMotionBase, HeadMotionNothing, HeadMotionObserve, HeadMotionRotate, HeadMotionSequence, HeadMotionTimer, HeadMotionWatch, MotionBase, MotionSequence, MotionTimer

public interface Motion extends RoleStateChange, IAnnotatedComponent
A Motion computes a steering output (desired relative speed, direction and rotation) A steering describes a desired speed and rotation relative to max speed.
  • Method Details

    • preComputeSteering

      default void preComputeSteering(@Nonnull Ref<EntityStore> ref, @Nonnull ExecutionSupport executionSupport, @Nullable InfoProvider provider, @Nonnull Store<EntityStore> store)
      Called before calculating the desired steering for MotionController
      Parameters:
      ref - The entity ref of the NPC
      executionSupport - The ExecutionSupport
      provider - The InfoProvider
      store - The entity store for component access
    • activate

      default void activate(@Nonnull Ref<EntityStore> ref, @Nonnull ExecutionSupport executionSupport, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
      Called to activate this motion
      Parameters:
      ref - The entity ref of the NPC
      executionSupport - The ExecutionSupport
      componentAccessor - The entity store for component access
    • deactivate

      default void deactivate(@Nonnull Ref<EntityStore> ref, @Nonnull ExecutionSupport executionSupport, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
      Called to deactivate this motion
      Parameters:
      ref - The entity ref
      executionSupport - The ExecutionSupport
      componentAccessor - The component store for component access
    • computeSteering

      boolean computeSteering(@Nonnull Ref<EntityStore> ref, @Nonnull ExecutionSupport executionSupport, @Nullable InfoProvider sensorInfo, double dt, @Nonnull Steering desiredSteering, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
      Calculate desired steering for MotionController.
      Parameters:
      ref - The entity ref
      executionSupport - The ExecutionSupport
      sensorInfo - SensorInfo with PositionProvider, PathProvider, etc. if required
      dt - The interval in seconds for this calculation
      desiredSteering - The computed steering force for the MotionController
      componentAccessor - The entity store
      Returns:
      false when the end condition has been reached, true if must be called again to reach end condition or is infinite.