From 06562afaa5616b54a07595c20a9284ce3a55e56d Mon Sep 17 00:00:00 2001 From: isXander Date: Mon, 13 Feb 2023 22:12:13 +0000 Subject: [PATCH] more button guides --- .../ingame/guide/InGameButtonGuide.java | 22 ++++++++++++++++++- .../assets/controlify/lang/en_us.json | 4 ++++ src/main/resources/controlify.mixins.json | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/isxander/controlify/ingame/guide/InGameButtonGuide.java b/src/main/java/dev/isxander/controlify/ingame/guide/InGameButtonGuide.java index 3f892d3..a896173 100644 --- a/src/main/java/dev/isxander/controlify/ingame/guide/InGameButtonGuide.java +++ b/src/main/java/dev/isxander/controlify/ingame/guide/InGameButtonGuide.java @@ -35,7 +35,7 @@ public class InGameButtonGuide implements ButtonGuideRegistry { } public void renderHud(PoseStack poseStack, float tickDelta, int width, int height) { - if (!controller.config().showGuide || minecraft.screen != null) + if (!controller.config().showGuide || minecraft.screen != null || minecraft.options.renderDebug) return; { @@ -110,6 +110,7 @@ public class InGameButtonGuide implements ButtonGuideRegistry { } private void registerDefaultActions() { + var options = Minecraft.getInstance().options; registerGuideAction((client, player, level, hitResult, controller) -> { if (player.getAbilities().flying) return Optional.of(new GuideAction(controller.bindings().JUMP, Component.translatable("controlify.guide.fly_up"), ActionLocation.LEFT)); @@ -146,6 +147,20 @@ public class InGameButtonGuide implements ButtonGuideRegistry { } return Optional.empty(); }); + registerGuideAction((client, player, level, hitResult, controller) -> { + if (!options.keySprint.isDown()) { + if (!player.input.getMoveVector().equals(Vec2.ZERO)) { + if (player.isUnderWater()) + return Optional.of(new GuideAction(controller.bindings().SPRINT, Component.translatable("controlify.guide.start_swimming"), ActionLocation.LEFT)); + return Optional.of(new GuideAction(controller.bindings().SPRINT, Component.translatable("controlify.guide.start_sprinting"), ActionLocation.LEFT)); + } + } else if (controller.config().toggleSprint) { + if (player.isUnderWater()) + return Optional.of(new GuideAction(controller.bindings().SPRINT, Component.translatable("controlify.guide.stop_swimming"), ActionLocation.LEFT)); + return Optional.of(new GuideAction(controller.bindings().SPRINT, Component.translatable("controlify.guide.stop_sprinting"), ActionLocation.LEFT)); + } + return Optional.empty(); + }); registerGuideAction((client, player, level, hitResult, controller) -> { if (client.screen == null) return Optional.of(new GuideAction(controller.bindings().INVENTORY, Component.translatable("controlify.guide.inventory"), ActionLocation.RIGHT)); @@ -170,6 +185,11 @@ public class InGameButtonGuide implements ButtonGuideRegistry { return Optional.of(new GuideAction(controller.bindings().DROP, Component.translatable("controlify.guide.drop"), ActionLocation.RIGHT)); return Optional.empty(); }); + registerGuideAction((client, player, level, hitResult, controller) -> { + if (player.hasItemInSlot(EquipmentSlot.MAINHAND) || player.hasItemInSlot(EquipmentSlot.OFFHAND)) + return Optional.of(new GuideAction(controller.bindings().SWAP_HANDS, Component.translatable("controlify.guide.swap_hands"), ActionLocation.RIGHT)); + return Optional.empty(); + }); registerGuideAction((client, player, level, hitResult, controller) -> { if (hitResult.getType() == HitResult.Type.BLOCK && player.isCreative()) return Optional.of(new GuideAction(controller.bindings().PICK_BLOCK, Component.translatable("controlify.guide.pick_block"), ActionLocation.RIGHT)); diff --git a/src/main/resources/assets/controlify/lang/en_us.json b/src/main/resources/assets/controlify/lang/en_us.json index 7b82ec1..7acae61 100644 --- a/src/main/resources/assets/controlify/lang/en_us.json +++ b/src/main/resources/assets/controlify/lang/en_us.json @@ -108,6 +108,10 @@ "controlify.guide.fly_down": "Fly Down", "controlify.guide.start_sneaking": "Start Sneaking", "controlify.guide.stop_sneaking": "Stop Sneaking", + "controlify.guide.start_swimming": "Start Swimming", + "controlify.guide.start_sprinting": "Start Sprinting", + "controlify.guide.stop_swimming": "Stop Swimming", + "controlify.guide.stop_sprinting": "Stop Sprinting", "controlify.guide.sneak": "Sneak", "controlify.guide.dismount": "Dismount", "controlify.guide.swim_down": "Swim Down", diff --git a/src/main/resources/controlify.mixins.json b/src/main/resources/controlify.mixins.json index d891168..3d9c581 100644 --- a/src/main/resources/controlify.mixins.json +++ b/src/main/resources/controlify.mixins.json @@ -10,6 +10,7 @@ "core.KeyboardHandlerMixin", "core.MinecraftMixin", "core.MouseHandlerMixin", + "feature.accessibility.LocalPlayerMixin", "feature.bind.KeyMappingAccessor", "feature.guide.ClientPacketListenerMixin", "feature.guide.GuiMixin",