Skip to content

Commit

Permalink
Test fixing EMF support in Compatebility mode/1.21.3
Browse files Browse the repository at this point in the history
  • Loading branch information
tr7zw committed Nov 4, 2024
1 parent 626c1b4 commit ff230ac
Show file tree
Hide file tree
Showing 20 changed files with 124 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/main/java/dev/tr7zw/skinlayers/accessor/ModelPartInjector.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
package dev.tr7zw.skinlayers.accessor;

import com.mojang.blaze3d.vertex.PoseStack;

import dev.tr7zw.skinlayers.api.Mesh;
import dev.tr7zw.skinlayers.api.OffsetProvider;

public interface ModelPartInjector {

public void setInjectedMesh(Mesh mesh, OffsetProvider offsetProvider);

public boolean isVisible();

public Mesh getInjectedMesh();

public OffsetProvider getOffsetProvider();

public void prepareTranslateAndRotate(PoseStack poseStack);

}
55 changes: 55 additions & 0 deletions src/main/java/dev/tr7zw/skinlayers/mixin/EMFModelPartMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@

package dev.tr7zw.skinlayers.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC >= 12000 && FABRIC || NEOFORGE
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;

import dev.tr7zw.skinlayers.accessor.ModelPartInjector;
import traben.entity_model_features.models.parts.EMFModelPart;

@Pseudo
@Mixin(EMFModelPart.class)
public abstract class EMFModelPartMixin implements ModelPartInjector {

// spotless:off
//#if MC >= 12100
@Inject(method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;III)V", at = @At(value = "HEAD"), cancellable = true)
public void render(PoseStack poseStack, VertexConsumer vertexConsumer, int light, int overlay, int color,
CallbackInfo ci) {
if (isVisible() && getInjectedMesh() != null) {
poseStack.pushPose();
prepareTranslateAndRotate(poseStack);
getOffsetProvider().applyOffset(poseStack, getInjectedMesh());
getInjectedMesh().render(null, poseStack, vertexConsumer, light, overlay, color);
poseStack.popPose();
ci.cancel();
}
}
//#else
//$$ @Inject(method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;IIFFFF)V", at = @At(value = "HEAD"), cancellable = true)
//$$ public void render(PoseStack poseStack, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha,
//$$ CallbackInfo ci) {
//$$ if (isVisible() && getInjectedMesh() != null) {
//$$ poseStack.pushPose();
//$$ prepareTranslateAndRotate(poseStack);
//$$ getOffsetProvider().applyOffset(poseStack, getInjectedMesh());
//$$ getInjectedMesh().render(null, poseStack, vertexConsumer, light, overlay, red, green, blue, alpha);
//$$ poseStack.popPose();
//$$ ci.cancel();
//$$ }
//$$ }
//$$
//#endif
// spotless:on

}
//#else
//$$ @Mixin(net.minecraft.client.Minecraft.class)
//$$ public abstract class EMFModelPartMixin{} // DUMMY
//#endif
9 changes: 9 additions & 0 deletions src/main/java/dev/tr7zw/skinlayers/mixin/ModelPartMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,19 @@
import dev.tr7zw.skinlayers.accessor.ModelPartInjector;
import dev.tr7zw.skinlayers.api.Mesh;
import dev.tr7zw.skinlayers.api.OffsetProvider;
import lombok.Getter;
import net.minecraft.client.model.geom.ModelPart;

@Mixin(value = ModelPart.class, priority = 300)
public class ModelPartMixin implements ModelPartInjector {

@Shadow
@Getter
boolean visible;

@Getter
private Mesh injectedMesh = null;
@Getter
private OffsetProvider offsetProvider = null;

// spotless:off
Expand Down Expand Up @@ -65,4 +69,9 @@ public void translateAndRotate(PoseStack poseStack) {

}

@Override
public void prepareTranslateAndRotate(PoseStack poseStack) {
translateAndRotate(poseStack);
}

}
3 changes: 2 additions & 1 deletion src/main/resources/skinlayers3d.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
"BlockEntityWithoutLevelRendererMixin",
"CustomHeadLayerMixin",
"HttpTextureMixin",
"ModelPartMixin"
"ModelPartMixin",
"EMFModelPartMixin"
],
"injectors": {
"defaultRequire": 1
Expand Down
3 changes: 3 additions & 0 deletions versions/1.19.3-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.19.3-forge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.19.4-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.19.4-forge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.1-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:QoWmvvjv'
}
3 changes: 3 additions & 0 deletions versions/1.20.2-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.2-neoforge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.4-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.4-neoforge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.5-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.6-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.20.6-neoforge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:TkjKemrg'
}
3 changes: 3 additions & 0 deletions versions/1.21-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:cnCqWodo'
}
3 changes: 3 additions & 0 deletions versions/1.21-neoforge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:cnCqWodo'
}
3 changes: 3 additions & 0 deletions versions/1.21.3-fabric/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:cnCqWodo'
}
3 changes: 3 additions & 0 deletions versions/1.21.3-neoforge/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
modCompileOnlyApi 'maven.modrinth:entity-model-features:cnCqWodo'
}

0 comments on commit ff230ac

Please sign in to comment.