diff --git a/src/main/java/com/glisco/isometricrenders/mixin/HandledScreenMixin.java b/src/main/java/com/glisco/isometricrenders/mixin/HandledScreenMixin.java index 0462766..62728a3 100644 --- a/src/main/java/com/glisco/isometricrenders/mixin/HandledScreenMixin.java +++ b/src/main/java/com/glisco/isometricrenders/mixin/HandledScreenMixin.java @@ -15,12 +15,15 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(HandledScreen.class) -public class HandledScreenMixin extends Screen { +public abstract class HandledScreenMixin extends Screen { @Shadow @Final protected T handler; + @Shadow + public abstract void close(); + protected HandledScreenMixin(Text title) { super(title); } @@ -29,7 +32,9 @@ protected HandledScreenMixin(Text title) { public void renderInventory(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable cir) { if (keyCode != GLFW.GLFW_KEY_F12 || !Screen.hasControlDown()) return; + this.close(); client.setScreen(new SelectRenderTaskScreen(handler.slots.stream().map(Slot::getStack).filter(stack -> !stack.isEmpty()).toList())); + cir.setReturnValue(false); }