BlockModelRotation.java
net.minecraft.client.renderer.block.dispatch.BlockModelRotation
信息
- 全限定名:net.minecraft.client.renderer.block.dispatch.BlockModelRotation
- 类型:public class
- 包:net.minecraft.client.renderer.block.dispatch
- 源码路径:src/main/java/net/minecraft/client/renderer/block/dispatch/BlockModelRotation.java
- 起始行号:L16
- 实现:ModelState
- 职责:
TODO
字段/常量
-
BY_GROUP_ORDINAL- 类型:
Map<OctahedralGroup,BlockModelRotation> - 修饰符:
private static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
IDENTITY- 类型:
BlockModelRotation - 修饰符:
public static final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
orientation- 类型:
OctahedralGroup - 修饰符:
private final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
transformation- 类型:
Transformation - 修饰符:
private final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
faceMapping- 类型:
Map<Direction,Matrix4fc> - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
inverseFaceMapping- 类型:
Map<Direction,Matrix4fc> - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
withUvLock- 类型:
BlockModelRotation.WithUvLock - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.renderer.block.dispatch.BlockModelRotation.WithUvLock- 类型:
record - 修饰符:
private - 源码定位:
L59 - 说明:
TODO
- 类型:
构造器
private BlockModelRotation(OctahedralGroup orientation) @ L25
- 构造器名:BlockModelRotation
- 源码定位:L25
- 修饰符:private
参数:
- orientation: OctahedralGroup
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Transformation transformation() @ L40
- 方法名:transformation
- 源码定位:L40
- 返回类型:Transformation
- 修饰符:public
参数:
- 无
说明:
TODO
public static BlockModelRotation get(OctahedralGroup group) @ L45
- 方法名:get
- 源码定位:L45
- 返回类型:BlockModelRotation
- 修饰符:public static
参数:
- group: OctahedralGroup
说明:
TODO
public ModelState withUvLock() @ L49
- 方法名:withUvLock
- 源码定位:L49
- 返回类型:ModelState
- 修饰符:public
参数:
- 无
说明:
TODO
public String toString() @ L53
- 方法名:toString
- 源码定位:L53
- 返回类型:String
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class BlockModelRotation implements ModelState {
private static final Map<OctahedralGroup, BlockModelRotation> BY_GROUP_ORDINAL = Util.makeEnumMap(OctahedralGroup.class, BlockModelRotation::new);
public static final BlockModelRotation IDENTITY = get(OctahedralGroup.IDENTITY);
private final OctahedralGroup orientation;
private final Transformation transformation;
private final Map<Direction, Matrix4fc> faceMapping = new EnumMap<>(Direction.class);
private final Map<Direction, Matrix4fc> inverseFaceMapping = new EnumMap<>(Direction.class);
private final BlockModelRotation.WithUvLock withUvLock = new BlockModelRotation.WithUvLock(this);
private BlockModelRotation(OctahedralGroup orientation) {
this.orientation = orientation;
if (orientation != OctahedralGroup.IDENTITY) {
this.transformation = new Transformation(new Matrix4f(orientation.transformation()));
} else {
this.transformation = Transformation.IDENTITY;
}
for (Direction face : Direction.values()) {
Matrix4fc faceTransform = BlockMath.getFaceTransformation(this.transformation, face).getMatrix();
this.faceMapping.put(face, faceTransform);
this.inverseFaceMapping.put(face, faceTransform.invertAffine(new Matrix4f()));
}
}
@Override
public Transformation transformation() {
return this.transformation;
}
public static BlockModelRotation get(OctahedralGroup group) {
return BY_GROUP_ORDINAL.get(group);
}
public ModelState withUvLock() {
return this.withUvLock;
}
@Override
public String toString() {
return "simple[" + this.orientation.getSerializedName() + "]";
}
@OnlyIn(Dist.CLIENT)
private record WithUvLock(BlockModelRotation parent) implements ModelState {
@Override
public Transformation transformation() {
return this.parent.transformation;
}
@Override
public Matrix4fc faceTransformation(Direction face) {
return this.parent.faceMapping.getOrDefault(face, NO_TRANSFORM);
}
@Override
public Matrix4fc inverseFaceTransformation(Direction face) {
return this.parent.inverseFaceMapping.getOrDefault(face, NO_TRANSFORM);
}
@Override
public String toString() {
return "uvLocked[" + this.parent.orientation.getSerializedName() + "]";
}
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
字段/构造调用/返回值 - 关联成员:
Transformation()
- 引用位置:
-
- 引用位置:
实现/返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BlockMath.getFaceTransformation()
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
Direction.values()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.makeEnumMap()
- 引用位置: