FaceInfo.java

net.minecraft.client.renderer.FaceInfo

信息

  • 全限定名:net.minecraft.client.renderer.FaceInfo
  • 类型:public enum
  • 包:net.minecraft.client.renderer
  • 源码路径:src/main/java/net/minecraft/client/renderer/FaceInfo.java
  • 起始行号:L13
  • 职责:

    TODO

字段/常量

  • MAX_Z, MIN_Z, MIN_Z, MAX_Z, MAX_Z, MIN_Z

    • 类型: DOWN(new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X,FaceInfo.Extent.MIN_Y,FaceInfo.Extent.MAX_Z),new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X,FaceInfo.Extent.MIN_Y,FaceInfo.Extent.MIN_Z),new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X,FaceInfo.Extent.MIN_Y,FaceInfo.Extent.MIN_Z),new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X,FaceInfo.Extent.MIN_Y,FaceInfo.Extent.
    • 修饰符: package-private
    • 源码定位: L14
    • 说明:

      TODO

  • infos

    • 类型: FaceInfo.VertexInfo[]
    • 修饰符: private final
    • 源码定位: L59
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.client.renderer.FaceInfo.Extent

    • 类型: enum
    • 修饰符: public static
    • 源码定位: L74
    • 说明:

      TODO

  • net.minecraft.client.renderer.FaceInfo.VertexInfo

    • 类型: record
    • 修饰符: public
    • 源码定位: L106
    • 说明:

      TODO

构造器

private FaceInfo(FaceInfo.VertexInfo... infos) @ L65

  • 构造器名:FaceInfo
  • 源码定位:L65
  • 修饰符:private

参数:

  • infos: FaceInfo.VertexInfo…

说明:

TODO

方法

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

public static FaceInfo fromFacing(Direction direction) @ L61

  • 方法名:fromFacing
  • 源码定位:L61
  • 返回类型:FaceInfo
  • 修饰符:public static

参数:

  • direction: Direction

说明:

TODO

public FaceInfo.VertexInfo getVertexInfo(int index) @ L69

  • 方法名:getVertexInfo
  • 源码定位:L69
  • 返回类型:FaceInfo.VertexInfo
  • 修饰符:public

参数:

  • index: int

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public enum FaceInfo {
    DOWN(
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MAX_Z)
    ),
    UP(
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MIN_Z)
    ),
    NORTH(
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MIN_Z)
    ),
    SOUTH(
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MAX_Z)
    ),
    WEST(
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MIN_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MAX_Z)
    ),
    EAST(
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MAX_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MIN_Y, FaceInfo.Extent.MIN_Z),
        new FaceInfo.VertexInfo(FaceInfo.Extent.MAX_X, FaceInfo.Extent.MAX_Y, FaceInfo.Extent.MIN_Z)
    );
 
    private static final Map<Direction, FaceInfo> BY_FACING = Util.make(new EnumMap<>(Direction.class), map -> {
        map.put(Direction.DOWN, DOWN);
        map.put(Direction.UP, UP);
        map.put(Direction.NORTH, NORTH);
        map.put(Direction.SOUTH, SOUTH);
        map.put(Direction.WEST, WEST);
        map.put(Direction.EAST, EAST);
    });
    private final FaceInfo.VertexInfo[] infos;
 
    public static FaceInfo fromFacing(Direction direction) {
        return BY_FACING.get(direction);
    }
 
    private FaceInfo(FaceInfo.VertexInfo... infos) {
        this.infos = infos;
    }
 
    public FaceInfo.VertexInfo getVertexInfo(int index) {
        return this.infos[index];
    }
 
    @OnlyIn(Dist.CLIENT)
    public static enum Extent {
        MIN_X,
        MIN_Y,
        MIN_Z,
        MAX_X,
        MAX_Y,
        MAX_Z;
 
        public float select(Vector3fc min, Vector3fc max) {
            return switch (this) {
                case MIN_X -> min.x();
                case MIN_Y -> min.y();
                case MIN_Z -> min.z();
                case MAX_X -> max.x();
                case MAX_Y -> max.y();
                case MAX_Z -> max.z();
            };
        }
 
        public float select(float minX, float minY, float minZ, float maxX, float maxY, float maxZ) {
            return switch (this) {
                case MIN_X -> minX;
                case MIN_Y -> minY;
                case MIN_Z -> minZ;
                case MAX_X -> maxX;
                case MAX_Y -> maxY;
                case MAX_Z -> maxZ;
            };
        }
    }
 
    @OnlyIn(Dist.CLIENT)
    public record VertexInfo(FaceInfo.Extent xFace, FaceInfo.Extent yFace, FaceInfo.Extent zFace) {
        public Vector3f select(Vector3fc min, Vector3fc max) {
            return new Vector3f(this.xFace.select(min, max), this.yFace.select(min, max), this.zFace.select(min, max));
        }
    }
}

引用的其他类

  • Direction

    • 引用位置: 参数
  • Util

    • 引用位置: 方法调用
    • 关联成员: Util.make()