Class DefaultBodyRotationController
java.lang.Object
com.ticxo.modelengine.api.nms.impl.DefaultBodyRotationController
- All Implemented Interfaces:
BodyRotationController
,DataIO
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionBaseEntity<?>
int
float
float
float
float
float
int
int
float
float
float
float
boolean
boolean
boolean
void
setBodyClampUneven
(boolean isBodyClampUneven) void
setHeadClampUneven
(boolean isHeadClampUneven) void
setHeadStableTime
(int headStableTime) void
setLastStableYHeadRot
(float lastStableYHeadRot) void
setMaxBodyAngle
(float maxBodyAngle) If body clamp is even, set the max body angle for both sides.
Otherwise, only set the angle on the positive side.void
setMaxHeadAngle
(float maxHeadAngle) If head clamp is even, set the max head angle for both sides.
Otherwise, only set the angle on the positive side.void
setMinBodyAngle
(float minBodyAngle) If body clamp is uneven, set the angle on the negative side.
Otherwise, this method has no effect.void
setMinHeadAngle
(float minHeadAngle) If head clamp is uneven, set the angle on the negative side.
Otherwise, this method has no effect.void
setPlayerMode
(boolean playerMode) 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.void
setRotationDelay
(int rotationDelay) 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.void
setRotationDuration
(int rotationDuration) 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.void
setStableAngle
(float stableAngle) 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.void
setXHeadRot
(float xHeadRot) void
setYBodyRot
(float yBodyRot) void
setYHeadRot
(float yHeadRot) void
tick()
Update method that is called every tick only if the entity does not have a body rotation controller by default.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.ticxo.modelengine.api.nms.entity.wrapper.BodyRotationController
load, save
-
Constructor Details
-
DefaultBodyRotationController
-
-
Method Details
-
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 interfaceBodyRotationController
-
getEntity
-
getXHeadRot
public float getXHeadRot()- Specified by:
getXHeadRot
in interfaceBodyRotationController
-
getYHeadRot
public float getYHeadRot()- Specified by:
getYHeadRot
in interfaceBodyRotationController
-
getYBodyRot
public float getYBodyRot()- Specified by:
getYBodyRot
in interfaceBodyRotationController
-
isHeadClampUneven
public boolean isHeadClampUneven()- Specified by:
isHeadClampUneven
in interfaceBodyRotationController
-
isBodyClampUneven
public boolean isBodyClampUneven()- Specified by:
isBodyClampUneven
in interfaceBodyRotationController
-
getMaxHeadAngle
public float getMaxHeadAngle()- Specified by:
getMaxHeadAngle
in interfaceBodyRotationController
-
getMaxBodyAngle
public float getMaxBodyAngle()- Specified by:
getMaxBodyAngle
in interfaceBodyRotationController
-
getMinHeadAngle
public float getMinHeadAngle()- Specified by:
getMinHeadAngle
in interfaceBodyRotationController
-
getMinBodyAngle
public float getMinBodyAngle()- Specified by:
getMinBodyAngle
in interfaceBodyRotationController
-
isPlayerMode
public boolean isPlayerMode()- Specified by:
isPlayerMode
in interfaceBodyRotationController
-
getStableAngle
public float getStableAngle()- Specified by:
getStableAngle
in interfaceBodyRotationController
-
getRotationDelay
public int getRotationDelay()- Specified by:
getRotationDelay
in interfaceBodyRotationController
-
getRotationDuration
public int getRotationDuration()- Specified by:
getRotationDuration
in interfaceBodyRotationController
-
getHeadStableTime
public int getHeadStableTime() -
getLastStableYHeadRot
public float getLastStableYHeadRot() -
setXHeadRot
public void setXHeadRot(float xHeadRot) - Specified by:
setXHeadRot
in interfaceBodyRotationController
-
setYHeadRot
public void setYHeadRot(float yHeadRot) - Specified by:
setYHeadRot
in interfaceBodyRotationController
-
setYBodyRot
public void setYBodyRot(float yBodyRot) - Specified by:
setYBodyRot
in interfaceBodyRotationController
-
setHeadClampUneven
public void setHeadClampUneven(boolean isHeadClampUneven) - Specified by:
setHeadClampUneven
in interfaceBodyRotationController
-
setBodyClampUneven
public void setBodyClampUneven(boolean isBodyClampUneven) - Specified by:
setBodyClampUneven
in interfaceBodyRotationController
-
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 interfaceBodyRotationController
- 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 interfaceBodyRotationController
- 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 interfaceBodyRotationController
- 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 interfaceBodyRotationController
- 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 interfaceBodyRotationController
-
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 interfaceBodyRotationController
- 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 interfaceBodyRotationController
- 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 interfaceBodyRotationController
- Parameters:
rotationDuration
- duration in ticks.
-
setHeadStableTime
public void setHeadStableTime(int headStableTime) -
setLastStableYHeadRot
public void setLastStableYHeadRot(float lastStableYHeadRot)
-