Skip to content

Commit

Permalink
Fabric 1.21
Browse files Browse the repository at this point in the history
MATRIX-feather committed Jun 14, 2024
1 parent 0f60972 commit db7456f
Showing 6 changed files with 43 additions and 13 deletions.
3 changes: 2 additions & 1 deletion settings.json
Original file line number Diff line number Diff line change
@@ -22,6 +22,7 @@
"1.20.4-fabric",
"1.20.6-forge",
"1.20.6-neoforge",
"1.20.6-fabric"
"1.20.6-fabric",
"1.21-fabric"
]
}
9 changes: 6 additions & 3 deletions src/main/java/dev/tr7zw/skinlayers/api/Mesh.java
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@ public void setPosition(float x, float y, float z) {

@Override
public void render(ModelPart vanillaModel, PoseStack poseStack, VertexConsumer vertexConsumer, int light,
int overlay, float red, float green, float blue, float alpha) {
int overlay, int color) {
}

@Override
@@ -52,11 +52,14 @@ public void copyFrom(ModelPart modelPart) {
};

public default void render(PoseStack poseStack, VertexConsumer vertexConsumer, int light, int overlay) {
render(null, poseStack, vertexConsumer, light, overlay, 1.0F, 1.0F, 1.0F, 1.0F);
render(null, poseStack, vertexConsumer, light, overlay, 0xFFFFFFFF);
}

/**
* @param color The color, in ARGB format
*/
public void render(ModelPart vanillaModel, PoseStack poseStack, VertexConsumer vertexConsumer, int light,
int overlay, float red, float green, float blue, float alpha);
int overlay, int color);

public void setPosition(float x, float y, float z);

Original file line number Diff line number Diff line change
@@ -28,6 +28,10 @@ public class ConfigScreenProvider {
public static Screen createConfigScreen(Screen parent) {
return new CustomConfigScreen(parent, "text.skinlayers.title") {

@Override
protected void addOptions() {
}

@Override
public void initialize() {
Config config = SkinLayersModBase.config;
Original file line number Diff line number Diff line change
@@ -76,15 +76,34 @@ public void render(PoseStack poseStack, VertexConsumer vertexConsumer, int i, in
render(null, poseStack, vertexConsumer, i, j, 1.0F, 1.0F, 1.0F, 1.0F);
}

private int convertFloatColorToInteger(float color) {
return color > 1F ? 255 : Math.round(color * 255F);
}

/**
* Kept for some mod (like ETF) shadowing the old render method to call
*/
@Deprecated(forRemoval = true)
public void render(ModelPart vanillaModel, PoseStack poseStack, VertexConsumer vertexConsumer, int light,
int overlay, float red, float green, float blue, float alpha) {
var color = (convertFloatColorToInteger(alpha) & 0xFF) << 24| (convertFloatColorToInteger(red) & 0xFF) << 16
| (convertFloatColorToInteger(green) & 0xFF) << 8 | convertFloatColorToInteger(blue) & 0xFF;

render(vanillaModel, poseStack, vertexConsumer, light, overlay, color);
}

/**
* @param color Color, in ARGB format
*/
public void render(ModelPart vanillaModel, PoseStack poseStack, VertexConsumer vertexConsumer, int light,
int overlay, int color) {
if (!this.visible)
return;
poseStack.pushPose();
translateAndRotate(poseStack);
compile(vanillaModel, poseStack.last(), vertexConsumer, light, overlay, red, green, blue, alpha);
compile(vanillaModel, poseStack.last(), vertexConsumer, light, overlay, color);
for (ModelPart modelPart : this.children.values())
modelPart.render(poseStack, vertexConsumer, light, overlay, red, green, blue, alpha);
modelPart.render(poseStack, vertexConsumer, light, overlay, color);
poseStack.popPose();
}

@@ -109,7 +128,7 @@ public void translateAndRotate(PoseStack poseStack) {
private Vector4f vector4f[] = new Vector4f[] { new Vector4f(), new Vector4f(), new Vector4f(), new Vector4f() };

private void compile(ModelPart vanillaModel, PoseStack.Pose pose, VertexConsumer vertexConsumer, int light,
int overlay, float red, float green, float blue, float alpha) {
int overlay, int color) {
MeshTransformer transformer = SkinLayersAPI.getMeshTransformerProvider().prepareTransformer(vanillaModel);
// compacted Cubes
Matrix4f matrix4f = pose.pose();
@@ -134,9 +153,12 @@ private void compile(ModelPart vanillaModel, PoseStack.Pose pose, VertexConsumer
//$$ vector4f[o].transform(matrix4f);
//#endif
//spotless:on
vertexConsumer.vertex(vector4f[o].x(), vector4f[o].y(), vector4f[o].z(), red, green, blue, alpha,
polygonData[id + 3 + (o * 5) + 3], polygonData[id + 3 + (o * 5) + 4], overlay, light,
vector3f.x(), vector3f.y(), vector3f.z());
vertexConsumer.addVertex(vector4f[o].x(), vector4f[o].y(), vector4f[o].z());
vertexConsumer.setColor(color);
vertexConsumer.setUv(polygonData[id + 3 + (o * 5) + 3], polygonData[id + 3 + (o * 5) + 4]);
vertexConsumer.setOverlay(overlay);
vertexConsumer.setLight(light);
vertexConsumer.setNormal(vector3f.x(), vector3f.y(), vector3f.z());
}
}

@@ -145,7 +167,7 @@ private void compile(ModelPart vanillaModel, PoseStack.Pose pose, VertexConsumer
transformer.transform(cube);
// spotless:off
//#if MC >= 11700
cube.compile(pose, vertexConsumer, light, overlay, red, green, blue, alpha);
cube.compile(pose, vertexConsumer, light, overlay, color);
//#else
//$$ for (ModelPart.Polygon polygon : cube.polygons) {
//$$ Vector3f vector3f = polygon.normal.copy();
Original file line number Diff line number Diff line change
@@ -137,7 +137,7 @@ public void renderLayers(AbstractClientPlayer abstractClientPlayer, PlayerSettin

mesh.setPosition(x, y, 0);

mesh.render(layer.vanillaGetter.get(), matrixStack, vertices, light, overlay, 1.0f, 1.0f, 1.0f, 1.0f);
mesh.render(layer.vanillaGetter.get(), matrixStack, vertices, light, overlay, 0xFFFFFFFF);
matrixStack.popPose();
}
}
2 changes: 1 addition & 1 deletion versions/mainProject
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.20.6-fabric
1.21-fabric

0 comments on commit db7456f

Please sign in to comment.