CuboidFace.java
net.minecraft.client.resources.model.cuboid.CuboidFace
信息
- 全限定名:net.minecraft.client.resources.model.cuboid.CuboidFace
- 类型:public record
- 包:net.minecraft.client.resources.model.cuboid
- 源码路径:src/main/java/net/minecraft/client/resources/model/cuboid/CuboidFace.java
- 起始行号:L18
- 职责:
TODO
字段/常量
NO_TINT- 类型:
int - 修饰符:
public static final - 源码定位:
L19 - 说明:
TODO
- 类型:
内部类/嵌套类型
-
net.minecraft.client.resources.model.cuboid.CuboidFace.Deserializer- 类型:
class - 修饰符:
protected static - 源码定位:
L30 - 说明:
TODO
- 类型:
-
net.minecraft.client.resources.model.cuboid.CuboidFace.UVs- 类型:
record - 修饰符:
public - 源码定位:
L81 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static float getU(CuboidFace.UVs uvs, Quadrant rotation, int vertex) @ L21
- 方法名:getU
- 源码定位:L21
- 返回类型:float
- 修饰符:public static
参数:
- uvs: CuboidFace.UVs
- rotation: Quadrant
- vertex: int
说明:
TODO
public static float getV(CuboidFace.UVs uvs, Quadrant rotation, int index) @ L25
- 方法名:getV
- 源码定位:L25
- 返回类型:float
- 修饰符:public static
参数:
- uvs: CuboidFace.UVs
- rotation: Quadrant
- index: int
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public record CuboidFace(@Nullable Direction cullForDirection, int tintIndex, String texture, CuboidFace.@Nullable UVs uvs, Quadrant rotation) {
public static final int NO_TINT = -1;
public static float getU(CuboidFace.UVs uvs, Quadrant rotation, int vertex) {
return uvs.getVertexU(rotation.rotateVertexIndex(vertex)) / 16.0F;
}
public static float getV(CuboidFace.UVs uvs, Quadrant rotation, int index) {
return uvs.getVertexV(rotation.rotateVertexIndex(index)) / 16.0F;
}
@OnlyIn(Dist.CLIENT)
protected static class Deserializer implements JsonDeserializer<CuboidFace> {
private static final int DEFAULT_TINT_INDEX = -1;
private static final int DEFAULT_ROTATION = 0;
public CuboidFace deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject object = json.getAsJsonObject();
Direction cullDirection = getCullFacing(object);
int tintIndex = getTintIndex(object);
String texture = getTexture(object);
CuboidFace.UVs uvs = getUVs(object);
Quadrant rotation = getRotation(object);
return new CuboidFace(cullDirection, tintIndex, texture, uvs, rotation);
}
private static int getTintIndex(JsonObject object) {
return GsonHelper.getAsInt(object, "tintindex", -1);
}
private static String getTexture(JsonObject object) {
return GsonHelper.getAsString(object, "texture");
}
private static @Nullable Direction getCullFacing(JsonObject object) {
String cullFace = GsonHelper.getAsString(object, "cullface", "");
return Direction.byName(cullFace);
}
private static Quadrant getRotation(JsonObject object) {
int rotation = GsonHelper.getAsInt(object, "rotation", 0);
return Quadrant.parseJson(rotation);
}
private static CuboidFace.@Nullable UVs getUVs(JsonObject object) {
if (!object.has("uv")) {
return null;
} else {
JsonArray uvArray = GsonHelper.getAsJsonArray(object, "uv");
if (uvArray.size() != 4) {
throw new JsonParseException("Expected 4 uv values, found: " + uvArray.size());
} else {
float minU = GsonHelper.convertToFloat(uvArray.get(0), "minU");
float minV = GsonHelper.convertToFloat(uvArray.get(1), "minV");
float maxU = GsonHelper.convertToFloat(uvArray.get(2), "maxU");
float maxV = GsonHelper.convertToFloat(uvArray.get(3), "maxV");
return new CuboidFace.UVs(minU, minV, maxU, maxV);
}
}
}
}
@OnlyIn(Dist.CLIENT)
public record UVs(float minU, float minV, float maxU, float maxV) {
public float getVertexU(int index) {
return index != 0 && index != 1 ? this.maxU : this.minU;
}
public float getVertexV(int index) {
return index != 0 && index != 3 ? this.maxV : this.minV;
}
}
}引用的其他类
-
- 引用位置:
参数/方法调用 - 关联成员:
Quadrant.parseJson()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Direction.byName()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
GsonHelper.convertToFloat(), GsonHelper.getAsInt(), GsonHelper.getAsJsonArray(), GsonHelper.getAsString()
- 引用位置: