From 38229bc8271f19db77092a11d54ab66e23d8143c Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Thu, 27 Mar 2025 16:10:03 +0100 Subject: [PATCH] port: Spring to Life (1.21.5) - Still waiting for ObsidianUI to get the settings screen working. Guess I'm gonna have to port that myself again. --- build.gradle | 2 +- .../client/MidnightControlsConfig.java | 4 ++-- .../midnightcontrols/client/MidnightInput.java | 8 ++++---- .../client/controller/InputHandlers.java | 4 ++-- .../client/controller/InputManager.java | 4 ++-- .../client/controller/MovementHandler.java | 6 ++++-- .../client/gui/MidnightControlsHud.java | 2 +- .../client/gui/MidnightControlsRenderer.java | 6 ++++-- .../client/gui/MidnightControlsSettingsScreen.java | 7 ++++--- .../client/mixin/GameRendererMixin.java | 4 ++-- .../midnightcontrols/client/mixin/InputAccessor.java | 12 ++++++++++++ .../client/mixin/MinecraftClientMixin.java | 4 ++-- .../midnightcontrols/client/mixin/MouseMixin.java | 2 +- .../midnightcontrols/client/touch/TouchInput.java | 2 +- .../client/touch/gui/ItemUseButtonWidget.java | 4 ++-- .../client/touch/gui/TouchscreenOverlay.java | 4 ++-- .../midnightcontrols/client/util/InventoryUtil.java | 2 +- .../src/main/resources/midnightcontrols.mixins.json | 1 + gradle.properties | 12 ++++++------ gradle/wrapper/gradle-wrapper.properties | 2 +- 20 files changed, 55 insertions(+), 37 deletions(-) create mode 100644 common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/InputAccessor.java diff --git a/build.gradle b/build.gradle index ed2e9c5..bd84864 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false id "me.shedaniel.unified-publishing" version "0.1.+" apply false id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java index 894cff2..95319b7 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java @@ -11,7 +11,7 @@ package eu.midnightdust.midnightcontrols.client; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.mojang.blaze3d.platform.GlDebugInfo; +import com.mojang.blaze3d.platform.GLX; import eu.midnightdust.lib.config.MidnightConfig; import eu.midnightdust.midnightcontrols.ControlsMode; import eu.midnightdust.midnightcontrols.MidnightControls; @@ -400,7 +400,7 @@ public class MidnightControlsConfig extends MidnightConfig { String controller = getController().getName().toLowerCase(); if (controller.contains("xbox 360")) return ControllerType.XBOX_360; else if (controller.contains("xbox") || controller.contains("afterglow")) return ControllerType.XBOX; - else if (controller.contains("steam") && GlDebugInfo.getCpuInfo().contains("AMD Custom APU")) return ControllerType.STEAM_DECK; + else if (controller.contains("steam") && GLX._getCpuInfo().contains("AMD Custom APU")) return ControllerType.STEAM_DECK; else if (controller.contains("steam")) return ControllerType.STEAM_CONTROLLER; else if (controller.contains("dualsense") || controller.contains("ps5")) return ControllerType.DUALSENSE; else if (controller.contains("dualshock") || controller.contains("ps4") || controller.contains("sony")) return ControllerType.DUALSHOCK; diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java index fa91056..7ef79b5 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java @@ -214,10 +214,10 @@ public class MidnightInput { return; if (this.targetYaw != 0.f || this.targetPitch != 0.f) { - float rotationYaw = (float) (client.player.prevYaw + (this.targetYaw * 0.175)); - float rotationPitch = (float) (client.player.prevPitch + (this.targetPitch * 0.175)); - client.player.prevYaw = rotationYaw; - client.player.prevPitch = MathHelper.clamp(rotationPitch, -90.f, 90.f); + float rotationYaw = (float) (client.player.lastYaw + (this.targetYaw * 0.175)); + float rotationPitch = (float) (client.player.lastPitch + (this.targetPitch * 0.175)); + client.player.lastYaw = rotationYaw; + client.player.lastPitch = MathHelper.clamp(rotationPitch, -90.f, 90.f); client.player.setYaw(rotationYaw); client.player.setPitch(MathHelper.clamp(rotationPitch, -90.f, 90.f)); if (client.player.isRiding() && client.player.getVehicle() != null) { diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java index 2e81b4c..d5b3398 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java @@ -62,9 +62,9 @@ public class InputHandlers { if (!client.player.isSpectator()) { var inv = client.player.getInventory(); if (next) - inv.setSelectedSlot(inv.selectedSlot < 8 ? inv.selectedSlot + 1 : inv.selectedSlot - 8); + inv.setSelectedSlot(inv.getSelectedSlot() < 8 ? inv.getSelectedSlot() + 1 : inv.getSelectedSlot() - 8); else - inv.setSelectedSlot(inv.selectedSlot > 0 ? inv.selectedSlot - 1 : inv.selectedSlot + 8); + inv.setSelectedSlot(inv.getSelectedSlot() > 0 ? inv.getSelectedSlot() - 1 : inv.getSelectedSlot() + 8); } else { if (client.inGameHud.getSpectatorHud().isOpen()) { diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java index 65a063d..b3fe085 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java @@ -76,8 +76,8 @@ public class InputManager { public void updateMousePosition(@NotNull MinecraftClient client) { Objects.requireNonNull(client, "Client instance cannot be null."); if (this.prevTargetMouseX != this.targetMouseX || this.prevTargetMouseY != this.targetMouseY) { - double mouseX = this.prevTargetMouseX + (this.targetMouseX - this.prevTargetMouseX) * client.getRenderTickCounter().getTickDelta(true) + 0.5; - double mouseY = this.prevTargetMouseY + (this.targetMouseY - this.prevTargetMouseY) * client.getRenderTickCounter().getTickDelta(true) + 0.5; + double mouseX = this.prevTargetMouseX + (this.targetMouseX - this.prevTargetMouseX) * client.getRenderTickCounter().getTickProgress(true) + 0.5; + double mouseY = this.prevTargetMouseY + (this.targetMouseY - this.prevTargetMouseY) * client.getRenderTickCounter().getTickProgress(true) + 0.5; if (!MidnightControlsConfig.virtualMouse) GLFW.glfwSetCursorPos(client.getWindow().getHandle(), mouseX, mouseY); ((MouseAccessor) client.mouse).midnightcontrols$onCursorPos(client.getWindow().getHandle(), mouseX, mouseY); diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/MovementHandler.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/MovementHandler.java index 7408b3d..91f4bf0 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/MovementHandler.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/controller/MovementHandler.java @@ -11,12 +11,14 @@ package eu.midnightdust.midnightcontrols.client.controller; import eu.midnightdust.midnightcontrols.client.enums.ButtonState; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; +import eu.midnightdust.midnightcontrols.client.mixin.InputAccessor; import eu.midnightdust.midnightcontrols.client.util.MathUtil; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.util.PlayerInput; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec2f; import org.jetbrains.annotations.NotNull; /** @@ -53,8 +55,8 @@ public final class MovementHandler implements PressAction { player.input.playerInput.jump(), player.input.playerInput.sneak(), player.input.playerInput.sprint()); polarUtil.calculate(this.movementSideways, this.movementForward, this.slowdownFactor); - player.input.movementForward = polarUtil.polarY; - player.input.movementSideways = polarUtil.polarX; + Vec2f inputVector = new Vec2f(polarUtil.polarX, polarUtil.polarY); + ((InputAccessor)player.input).setMovementVector(inputVector); this.shouldOverrideMovement = false; } diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java index a6ad812..91ef9a7 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsHud.java @@ -98,7 +98,7 @@ public class MidnightControlsHud extends Hud { var window = this.client.getWindow(); var text = "[ ]"; - float scale = Math.min(5, this.ticksDisplayedCrosshair + tickCounter.getTickDelta(true)) / 5F; + float scale = Math.min(5, this.ticksDisplayedCrosshair + tickCounter.getTickProgress(true)) / 5F; scale *= scale; int opacity = ((int) (255 * scale)) << 24; diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsRenderer.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsRenderer.java index 9cb5a96..9baa493 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsRenderer.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsRenderer.java @@ -9,6 +9,8 @@ package eu.midnightdust.midnightcontrols.client.gui; +import com.mojang.blaze3d.opengl.GlStateManager; +import com.mojang.blaze3d.platform.GLX; import com.mojang.blaze3d.systems.RenderSystem; import eu.midnightdust.midnightcontrols.ControlsMode; import eu.midnightdust.midnightcontrols.client.enums.ControllerType; @@ -169,7 +171,7 @@ public class MidnightControlsRenderer { case GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 100, GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 200 -> buttonOffset = 10 * 15; } - RenderSystem.disableDepthTest(); + GlStateManager._disableDepthTest(); int assetSize = axis || (button >= 15 && button <= 18) ? AXIS_SIZE : BUTTON_SIZE; @@ -179,7 +181,7 @@ public class MidnightControlsRenderer { (float) buttonOffset, (float) (controllerType * assetSize), assetSize, assetSize, 256, 256); - RenderSystem.enableDepthTest(); + GlStateManager._enableDepthTest(); return ICON_SIZE; } diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsSettingsScreen.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsSettingsScreen.java index 3df0cff..a07a20e 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsSettingsScreen.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/gui/MidnightControlsSettingsScreen.java @@ -9,6 +9,7 @@ package eu.midnightdust.midnightcontrols.client.gui; +import com.mojang.blaze3d.opengl.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import eu.midnightdust.midnightcontrols.MidnightControlsConstants; import eu.midnightdust.midnightcontrols.client.MidnightControlsClient; @@ -512,13 +513,13 @@ public class MidnightControlsSettingsScreen extends SpruceScreen { float g = (float)(color.getGreen()) / 255.0F; float b = (float)(color.getBlue()) / 255.0F; float t = (float)(transparency) / 255.0F; - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); + GlStateManager._enableBlend(); + //GlStateManager._defaultBlendFunc(); vertexConsumer.vertex((float)x1, (float)y2, 0.0F).color(r, g, b, t); vertexConsumer.vertex((float)x2, (float)y2, 0.0F).color(r, g, b, t); vertexConsumer.vertex((float)x2, (float)y1, 0.0F).color(r, g, b, t); vertexConsumer.vertex((float)x1, (float)y1, 0.0F).color(r, g, b, t); - RenderSystem.disableBlend(); + GlStateManager._disableBlend(); context.draw(); } } diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameRendererMixin.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameRendererMixin.java index 2d47dda..af4e086 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameRendererMixin.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameRendererMixin.java @@ -30,9 +30,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(GameRenderer.class) public abstract class GameRendererMixin { - @Shadow @Final MinecraftClient client; + @Shadow @Final private MinecraftClient client; - @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Mouse;getX()D", shift = At.Shift.BEFORE)) + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Mouse;getScaledX(Lnet/minecraft/client/util/Window;)D", shift = At.Shift.BEFORE)) private void midnightcontrols$onRender(RenderTickCounter tickCounter, boolean tick, CallbackInfo ci) { if (this.client.currentScreen != null && MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER) MidnightControlsClient.input.onPreRenderScreen(this.client.currentScreen); diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/InputAccessor.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/InputAccessor.java new file mode 100644 index 0000000..aff3b34 --- /dev/null +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/InputAccessor.java @@ -0,0 +1,12 @@ +package eu.midnightdust.midnightcontrols.client.mixin; + +import net.minecraft.client.input.Input; +import net.minecraft.util.math.Vec2f; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(Input.class) +public interface InputAccessor { + @Accessor + void setMovementVector(Vec2f input); +} diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MinecraftClientMixin.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MinecraftClientMixin.java index 10e21a6..d4f8d8b 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MinecraftClientMixin.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MinecraftClientMixin.java @@ -81,7 +81,7 @@ public abstract class MinecraftClientMixin { var side = hitResult.getSide(); boolean sidewaysBlockPlacing = this.midnightcontrols$lastTargetPos == null || !targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide)); - boolean backwardsBlockPlacing = this.player.input.movementForward < 0.0f && (this.midnightcontrols$lastTargetPos == null || targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide))); + boolean backwardsBlockPlacing = this.player.input.getMovementInput().y < 0.0f && (this.midnightcontrols$lastTargetPos == null || targetPos.equals(this.midnightcontrols$lastTargetPos.offset(this.midnightcontrols$lastTargetSide))); if (cooldown > 1 && !targetPos.equals(this.midnightcontrols$lastTargetPos) @@ -129,7 +129,7 @@ public abstract class MinecraftClientMixin { if (result.isAccepted()) { //if (result.shouldSwingHand()) { this.player.swingHand(hand); - if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || this.interactionManager.hasCreativeInventory())) { + if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || this.player.isInCreativeMode())) { this.gameRenderer.firstPersonRenderer.resetEquipProgress(hand); } //} diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java index 3c47ef5..cff8cfc 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java @@ -77,7 +77,7 @@ public abstract class MouseMixin implements MouseAccessor { for (int slot = 0; slot < 9; ++slot) { int slotX = centerX - 90 + slot * 20 + 2; if (mouseX >= (double) slotX && mouseX <= (double) (slotX + 20)) { - client.player.getInventory().selectedSlot = slot; + client.player.getInventory().setSelectedSlot(slot); ci.cancel(); return; } diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/TouchInput.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/TouchInput.java index 8022745..c2edfd7 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/TouchInput.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/TouchInput.java @@ -87,7 +87,7 @@ public class TouchInput { if (interaction.isAccepted()) { //if (interaction.shouldSwingHand()) { client.player.swingHand(client.player.preferredHand); - if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || client.interactionManager.hasCreativeInventory())) { + if (!stackInHand.isEmpty() && (stackInHand.getCount() != previousStackCount || client.player.isInCreativeMode())) { client.gameRenderer.firstPersonRenderer.resetEquipProgress(client.player.preferredHand); } //} diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/ItemUseButtonWidget.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/ItemUseButtonWidget.java index 9909be5..788af2b 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/ItemUseButtonWidget.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/ItemUseButtonWidget.java @@ -1,11 +1,11 @@ package eu.midnightdust.midnightcontrols.client.touch.gui; +import net.minecraft.component.DataComponentTypes; import net.minecraft.item.consume.UseAction; import org.thinkingstudio.obsidianui.Position; import org.thinkingstudio.obsidianui.widget.SpruceButtonWidget; import eu.midnightdust.midnightcontrols.MidnightControlsConstants; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; -import net.minecraft.item.ArmorItem; import net.minecraft.text.Text; public class ItemUseButtonWidget extends SpruceButtonWidget { @@ -30,7 +30,7 @@ public class ItemUseButtonWidget extends SpruceButtonWidget { this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.eat")); } else if (action == UseAction.DRINK) { this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.drink")); - } else if (client.player.getMainHandStack().getItem() instanceof ArmorItem) { + } else if (client.player.getMainHandStack().getComponents().contains(DataComponentTypes.EQUIPPABLE)) { this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.equip")); } else if (!action.equals(UseAction.NONE)) { this.setMessage(Text.translatable(MidnightControlsConstants.NAMESPACE+".action.use")); diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/TouchscreenOverlay.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/TouchscreenOverlay.java index d658534..4101634 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/TouchscreenOverlay.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/touch/gui/TouchscreenOverlay.java @@ -14,7 +14,7 @@ import eu.midnightdust.midnightcontrols.client.util.storage.AxisStorage; import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.GameMenuScreen; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.item.ArmorItem; +import net.minecraft.component.DataComponentTypes; import net.minecraft.item.consume.UseAction; import net.minecraft.util.Arm; import net.minecraft.util.Hand; @@ -340,7 +340,7 @@ public class TouchscreenOverlay extends Screen { this.forwardLeftButton.setVisible(false); this.forwardRightButton.setVisible(false); } - this.useButton.setVisible(client.player.getMainHandStack() != null && (client.player.getMainHandStack().getUseAction() != UseAction.NONE || client.player.getMainHandStack().getItem() instanceof ArmorItem) && !TouchUtils.hasInWorldUseAction(client.player.getMainHandStack())); + this.useButton.setVisible(client.player.getMainHandStack() != null && (client.player.getMainHandStack().getUseAction() != UseAction.NONE || client.player.getMainHandStack().getComponents().contains(DataComponentTypes.EQUIPPABLE)) && !TouchUtils.hasInWorldUseAction(client.player.getMainHandStack())); this.updateJumpButtons(); } diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/util/InventoryUtil.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/util/InventoryUtil.java index fee4709..3681068 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/util/InventoryUtil.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/util/InventoryUtil.java @@ -91,7 +91,7 @@ public class InventoryUtil { if (closestSlot.isPresent() && client.player != null) { var slot = closestSlot.get().getLeft(); - if (slot.hasStack() || !client.player.getInventory().getMainHandStack().isEmpty()) { + if (slot.hasStack() || !client.player.getInventory().getSelectedStack().isEmpty()) { int slotCenterXScaled = guiLeft + slot.x + 8; int slotCenterYScaled = guiTop + slot.y + 8; int slotCenterX = (int) (slotCenterXScaled / ((double) client.getWindow().getScaledWidth() / (double) client.getWindow().getWidth())); diff --git a/common/src/main/resources/midnightcontrols.mixins.json b/common/src/main/resources/midnightcontrols.mixins.json index b00371b..c42bcc5 100644 --- a/common/src/main/resources/midnightcontrols.mixins.json +++ b/common/src/main/resources/midnightcontrols.mixins.json @@ -12,6 +12,7 @@ "GameOptionsScreenMixin", "GameRendererMixin", "HandledScreenMixin", + "InputAccessor", "InputUtilMixin", "KeyBindingIDAccessor", "KeyBindingMixin", diff --git a/gradle.properties b/gradle.properties index 2f3c513..0405d7f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,9 +2,9 @@ org.gradle.parallel=true org.gradle.jvmargs=-Xmx2048M -minecraft_version=1.21.4 +minecraft_version=1.21.5 supported_versions= -yarn_mappings=1.21.4+build.1 +yarn_mappings=1.21.5+build.1 enabled_platforms=fabric,neoforge archives_base_name=midnightcontrols @@ -15,12 +15,12 @@ modrinth_id = bXX9h73M curseforge_id = 621768 # Configure the IDs here after creating the projects on the websites -midnightlib_version=1.6.8+1.21.4 +midnightlib_version=1.6.10+1.21.4 -fabric_loader_version=0.16.9 -fabric_api_version=0.110.5+1.21.4 +fabric_loader_version=0.16.10 +fabric_api_version=0.119.5+1.21.5 -neoforge_version=21.4.9-beta +neoforge_version=21.5.2-beta yarn_mappings_patch_neoforge_version = 1.21+build.4 quilt_loader_version=0.19.0-beta.18 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09523c0..37f853b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME