DustColorTransitionParticle.java
net.minecraft.client.particle.DustColorTransitionParticle
信息
- 全限定名:net.minecraft.client.particle.DustColorTransitionParticle
- 类型:public class
- 包:net.minecraft.client.particle
- 源码路径:src/main/java/net/minecraft/client/particle/DustColorTransitionParticle.java
- 起始行号:L13
- 继承:DustParticleBase
- 职责:
TODO
字段/常量
-
fromColor- 类型:
Vector3f - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
toColor- 类型:
Vector3f - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.particle.DustColorTransitionParticle.Provider- 类型:
class - 修饰符:
public static - 源码定位:
L45 - 说明:
TODO
- 类型:
构造器
protected DustColorTransitionParticle(ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, DustColorTransitionOptions options, SpriteSet sprites) @ L17
- 构造器名:DustColorTransitionParticle
- 源码定位:L17
- 修饰符:protected
参数:
- level: ClientLevel
- x: double
- y: double
- z: double
- xAux: double
- yAux: double
- zAux: double
- options: DustColorTransitionOptions
- sprites: SpriteSet
说明:
TODO
方法
下面的方法块按源码顺序生成。
private Vector3f randomizeColor(Vector3f color, float baseFactor) @ L26
- 方法名:randomizeColor
- 源码定位:L26
- 返回类型:Vector3f
- 修饰符:private
参数:
- color: Vector3f
- baseFactor: float
说明:
TODO
private void lerpColors(float partialTickTime) @ L30
- 方法名:lerpColors
- 源码定位:L30
- 返回类型:void
- 修饰符:private
参数:
- partialTickTime: float
说明:
TODO
public void extract(QuadParticleRenderState particleTypeRenderState, Camera camera, float partialTickTime) @ L38
- 方法名:extract
- 源码定位:L38
- 返回类型:void
- 修饰符:public
参数:
- particleTypeRenderState: QuadParticleRenderState
- camera: Camera
- partialTickTime: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class DustColorTransitionParticle extends DustParticleBase<DustColorTransitionOptions> {
private final Vector3f fromColor;
private final Vector3f toColor;
protected DustColorTransitionParticle(
ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, DustColorTransitionOptions options, SpriteSet sprites
) {
super(level, x, y, z, xAux, yAux, zAux, options, sprites);
float baseFactor = this.random.nextFloat() * 0.4F + 0.6F;
this.fromColor = this.randomizeColor(options.getFromColor(), baseFactor);
this.toColor = this.randomizeColor(options.getToColor(), baseFactor);
}
private Vector3f randomizeColor(Vector3f color, float baseFactor) {
return new Vector3f(this.randomizeColor(color.x(), baseFactor), this.randomizeColor(color.y(), baseFactor), this.randomizeColor(color.z(), baseFactor));
}
private void lerpColors(float partialTickTime) {
float a = (this.age + partialTickTime) / (this.lifetime + 1.0F);
Vector3f lerpedColor = new Vector3f(this.fromColor).lerp(this.toColor, a);
this.rCol = lerpedColor.x();
this.gCol = lerpedColor.y();
this.bCol = lerpedColor.z();
}
@Override
public void extract(QuadParticleRenderState particleTypeRenderState, Camera camera, float partialTickTime) {
this.lerpColors(partialTickTime);
super.extract(particleTypeRenderState, camera, partialTickTime);
}
@OnlyIn(Dist.CLIENT)
public static class Provider implements ParticleProvider<DustColorTransitionOptions> {
private final SpriteSet sprites;
public Provider(SpriteSet sprites) {
this.sprites = sprites;
}
public Particle createParticle(
DustColorTransitionOptions options, ClientLevel level, double x, double y, double z, double xAux, double yAux, double zAux, RandomSource random
) {
return new DustColorTransitionParticle(level, x, y, z, xAux, yAux, zAux, options, this.sprites);
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: