ParticleGroup.java
net.minecraft.client.particle.ParticleGroup
信息
- 全限定名:net.minecraft.client.particle.ParticleGroup
- 类型:public abstract class
- 包:net.minecraft.client.particle
- 源码路径:src/main/java/net/minecraft/client/particle/ParticleGroup.java
- 起始行号:L16
- 职责:
TODO
字段/常量
-
MAX_PARTICLES- 类型:
int - 修饰符:
private static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
engine- 类型:
ParticleEngine - 修饰符:
protected final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
particles- 类型:
Queue<P> - 修饰符:
protected final - 源码定位:
L19 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ParticleGroup(ParticleEngine engine) @ L21
- 构造器名:ParticleGroup
- 源码定位:L21
- 修饰符:public
参数:
- engine: ParticleEngine
说明:
TODO
方法
下面的方法块按源码顺序生成。
public boolean isEmpty() @ L25
- 方法名:isEmpty
- 源码定位:L25
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
public void tickParticles() @ L29
- 方法名:tickParticles
- 源码定位:L29
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
private void tickParticle(Particle particle) @ L44
- 方法名:tickParticle
- 源码定位:L44
- 返回类型:void
- 修饰符:private
参数:
- particle: Particle
说明:
TODO
public void add(Particle particle) @ L56
- 方法名:add
- 源码定位:L56
- 返回类型:void
- 修饰符:public
参数:
- particle: Particle
说明:
TODO
public int size() @ L60
- 方法名:size
- 源码定位:L60
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public abstract ParticleGroupRenderState extractRenderState(Frustum frustum, Camera camera, float partialTickTime) @ L64
- 方法名:extractRenderState
- 源码定位:L64
- 返回类型:ParticleGroupRenderState
- 修饰符:public abstract
参数:
- frustum: Frustum
- camera: Camera
- partialTickTime: float
说明:
TODO
public Queue<P> getAll() @ L66
- 方法名:getAll
- 源码定位:L66
- 返回类型:Queue
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class ParticleGroup<P extends Particle> {
private static final int MAX_PARTICLES = 16384;
protected final ParticleEngine engine;
protected final Queue<P> particles = EvictingQueue.create(16384);
public ParticleGroup(ParticleEngine engine) {
this.engine = engine;
}
public boolean isEmpty() {
return this.particles.isEmpty();
}
public void tickParticles() {
if (!this.particles.isEmpty()) {
Iterator<P> iterator = this.particles.iterator();
while (iterator.hasNext()) {
P particle = iterator.next();
this.tickParticle(particle);
if (!particle.isAlive()) {
particle.getParticleLimit().ifPresent(options -> this.engine.updateCount(options, -1));
iterator.remove();
}
}
}
}
private void tickParticle(Particle particle) {
try {
particle.tick();
} catch (Throwable var5) {
CrashReport report = CrashReport.forThrowable(var5, "Ticking Particle");
CrashReportCategory category = report.addCategory("Particle being ticked");
category.setDetail("Particle", particle::toString);
category.setDetail("Particle Type", particle.getGroup()::toString);
throw new ReportedException(report);
}
}
public void add(Particle particle) {
this.particles.add((P)particle);
}
public int size() {
return this.particles.size();
}
public abstract ParticleGroupRenderState extractRenderState(Frustum frustum, Camera camera, float partialTickTime);
public Queue<P> getAll() {
return this.particles;
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
CrashReport.forThrowable()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
ReportedException()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
返回值
- 引用位置: