ClientAvatarState.java
net.minecraft.client.entity.ClientAvatarState
信息
- 全限定名:net.minecraft.client.entity.ClientAvatarState
- 类型:public class
- 包:net.minecraft.client.entity
- 源码路径:src/main/java/net/minecraft/client/entity/ClientAvatarState.java
- 起始行号:L9
- 职责:
TODO
字段/常量
-
deltaMovementOnPreviousTick- 类型:
Vec3 - 修饰符:
private - 源码定位:
L10 - 说明:
TODO
- 类型:
-
walkDist- 类型:
float - 修饰符:
private - 源码定位:
L11 - 说明:
TODO
- 类型:
-
walkDistO- 类型:
float - 修饰符:
private - 源码定位:
L12 - 说明:
TODO
- 类型:
-
xCloak- 类型:
double - 修饰符:
private - 源码定位:
L13 - 说明:
TODO
- 类型:
-
yCloak- 类型:
double - 修饰符:
private - 源码定位:
L14 - 说明:
TODO
- 类型:
-
zCloak- 类型:
double - 修饰符:
private - 源码定位:
L15 - 说明:
TODO
- 类型:
-
xCloakO- 类型:
double - 修饰符:
private - 源码定位:
L16 - 说明:
TODO
- 类型:
-
yCloakO- 类型:
double - 修饰符:
private - 源码定位:
L17 - 说明:
TODO
- 类型:
-
zCloakO- 类型:
double - 修饰符:
private - 源码定位:
L18 - 说明:
TODO
- 类型:
-
bob- 类型:
float - 修饰符:
private - 源码定位:
L19 - 说明:
TODO
- 类型:
-
bobO- 类型:
float - 修饰符:
private - 源码定位:
L20 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public void tick(Vec3 position, Vec3 deltaMovement) @ L22
- 方法名:tick
- 源码定位:L22
- 返回类型:void
- 修饰符:public
参数:
- position: Vec3
- deltaMovement: Vec3
说明:
TODO
public void addWalkDistance(float added) @ L28
- 方法名:addWalkDistance
- 源码定位:L28
- 返回类型:void
- 修饰符:public
参数:
- added: float
说明:
TODO
public Vec3 deltaMovementOnPreviousTick() @ L32
- 方法名:deltaMovementOnPreviousTick
- 源码定位:L32
- 返回类型:Vec3
- 修饰符:public
参数:
- 无
说明:
TODO
private void moveCloak(Vec3 pos) @ L36
- 方法名:moveCloak
- 源码定位:L36
- 返回类型:void
- 修饰符:private
参数:
- pos: Vec3
说明:
TODO
public double getInterpolatedCloakX(float partialTicks) @ L66
- 方法名:getInterpolatedCloakX
- 源码定位:L66
- 返回类型:double
- 修饰符:public
参数:
- partialTicks: float
说明:
TODO
public double getInterpolatedCloakY(float partialTicks) @ L70
- 方法名:getInterpolatedCloakY
- 源码定位:L70
- 返回类型:double
- 修饰符:public
参数:
- partialTicks: float
说明:
TODO
public double getInterpolatedCloakZ(float partialTicks) @ L74
- 方法名:getInterpolatedCloakZ
- 源码定位:L74
- 返回类型:double
- 修饰符:public
参数:
- partialTicks: float
说明:
TODO
public void updateBob(float tBob) @ L78
- 方法名:updateBob
- 源码定位:L78
- 返回类型:void
- 修饰符:public
参数:
- tBob: float
说明:
TODO
public void resetBob() @ L83
- 方法名:resetBob
- 源码定位:L83
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public float getInterpolatedBob(float partialTicks) @ L88
- 方法名:getInterpolatedBob
- 源码定位:L88
- 返回类型:float
- 修饰符:public
参数:
- partialTicks: float
说明:
TODO
public float getBackwardsInterpolatedWalkDistance(float partialTicks) @ L92
- 方法名:getBackwardsInterpolatedWalkDistance
- 源码定位:L92
- 返回类型:float
- 修饰符:public
参数:
- partialTicks: float
说明:
TODO
public float getInterpolatedWalkDistance(float partialTicks) @ L97
- 方法名:getInterpolatedWalkDistance
- 源码定位:L97
- 返回类型:float
- 修饰符:public
参数:
- partialTicks: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ClientAvatarState {
private Vec3 deltaMovementOnPreviousTick = Vec3.ZERO;
private float walkDist;
private float walkDistO;
private double xCloak;
private double yCloak;
private double zCloak;
private double xCloakO;
private double yCloakO;
private double zCloakO;
private float bob;
private float bobO;
public void tick(Vec3 position, Vec3 deltaMovement) {
this.walkDistO = this.walkDist;
this.deltaMovementOnPreviousTick = deltaMovement;
this.moveCloak(position);
}
public void addWalkDistance(float added) {
this.walkDist += added;
}
public Vec3 deltaMovementOnPreviousTick() {
return this.deltaMovementOnPreviousTick;
}
private void moveCloak(Vec3 pos) {
this.xCloakO = this.xCloak;
this.yCloakO = this.yCloak;
this.zCloakO = this.zCloak;
double x = pos.x() - this.xCloak;
double y = pos.y() - this.yCloak;
double z = pos.z() - this.zCloak;
double teleportThreshold = 10.0;
if (!(x > 10.0) && !(x < -10.0)) {
this.xCloak += x * 0.25;
} else {
this.xCloak = pos.x();
this.xCloakO = this.xCloak;
}
if (!(y > 10.0) && !(y < -10.0)) {
this.yCloak += y * 0.25;
} else {
this.yCloak = pos.y();
this.yCloakO = this.yCloak;
}
if (!(z > 10.0) && !(z < -10.0)) {
this.zCloak += z * 0.25;
} else {
this.zCloak = pos.z();
this.zCloakO = this.zCloak;
}
}
public double getInterpolatedCloakX(float partialTicks) {
return Mth.lerp((double)partialTicks, this.xCloakO, this.xCloak);
}
public double getInterpolatedCloakY(float partialTicks) {
return Mth.lerp((double)partialTicks, this.yCloakO, this.yCloak);
}
public double getInterpolatedCloakZ(float partialTicks) {
return Mth.lerp((double)partialTicks, this.zCloakO, this.zCloak);
}
public void updateBob(float tBob) {
this.bobO = this.bob;
this.bob = this.bob + (tBob - this.bob) * 0.4F;
}
public void resetBob() {
this.bobO = this.bob;
this.bob = 0.0F;
}
public float getInterpolatedBob(float partialTicks) {
return Mth.lerp(partialTicks, this.bobO, this.bob);
}
public float getBackwardsInterpolatedWalkDistance(float partialTicks) {
float wda = this.walkDist - this.walkDistO;
return -(this.walkDist + wda * partialTicks);
}
public float getInterpolatedWalkDistance(float partialTicks) {
return Mth.lerp(partialTicks, this.walkDistO, this.walkDist);
}
}