Skip to content

Commit

Permalink
Fix Sandwichable 1.2+
Browse files Browse the repository at this point in the history
  • Loading branch information
Chocohead committed Aug 31, 2022
1 parent 7426936 commit a4d7cfb
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 4 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ loader_version=0.12.5
fabric_version=0.42.0+1.16
fabric_asm_version=v2.3

mod_version = 1.13.13
mod_version = 1.13.14
maven_group = me.modmuss50
archives_base_name = optifabric
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
public class SandwichableMixinPlugin extends InterceptingMixinPlugin {
@Override
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
if (mixinInfo.getName().endsWith("BuiltinModelItemRendererMixin")) {//ItemBlock, getBlock, ()Block
switch (mixinInfo.getName()) {
case "old.BuiltinModelItemRendererMixin":
case "BuiltinModelItemRendererMixin":
case "BuiltinModelItemRendererNewMixin": {//ItemBlock, getBlock, ()Block
Member getBlock = RemappingUtils.mapMethod("class_1747", "method_7711", "()Lnet/minecraft/class_2248;");
//BuiltinModelItemRenderer, render, (ItemStack, ModelTransformation$Mode, MatrixStack, VertexConsumerProvider)
String render = RemappingUtils.getMethodName("class_756", "method_3166",
Expand All @@ -39,6 +42,8 @@ public void preApply(String targetClassName, ClassNode targetClass, String mixin
method.instructions.insertBefore(method.instructions.getLast(), extra);
}
}
break;
}
}

super.preApply(targetClassName, targetClass, mixinClassName, mixinInfo);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package me.modmuss50.optifabric.compat.sandwichable.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.item.BuiltinModelItemRenderer;
import net.minecraft.client.render.model.json.ModelTransformation.Mode;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;

import me.modmuss50.optifabric.compat.InterceptingMixin;
import me.modmuss50.optifabric.compat.Shim;

@Mixin(BuiltinModelItemRenderer.class)
@InterceptingMixin("io/github/foundationgames/sandwichable/mixin/BuiltinModelItemRendererMixin")
abstract class BuiltinModelItemRendererNewMixin {
@Shim
private native void sandwichable$renderSandwichGui(ItemStack stack, Mode mode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, CallbackInfo call);

@Inject(method = "renderRaw", remap = false,
at = @At(value = "INVOKE", target = "Lnet/minecraft/item/BlockItem;getBlock()Lnet/minecraft/block/Block;", shift = At.Shift.AFTER, remap = true))
private void sandwich_render(ItemStack stack, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, CallbackInfo call) {
sandwichable$renderSandwichGui(stack, Mode.GROUND, matrices, vertexConsumers, light, overlay, call);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -288,10 +288,12 @@ protected boolean isPresent() {
Mixins.addConfiguration("optifabric.compat.staffofbuilding.mixins.json");
}

if (isPresent("sandwichable", ">=1.2-alpha1")) {
if (isPresent("sandwichable", "<=1.2-rc4 >=1.2-alpha1")) {
Mixins.addConfiguration("optifabric.compat.sandwichable.mixins.json");
} else if (isPresent("sandwichable")) {
} else if (isPresent("sandwichable", "<1.2-alpha1")) {
Mixins.addConfiguration("optifabric.compat.sandwichable-old.mixins.json");
} else {//1.3.a isn't SemVer, so won't hit either case above anyway
Mixins.addConfiguration("optifabric.compat.sandwichable.new-mixins.json");
}

if (isPresent("astromine", "<1.6")) {//Only needed for the 1.16.1 versions
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"parent": "optifabric.mixins.json",
"package": "me.modmuss50.optifabric.compat.sandwichable.mixin",
"plugin": "me.modmuss50.optifabric.compat.sandwichable.SandwichableMixinPlugin",
"mixins": [
"BuiltinModelItemRendererNewMixin"
]
}

0 comments on commit a4d7cfb

Please sign in to comment.