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);
    }
}

引用的其他类

  • Mth

    • 引用位置: 方法调用
    • 关联成员: Mth.lerp()
  • Vec3

    • 引用位置: 参数/字段/返回值