VertexConsumer.java

com.mojang.blaze3d.vertex.VertexConsumer

信息

  • 全限定名:com.mojang.blaze3d.vertex.VertexConsumer
  • 类型:public interface
  • 包:com.mojang.blaze3d.vertex
  • 源码路径:src/main/java/com/mojang/blaze3d/vertex/VertexConsumer.java
  • 起始行号:L15
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

VertexConsumer addVertex(float x, float y, float z) @ L16

  • 方法名:addVertex
  • 源码定位:L16
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • x: float
  • y: float
  • z: float

说明:

TODO

VertexConsumer setColor(int r, int g, int b, int a) @ L18

  • 方法名:setColor
  • 源码定位:L18
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • r: int
  • g: int
  • b: int
  • a: int

说明:

TODO

VertexConsumer setColor(int color) @ L20

  • 方法名:setColor
  • 源码定位:L20
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • color: int

说明:

TODO

VertexConsumer setUv(float u, float v) @ L22

  • 方法名:setUv
  • 源码定位:L22
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • u: float
  • v: float

说明:

TODO

VertexConsumer setUv1(int u, int v) @ L24

  • 方法名:setUv1
  • 源码定位:L24
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • u: int
  • v: int

说明:

TODO

VertexConsumer setUv2(int u, int v) @ L26

  • 方法名:setUv2
  • 源码定位:L26
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • u: int
  • v: int

说明:

TODO

VertexConsumer setNormal(float x, float y, float z) @ L28

  • 方法名:setNormal
  • 源码定位:L28
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • x: float
  • y: float
  • z: float

说明:

TODO

VertexConsumer setLineWidth(float width) @ L30

  • 方法名:setLineWidth
  • 源码定位:L30
  • 返回类型:VertexConsumer
  • 修饰符:package-private

参数:

  • width: float

说明:

TODO

default void addVertex(float x, float y, float z, int color, float u, float v, int overlayCoords, int lightCoords, float nx, float ny, float nz) @ L32

  • 方法名:addVertex
  • 源码定位:L32
  • 返回类型:void
  • 修饰符:default

参数:

  • x: float
  • y: float
  • z: float
  • color: int
  • u: float
  • v: float
  • overlayCoords: int
  • lightCoords: int
  • nx: float
  • ny: float
  • nz: float

说明:

TODO

default VertexConsumer setColor(float r, float g, float b, float a) @ L41

  • 方法名:setColor
  • 源码定位:L41
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • r: float
  • g: float
  • b: float
  • a: float

说明:

TODO

default VertexConsumer setLight(int packedLightCoords) @ L45

  • 方法名:setLight
  • 源码定位:L45
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • packedLightCoords: int

说明:

TODO

default VertexConsumer setOverlay(int packedOverlayCoords) @ L49

  • 方法名:setOverlay
  • 源码定位:L49
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • packedOverlayCoords: int

说明:

TODO

default void putBlockBakedQuad(float x, float y, float z, BakedQuad quad, QuadInstance instance) @ L53

  • 方法名:putBlockBakedQuad
  • 源码定位:L53
  • 返回类型:void
  • 修饰符:default

参数:

  • x: float
  • y: float
  • z: float
  • quad: BakedQuad
  • instance: QuadInstance

说明:

TODO

default void putBakedQuad(PoseStack.Pose pose, BakedQuad quad, QuadInstance instance) @ L68

  • 方法名:putBakedQuad
  • 源码定位:L68
  • 返回类型:void
  • 修饰符:default

参数:

  • pose: PoseStack.Pose
  • quad: BakedQuad
  • instance: QuadInstance

说明:

TODO

default VertexConsumer addVertex(Vector3fc position) @ L86

  • 方法名:addVertex
  • 源码定位:L86
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • position: Vector3fc

说明:

TODO

default VertexConsumer addVertex(PoseStack.Pose pose, Vector3fc position) @ L90

  • 方法名:addVertex
  • 源码定位:L90
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • pose: PoseStack.Pose
  • position: Vector3fc

说明:

TODO

default VertexConsumer addVertex(PoseStack.Pose pose, float x, float y, float z) @ L94

  • 方法名:addVertex
  • 源码定位:L94
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • pose: PoseStack.Pose
  • x: float
  • y: float
  • z: float

说明:

TODO

default VertexConsumer addVertex(Matrix4fc pose, float x, float y, float z) @ L98

  • 方法名:addVertex
  • 源码定位:L98
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • pose: Matrix4fc
  • x: float
  • y: float
  • z: float

说明:

TODO

default VertexConsumer addVertexWith2DPose(Matrix3x2fc pose, float x, float y) @ L103

  • 方法名:addVertexWith2DPose
  • 源码定位:L103
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • pose: Matrix3x2fc
  • x: float
  • y: float

说明:

TODO

default VertexConsumer setNormal(PoseStack.Pose pose, float x, float y, float z) @ L108

  • 方法名:setNormal
  • 源码定位:L108
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • pose: PoseStack.Pose
  • x: float
  • y: float
  • z: float

说明:

TODO

default VertexConsumer setNormal(PoseStack.Pose pose, Vector3fc normal) @ L113

  • 方法名:setNormal
  • 源码定位:L113
  • 返回类型:VertexConsumer
  • 修饰符:default

参数:

  • pose: PoseStack.Pose
  • normal: Vector3fc

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public interface VertexConsumer {
    VertexConsumer addVertex(float x, float y, float z);
 
    VertexConsumer setColor(int r, int g, int b, int a);
 
    VertexConsumer setColor(int color);
 
    VertexConsumer setUv(float u, float v);
 
    VertexConsumer setUv1(int u, int v);
 
    VertexConsumer setUv2(int u, int v);
 
    VertexConsumer setNormal(float x, float y, float z);
 
    VertexConsumer setLineWidth(float width);
 
    default 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.addVertex(x, y, z);
        this.setColor(color);
        this.setUv(u, v);
        this.setOverlay(overlayCoords);
        this.setLight(lightCoords);
        this.setNormal(nx, ny, nz);
    }
 
    default VertexConsumer setColor(float r, float g, float b, float a) {
        return this.setColor((int)(r * 255.0F), (int)(g * 255.0F), (int)(b * 255.0F), (int)(a * 255.0F));
    }
 
    default VertexConsumer setLight(int packedLightCoords) {
        return this.setUv2(packedLightCoords & 65535, packedLightCoords >> 16 & 65535);
    }
 
    default VertexConsumer setOverlay(int packedOverlayCoords) {
        return this.setUv1(packedOverlayCoords & 65535, packedOverlayCoords >> 16 & 65535);
    }
 
    default void putBlockBakedQuad(float x, float y, float z, BakedQuad quad, QuadInstance instance) {
        Vector3fc normal = quad.direction().getUnitVec3f();
        int lightEmission = quad.materialInfo().lightEmission();
 
        for (int vertex = 0; vertex < 4; vertex++) {
            Vector3fc pos = quad.position(vertex);
            long packedUv = quad.packedUV(vertex);
            int vertexColor = instance.getColor(vertex);
            int light = instance.getLightCoordsWithEmission(vertex, lightEmission);
            float u = UVPair.unpackU(packedUv);
            float v = UVPair.unpackV(packedUv);
            this.addVertex(pos.x() + x, pos.y() + y, pos.z() + z, vertexColor, u, v, instance.overlayCoords(), light, normal.x(), normal.y(), normal.z());
        }
    }
 
    default void putBakedQuad(PoseStack.Pose pose, BakedQuad quad, QuadInstance instance) {
        Vector3fc normalVec = quad.direction().getUnitVec3f();
        Matrix4f matrix = pose.pose();
        Vector3f normal = pose.transformNormal(normalVec, new Vector3f());
        int lightEmission = quad.materialInfo().lightEmission();
 
        for (int vertex = 0; vertex < 4; vertex++) {
            Vector3fc position = quad.position(vertex);
            long packedUv = quad.packedUV(vertex);
            int vertexColor = instance.getColor(vertex);
            int light = instance.getLightCoordsWithEmission(vertex, lightEmission);
            Vector3f pos = matrix.transformPosition(position, new Vector3f());
            float u = UVPair.unpackU(packedUv);
            float v = UVPair.unpackV(packedUv);
            this.addVertex(pos.x(), pos.y(), pos.z(), vertexColor, u, v, instance.overlayCoords(), light, normal.x(), normal.y(), normal.z());
        }
    }
 
    default VertexConsumer addVertex(Vector3fc position) {
        return this.addVertex(position.x(), position.y(), position.z());
    }
 
    default VertexConsumer addVertex(PoseStack.Pose pose, Vector3fc position) {
        return this.addVertex(pose, position.x(), position.y(), position.z());
    }
 
    default VertexConsumer addVertex(PoseStack.Pose pose, float x, float y, float z) {
        return this.addVertex(pose.pose(), x, y, z);
    }
 
    default VertexConsumer addVertex(Matrix4fc pose, float x, float y, float z) {
        Vector3f pos = pose.transformPosition(x, y, z, new Vector3f());
        return this.addVertex(pos.x(), pos.y(), pos.z());
    }
 
    default VertexConsumer addVertexWith2DPose(Matrix3x2fc pose, float x, float y) {
        Vector2f pos = pose.transformPosition(x, y, new Vector2f());
        return this.addVertex(pos.x(), pos.y(), 0.0F);
    }
 
    default VertexConsumer setNormal(PoseStack.Pose pose, float x, float y, float z) {
        Vector3f normal = pose.transformNormal(x, y, z, new Vector3f());
        return this.setNormal(normal.x(), normal.y(), normal.z());
    }
 
    default VertexConsumer setNormal(PoseStack.Pose pose, Vector3fc normal) {
        return this.setNormal(pose, normal.x(), normal.y(), normal.z());
    }
}

引用的其他类

  • PoseStack

    • 引用位置: 参数
  • QuadInstance

    • 引用位置: 参数
  • UVPair

    • 引用位置: 方法调用
    • 关联成员: UVPair.unpackU(), UVPair.unpackV()
  • BakedQuad

    • 引用位置: 参数