Class DefaultBodyRotationController

java.lang.Object
com.ticxo.modelengine.api.nms.impl.DefaultBodyRotationController
All Implemented Interfaces:
BodyRotationController, DataIO

public class DefaultBodyRotationController extends Object implements BodyRotationController
  • Constructor Details

    • DefaultBodyRotationController

      public DefaultBodyRotationController(BaseEntity<?> entity)
  • Method Details

    • syncFromBase

      public void syncFromBase()
    • tick

      public void tick()
      Description copied from interface: BodyRotationController
      Update method that is called every tick only if the entity does not have a body rotation controller by default.
      Specified by:
      tick in interface BodyRotationController
    • getEntity

      public BaseEntity<?> getEntity()
    • getXHeadRot

      public float getXHeadRot()
      Specified by:
      getXHeadRot in interface BodyRotationController
    • getYHeadRot

      public float getYHeadRot()
      Specified by:
      getYHeadRot in interface BodyRotationController
    • getYBodyRot

      public float getYBodyRot()
      Specified by:
      getYBodyRot in interface BodyRotationController
    • isHeadClampUneven

      public boolean isHeadClampUneven()
      Specified by:
      isHeadClampUneven in interface BodyRotationController
    • isBodyClampUneven

      public boolean isBodyClampUneven()
      Specified by:
      isBodyClampUneven in interface BodyRotationController
    • getMaxHeadAngle

      public float getMaxHeadAngle()
      Specified by:
      getMaxHeadAngle in interface BodyRotationController
    • getMaxBodyAngle

      public float getMaxBodyAngle()
      Specified by:
      getMaxBodyAngle in interface BodyRotationController
    • getMinHeadAngle

      public float getMinHeadAngle()
      Specified by:
      getMinHeadAngle in interface BodyRotationController
    • getMinBodyAngle

      public float getMinBodyAngle()
      Specified by:
      getMinBodyAngle in interface BodyRotationController
    • isPlayerMode

      public boolean isPlayerMode()
      Specified by:
      isPlayerMode in interface BodyRotationController
    • getStableAngle

      public float getStableAngle()
      Specified by:
      getStableAngle in interface BodyRotationController
    • getRotationDelay

      public int getRotationDelay()
      Specified by:
      getRotationDelay in interface BodyRotationController
    • getRotationDuration

      public int getRotationDuration()
      Specified by:
      getRotationDuration in interface BodyRotationController
    • getHeadStableTime

      public int getHeadStableTime()
    • getLastStableYHeadRot

      public float getLastStableYHeadRot()
    • setXHeadRot

      public void setXHeadRot(float xHeadRot)
      Specified by:
      setXHeadRot in interface BodyRotationController
    • setYHeadRot

      public void setYHeadRot(float yHeadRot)
      Specified by:
      setYHeadRot in interface BodyRotationController
    • setYBodyRot

      public void setYBodyRot(float yBodyRot)
      Specified by:
      setYBodyRot in interface BodyRotationController
    • setHeadClampUneven

      public void setHeadClampUneven(boolean isHeadClampUneven)
      Specified by:
      setHeadClampUneven in interface BodyRotationController
    • setBodyClampUneven

      public void setBodyClampUneven(boolean isBodyClampUneven)
      Specified by:
      setBodyClampUneven in interface BodyRotationController
    • setMaxHeadAngle

      public void setMaxHeadAngle(float maxHeadAngle)
      Description copied from interface: BodyRotationController
      If head clamp is even, set the max head angle for both sides.
      Otherwise, only set the angle on the positive side.
      Specified by:
      setMaxHeadAngle in interface BodyRotationController
      Parameters:
      maxHeadAngle - angle in degrees
    • setMaxBodyAngle

      public void setMaxBodyAngle(float maxBodyAngle)
      Description copied from interface: BodyRotationController
      If body clamp is even, set the max body angle for both sides.
      Otherwise, only set the angle on the positive side.
      Specified by:
      setMaxBodyAngle in interface BodyRotationController
      Parameters:
      maxBodyAngle - angle in degrees
    • setMinHeadAngle

      public void setMinHeadAngle(float minHeadAngle)
      Description copied from interface: BodyRotationController
      If head clamp is uneven, set the angle on the negative side.
      Otherwise, this method has no effect.
      Specified by:
      setMinHeadAngle in interface BodyRotationController
      Parameters:
      minHeadAngle - angle in degrees
    • setMinBodyAngle

      public void setMinBodyAngle(float minBodyAngle)
      Description copied from interface: BodyRotationController
      If body clamp is uneven, set the angle on the negative side.
      Otherwise, this method has no effect.
      Specified by:
      setMinBodyAngle in interface BodyRotationController
      Parameters:
      minBodyAngle - angle in degrees
    • setPlayerMode

      public void setPlayerMode(boolean playerMode)
      Description copied from interface: BodyRotationController
      Toggle player rotation mode.
      If true, the body would act like the player's body rotation.
      Otherwise, the body would auto rotate to match the head's rotation after a certain period of time.
      Specified by:
      setPlayerMode in interface BodyRotationController
    • setStableAngle

      public void setStableAngle(float stableAngle)
      Description copied from interface: BodyRotationController
      Set the stable angle before correcting back to the clamped angle.
      For example, if the clamp = 50, and the stable angle = 15, the body can be 65 degrees away from the head before snapping back to 50 degrees away.
      This causes the "sudden jerk" effect on all entity body rotation.
      Specified by:
      setStableAngle in interface BodyRotationController
      Parameters:
      stableAngle - angle in degrees
    • setRotationDelay

      public void setRotationDelay(int rotationDelay)
      Description copied from interface: BodyRotationController
      Set the wait time before the body auto rotates to match the head's rotation.
      For example, if delay = 60, the entity would rotate its head, stop, and wait 3 seconds before rotating its body.
      Specified by:
      setRotationDelay in interface BodyRotationController
      Parameters:
      rotationDelay - delay in ticks
    • setRotationDuration

      public void setRotationDuration(int rotationDuration)
      Description copied from interface: BodyRotationController
      Set the time it takes to auto rotates back to the head's rotation.
      For example, if duration = 60, the entity would rotate its head, stop, wait 0.5 second, and takes 3 seconds to match body rotation to the head rotation.
      Specified by:
      setRotationDuration in interface BodyRotationController
      Parameters:
      rotationDuration - duration in ticks.
    • setHeadStableTime

      public void setHeadStableTime(int headStableTime)
    • setLastStableYHeadRot

      public void setLastStableYHeadRot(float lastStableYHeadRot)