VertexMultiConsumer.java
com.mojang.blaze3d.vertex.VertexMultiConsumer
信息
- 全限定名:com.mojang.blaze3d.vertex.VertexMultiConsumer
- 类型:public class
- 包:com.mojang.blaze3d.vertex
- 源码路径:src/main/java/com/mojang/blaze3d/vertex/VertexMultiConsumer.java
- 起始行号:L8
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
-
com.mojang.blaze3d.vertex.VertexMultiConsumer.Double- 类型:
class - 修饰符:
private static - 源码定位:
L26 - 说明:
TODO
- 类型:
-
com.mojang.blaze3d.vertex.VertexMultiConsumer.Multiple- 类型:
record - 修饰符:
private - 源码定位:
L103 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static VertexConsumer create() @ L9
- 方法名:create
- 源码定位:L9
- 返回类型:VertexConsumer
- 修饰符:public static
参数:
- 无
说明:
TODO
public static VertexConsumer create(VertexConsumer consumer) @ L13
- 方法名:create
- 源码定位:L13
- 返回类型:VertexConsumer
- 修饰符:public static
参数:
- consumer: VertexConsumer
说明:
TODO
public static VertexConsumer create(VertexConsumer first, VertexConsumer second) @ L17
- 方法名:create
- 源码定位:L17
- 返回类型:VertexConsumer
- 修饰符:public static
参数:
- first: VertexConsumer
- second: VertexConsumer
说明:
TODO
public static VertexConsumer create(VertexConsumer... consumers) @ L21
- 方法名:create
- 源码定位:L21
- 返回类型:VertexConsumer
- 修饰符:public static
参数:
- consumers: VertexConsumer…
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class VertexMultiConsumer {
public static VertexConsumer create() {
throw new IllegalArgumentException();
}
public static VertexConsumer create(VertexConsumer consumer) {
return consumer;
}
public static VertexConsumer create(VertexConsumer first, VertexConsumer second) {
return new VertexMultiConsumer.Double(first, second);
}
public static VertexConsumer create(VertexConsumer... consumers) {
return new VertexMultiConsumer.Multiple(consumers);
}
@OnlyIn(Dist.CLIENT)
private static class Double implements VertexConsumer {
private final VertexConsumer first;
private final VertexConsumer second;
public Double(VertexConsumer first, VertexConsumer second) {
if (first == second) {
throw new IllegalArgumentException("Duplicate delegates");
} else {
this.first = first;
this.second = second;
}
}
@Override
public VertexConsumer addVertex(float x, float y, float z) {
this.first.addVertex(x, y, z);
this.second.addVertex(x, y, z);
return this;
}
@Override
public VertexConsumer setColor(int r, int g, int b, int a) {
this.first.setColor(r, g, b, a);
this.second.setColor(r, g, b, a);
return this;
}
@Override
public VertexConsumer setColor(int color) {
this.first.setColor(color);
this.second.setColor(color);
return this;
}
@Override
public VertexConsumer setUv(float u, float v) {
this.first.setUv(u, v);
this.second.setUv(u, v);
return this;
}
@Override
public VertexConsumer setUv1(int u, int v) {
this.first.setUv1(u, v);
this.second.setUv1(u, v);
return this;
}
@Override
public VertexConsumer setUv2(int u, int v) {
this.first.setUv2(u, v);
this.second.setUv2(u, v);
return this;
}
@Override
public VertexConsumer setNormal(float x, float y, float z) {
this.first.setNormal(x, y, z);
this.second.setNormal(x, y, z);
return this;
}
@Override
public VertexConsumer setLineWidth(float width) {
this.first.setLineWidth(width);
this.second.setLineWidth(width);
return this;
}
@Override
public void addVertex(float x, float y, float z, int color, float u, float v, int overlayCoords, int lightCoords, float nx, float ny, float nz) {
this.first.addVertex(x, y, z, color, u, v, overlayCoords, lightCoords, nx, ny, nz);
this.second.addVertex(x, y, z, color, u, v, overlayCoords, lightCoords, nx, ny, nz);
}
}
@OnlyIn(Dist.CLIENT)
private record Multiple(VertexConsumer[] delegates) implements VertexConsumer {
private Multiple(VertexConsumer[] delegates) {
for (int i = 0; i < delegates.length; i++) {
for (int j = i + 1; j < delegates.length; j++) {
if (delegates[i] == delegates[j]) {
throw new IllegalArgumentException("Duplicate delegates");
}
}
}
this.delegates = delegates;
}
private void forEach(Consumer<VertexConsumer> out) {
for (VertexConsumer delegate : this.delegates) {
out.accept(delegate);
}
}
@Override
public VertexConsumer addVertex(float x, float y, float z) {
this.forEach(d -> d.addVertex(x, y, z));
return this;
}
@Override
public VertexConsumer setColor(int r, int g, int b, int a) {
this.forEach(d -> d.setColor(r, g, b, a));
return this;
}
@Override
public VertexConsumer setColor(int color) {
this.forEach(d -> d.setColor(color));
return this;
}
@Override
public VertexConsumer setUv(float u, float v) {
this.forEach(d -> d.setUv(u, v));
return this;
}
@Override
public VertexConsumer setUv1(int u, int v) {
this.forEach(d -> d.setUv1(u, v));
return this;
}
@Override
public VertexConsumer setUv2(int u, int v) {
this.forEach(d -> d.setUv2(u, v));
return this;
}
@Override
public VertexConsumer setNormal(float x, float y, float z) {
this.forEach(d -> d.setNormal(x, y, z));
return this;
}
@Override
public VertexConsumer setLineWidth(float width) {
this.forEach(d -> d.setLineWidth(width));
return this;
}
@Override
public void addVertex(float x, float y, float z, int color, float u, float v, int overlayCoords, int lightCoords, float nx, float ny, float nz) {
this.forEach(d -> d.addVertex(x, y, z, color, u, v, overlayCoords, lightCoords, nx, ny, nz));
}
}
}引用的其他类
- VertexConsumer
- 引用位置:
参数/返回值
- 引用位置: