TrackingEmitter.java
net.minecraft.client.particle.TrackingEmitter
信息
- 全限定名:net.minecraft.client.particle.TrackingEmitter
- 类型:public class
- 包:net.minecraft.client.particle
- 源码路径:src/main/java/net/minecraft/client/particle/TrackingEmitter.java
- 起始行号:L11
- 继承:NoRenderParticle
- 职责:
TODO
字段/常量
-
entity- 类型:
Entity - 修饰符:
private final - 源码定位:
L12 - 说明:
TODO
- 类型:
-
life- 类型:
int - 修饰符:
private - 源码定位:
L13 - 说明:
TODO
- 类型:
-
lifeTime- 类型:
int - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
particleType- 类型:
ParticleOptions - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public TrackingEmitter(ClientLevel level, Entity entity, ParticleOptions particleType) @ L17
- 构造器名:TrackingEmitter
- 源码定位:L17
- 修饰符:public
参数:
- level: ClientLevel
- entity: Entity
- particleType: ParticleOptions
说明:
TODO
public TrackingEmitter(ClientLevel level, Entity entity, ParticleOptions particleType, int lifeTime) @ L21
- 构造器名:TrackingEmitter
- 源码定位:L21
- 修饰符:public
参数:
- level: ClientLevel
- entity: Entity
- particleType: ParticleOptions
- lifeTime: int
说明:
TODO
private TrackingEmitter(ClientLevel level, Entity entity, ParticleOptions particleType, int lifeTime, Vec3 movement) @ L25
- 构造器名:TrackingEmitter
- 源码定位:L25
- 修饰符:private
参数:
- level: ClientLevel
- entity: Entity
- particleType: ParticleOptions
- lifeTime: int
- movement: Vec3
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void tick() @ L33
- 方法名:tick
- 源码定位:L33
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class TrackingEmitter extends NoRenderParticle {
private final Entity entity;
private int life;
private final int lifeTime;
private final ParticleOptions particleType;
public TrackingEmitter(ClientLevel level, Entity entity, ParticleOptions particleType) {
this(level, entity, particleType, 3);
}
public TrackingEmitter(ClientLevel level, Entity entity, ParticleOptions particleType, int lifeTime) {
this(level, entity, particleType, lifeTime, entity.getDeltaMovement());
}
private TrackingEmitter(ClientLevel level, Entity entity, ParticleOptions particleType, int lifeTime, Vec3 movement) {
super(level, entity.getX(), entity.getY(0.5), entity.getZ(), movement.x, movement.y, movement.z);
this.entity = entity;
this.lifeTime = lifeTime;
this.particleType = particleType;
this.tick();
}
@Override
public void tick() {
for (int i = 0; i < 16; i++) {
double xa = this.random.nextFloat() * 2.0F - 1.0F;
double ya = this.random.nextFloat() * 2.0F - 1.0F;
double za = this.random.nextFloat() * 2.0F - 1.0F;
if (!(xa * xa + ya * ya + za * za > 1.0)) {
double x = this.entity.getX(xa / 4.0);
double y = this.entity.getY(0.5 + ya / 4.0);
double z = this.entity.getZ(za / 4.0);
this.level.addParticle(this.particleType, x, y, z, xa, ya + 0.2, za);
}
}
this.life++;
if (this.life >= this.lifeTime) {
this.remove();
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置: