Compare commits

..

11 Commits
v1.5.0 ... 1.18

Author SHA1 Message Date
Martin Prokoph
3a70ab1961 Merge pull request #87 from spudpiggy/patch-1
fix some assets
2022-09-20 14:26:24 +00:00
spudpiggy
1722c2ccaa fix en lang file + fix packs 2022-08-10 12:27:00 +01:00
spudpiggy
46dafc3e71 Reword description of bedrock resource pack 2022-08-10 12:19:33 +01:00
Motschen
99298b2bc4 Fix 1.18 2022-08-03 12:42:23 +02:00
Martin Prokoph
070083ab6e Merge pull request #82 from TeamMidnightDust/1.18-temp
Backport 1.5.0 to 1.18
2022-08-03 10:25:51 +00:00
Martin Prokoph
4d74892e53 Merge branch '1.18' into 1.18-temp 2022-08-03 10:25:21 +00:00
Motschen
e8cfee7de5 Clearly differenciate the 1.18 version 2022-07-06 14:24:44 +02:00
Martin Prokoph
06c589e7f8 Merge pull request #63 from TeamMidnightDust/1.19
Backport MidnightControls 1.4.1 to 1.18.2
2022-07-06 12:22:42 +00:00
Motschen
a71dcb9765 Update gradle.properties 2022-07-06 14:21:45 +02:00
Motschen
281b266b18 Backport 1.4.0 to 1.18
Will release this tomorrow, it's pretty late for me now.
2022-07-05 22:06:12 +02:00
Martin Prokoph
8d4f8822d3 Merge pull request #60 from TeamMidnightDust/1.19
Bring all recent changes and additions to 1.18
2022-07-05 19:41:42 +00:00
32 changed files with 224 additions and 203 deletions

View File

@@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.19 minecraft_version=1.18.2
yarn_mappings=1.19+build.1 yarn_mappings=1.18.2+build.3
loader_version=0.14.7 loader_version=0.14.8
# Mod Properties # Mod Properties
mod_version = 1.5.0 mod_version = 1.5.0
@@ -15,15 +15,15 @@ modrinth_id=bXX9h73M
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.55.2+1.19 fabric_version=0.57.0+1.18.2
sodium_version=mc1.19-0.4.2 sodium_version=mc1.18.2-0.4.1
spruceui_version=4.0.0+1.19 spruceui_version=3.3.2+1.17
midnightlib_version=0.5.2 midnightlib_version=0.4.4
modmenu_version=4.0.0 modmenu_version=2.0.2
emotecraft_version=2.1.3-SNAPSHOT-build.29-MC1.19-fabric emotecraft_version=2.1-MC1.18.1-fabric
bendylib_version=2.0.+ bendylib_version=2.0.+
emi_version=0.2.0+1.19 libgui_version=5.4.2+1.18.2
libgui_version=6.0.0+1.19 emi_version=0.2.0+1.18.2
# Ok Zoomer and LibZoomer are temporarily disabled for the time being, as we are currently using Reflection at runtime instead in OkZoomerCompat due to there being two major, completely incompatible API versions. # Ok Zoomer and LibZoomer are temporarily disabled for the time being, as we are currently using Reflection at runtime instead in OkZoomerCompat due to there being two major, completely incompatible API versions.
# ok_zoomer_version=5.0.0-beta.3+1.17.1 # ok_zoomer_version=5.0.0-beta.3+1.17.1

View File

@@ -10,6 +10,7 @@
package eu.midnightdust.midnightcontrols.client; package eu.midnightdust.midnightcontrols.client;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.Nameable; import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -39,7 +40,7 @@ public enum ControllerType implements Nameable {
ControllerType(int id) { ControllerType(int id) {
this.id = id; this.id = id;
this.text = Text.translatable("midnightcontrols.controller_type." + this.getName()); this.text = new TranslatableText("midnightcontrols.controller_type." + this.getName());
} }
ControllerType(int id, @NotNull Text text) { ControllerType(int id, @NotNull Text text) {

View File

@@ -10,6 +10,7 @@
package eu.midnightdust.midnightcontrols.client; package eu.midnightdust.midnightcontrols.client;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.Nameable; import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -30,7 +31,7 @@ public enum HudSide implements Nameable {
private final Text text; private final Text text;
HudSide() { HudSide() {
this.text = Text.translatable(this.getTranslationKey()); this.text = new TranslatableText(this.getTranslationKey());
} }
/** /**

View File

@@ -38,7 +38,9 @@ import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.option.KeyBinding; import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.toast.SystemToast; import net.minecraft.client.toast.SystemToast;
import net.minecraft.client.util.InputUtil; import net.minecraft.client.util.InputUtil;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
@@ -136,10 +138,10 @@ public class MidnightControlsClient extends MidnightControls implements ClientMo
GLFW.glfwSetJoystickCallback((jid, event) -> { GLFW.glfwSetJoystickCallback((jid, event) -> {
if (event == GLFW.GLFW_CONNECTED) { if (event == GLFW.GLFW_CONNECTED) {
var controller = Controller.byId(jid); var controller = Controller.byId(jid);
client.getToastManager().add(new SystemToast(SystemToast.Type.TUTORIAL_HINT, Text.translatable("midnightcontrols.controller.connected", jid), client.getToastManager().add(new SystemToast(SystemToast.Type.TUTORIAL_HINT, new TranslatableText("midnightcontrols.controller.connected", jid),
Text.literal(controller.getName()))); new LiteralText(controller.getName())));
} else if (event == GLFW.GLFW_DISCONNECTED) { } else if (event == GLFW.GLFW_DISCONNECTED) {
client.getToastManager().add(new SystemToast(SystemToast.Type.TUTORIAL_HINT, Text.translatable("midnightcontrols.controller.disconnected", jid), client.getToastManager().add(new SystemToast(SystemToast.Type.TUTORIAL_HINT, new TranslatableText("midnightcontrols.controller.disconnected", jid),
null)); null));
} }
@@ -193,9 +195,9 @@ public class MidnightControlsClient extends MidnightControls implements ClientMo
// client.setScreen(new RingScreen()); // client.setScreen(new RingScreen());
// } // }
if (client.world != null && MidnightControlsConfig.enableHints && !MidnightControlsConfig.autoSwitchMode && MidnightControlsConfig.controlsMode == ControlsMode.DEFAULT && MidnightControlsConfig.getController().isGamepad()) { if (client.world != null && MidnightControlsConfig.enableHints && !MidnightControlsConfig.autoSwitchMode && MidnightControlsConfig.controlsMode == ControlsMode.DEFAULT && MidnightControlsConfig.getController().isGamepad()) {
client.getToastManager().add(SystemToast.create(client, SystemToast.Type.PERIODIC_NOTIFICATION, Text.translatable("midnightcontrols.controller.tutorial.title"), client.getToastManager().add(SystemToast.create(client, SystemToast.Type.PERIODIC_NOTIFICATION, new TranslatableText("midnightcontrols.controller.tutorial.title"),
Text.translatable("midnightcontrols.controller.tutorial.description", Text.translatable("options.title"), Text.translatable("controls.title"), new TranslatableText("midnightcontrols.controller.tutorial.description", new TranslatableText("options.title"), new TranslatableText("controls.title"),
Text.translatable("midnightcontrols.menu.title.controller")))); new TranslatableText("midnightcontrols.menu.title.controller"))));
MidnightControlsConfig.enableHints = false; MidnightControlsConfig.enableHints = false;
MidnightControlsConfig.save(); MidnightControlsConfig.save();
} }

View File

@@ -348,9 +348,9 @@ public class MidnightInput {
var set = ImmutableSet.of("gui.back", "gui.done", "gui.cancel", "gui.toTitle", "gui.toMenu"); var set = ImmutableSet.of("gui.back", "gui.done", "gui.cancel", "gui.toTitle", "gui.toMenu");
return screen.children().stream().filter(element -> element instanceof PressableWidget) return screen.children().stream().filter(element -> element instanceof PressableWidget)
.map(element -> (PressableWidget) element) .map(element -> (PressableWidget) element)
.filter(element -> element.getMessage() != null && element.getMessage().getContent() != null) .filter(element -> element.getMessage() != null)
.anyMatch(element -> { .anyMatch(element -> {
if (set.stream().anyMatch(key -> element.getMessage().getContent().toString().equals(key))) { if (set.stream().anyMatch(key -> element.getMessage().toString().equals(key))) {
element.onPress(); element.onPress();
return true; return true;
} }
@@ -571,7 +571,7 @@ public class MidnightInput {
labelWidget.onPress(); labelWidget.onPress();
return true; return true;
} else if (focused instanceof WorldListWidget list) { } else if (focused instanceof WorldListWidget list) {
list.getSelectedAsOptional().ifPresent(WorldListWidget.WorldEntry::play); list.getSelectedAsOptional().ifPresent(WorldListWidget.Entry::play);
return true; return true;
} else if (focused instanceof MultiplayerServerListWidget list) { } else if (focused instanceof MultiplayerServerListWidget list) {
var entry = list.getSelectedOrNull(); var entry = list.getSelectedOrNull();

View File

@@ -10,6 +10,7 @@
package eu.midnightdust.midnightcontrols.client; package eu.midnightdust.midnightcontrols.client;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.Nameable; import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -33,7 +34,7 @@ public enum VirtualMouseSkin implements Nameable {
VirtualMouseSkin(String name) { VirtualMouseSkin(String name) {
this.name = name; this.name = name;
this.text = Text.translatable(this.getTranslationKey()); this.text = new TranslatableText(this.getTranslationKey());
} }
/** /**

View File

@@ -15,6 +15,7 @@ import net.minecraft.client.option.GameOptions;
import net.minecraft.client.option.KeyBinding; import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import org.aperlambda.lambdacommon.utils.function.PairPredicate; import org.aperlambda.lambdacommon.utils.function.PairPredicate;
import org.aperlambda.lambdacommon.utils.function.Predicates; import org.aperlambda.lambdacommon.utils.function.Predicates;
@@ -109,7 +110,7 @@ public class ButtonBinding {
public ButtonBinding(String key, int[] defaultButton, List<PressAction> actions, PairPredicate<MinecraftClient, ButtonBinding> filter, boolean hasCooldown) { public ButtonBinding(String key, int[] defaultButton, List<PressAction> actions, PairPredicate<MinecraftClient, ButtonBinding> filter, boolean hasCooldown) {
this.setButton(this.defaultButton = defaultButton); this.setButton(this.defaultButton = defaultButton);
this.key = key; this.key = key;
this.text = Text.translatable(this.key); this.text = new TranslatableText(this.key);
this.filter = filter; this.filter = filter;
this.actions.addAll(actions); this.actions.addAll(actions);
this.hasCooldown = hasCooldown; this.hasCooldown = hasCooldown;
@@ -336,37 +337,37 @@ public class ButtonBinding {
*/ */
public static @NotNull Text getLocalizedButtonName(int button) { public static @NotNull Text getLocalizedButtonName(int button) {
return switch (button % 500) { return switch (button % 500) {
case -1 -> Text.translatable("key.keyboard.unknown"); case -1 -> new TranslatableText("key.keyboard.unknown");
case GLFW_GAMEPAD_BUTTON_A -> Text.translatable("midnightcontrols.button.a"); case GLFW_GAMEPAD_BUTTON_A -> new TranslatableText("midnightcontrols.button.a");
case GLFW_GAMEPAD_BUTTON_B -> Text.translatable("midnightcontrols.button.b"); case GLFW_GAMEPAD_BUTTON_B -> new TranslatableText("midnightcontrols.button.b");
case GLFW_GAMEPAD_BUTTON_X -> Text.translatable("midnightcontrols.button.x"); case GLFW_GAMEPAD_BUTTON_X -> new TranslatableText("midnightcontrols.button.x");
case GLFW_GAMEPAD_BUTTON_Y -> Text.translatable("midnightcontrols.button.y"); case GLFW_GAMEPAD_BUTTON_Y -> new TranslatableText("midnightcontrols.button.y");
case GLFW_GAMEPAD_BUTTON_LEFT_BUMPER -> Text.translatable("midnightcontrols.button.left_bumper"); case GLFW_GAMEPAD_BUTTON_LEFT_BUMPER -> new TranslatableText("midnightcontrols.button.left_bumper");
case GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER -> Text.translatable("midnightcontrols.button.right_bumper"); case GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER -> new TranslatableText("midnightcontrols.button.right_bumper");
case GLFW_GAMEPAD_BUTTON_BACK -> Text.translatable("midnightcontrols.button.back"); case GLFW_GAMEPAD_BUTTON_BACK -> new TranslatableText("midnightcontrols.button.back");
case GLFW_GAMEPAD_BUTTON_START -> Text.translatable("midnightcontrols.button.start"); case GLFW_GAMEPAD_BUTTON_START -> new TranslatableText("midnightcontrols.button.start");
case GLFW_GAMEPAD_BUTTON_GUIDE -> Text.translatable("midnightcontrols.button.guide"); case GLFW_GAMEPAD_BUTTON_GUIDE -> new TranslatableText("midnightcontrols.button.guide");
case GLFW_GAMEPAD_BUTTON_LEFT_THUMB -> Text.translatable("midnightcontrols.button.left_thumb"); case GLFW_GAMEPAD_BUTTON_LEFT_THUMB -> new TranslatableText("midnightcontrols.button.left_thumb");
case GLFW_GAMEPAD_BUTTON_RIGHT_THUMB -> Text.translatable("midnightcontrols.button.right_thumb"); case GLFW_GAMEPAD_BUTTON_RIGHT_THUMB -> new TranslatableText("midnightcontrols.button.right_thumb");
case GLFW_GAMEPAD_BUTTON_DPAD_UP -> Text.translatable("midnightcontrols.button.dpad_up"); case GLFW_GAMEPAD_BUTTON_DPAD_UP -> new TranslatableText("midnightcontrols.button.dpad_up");
case GLFW_GAMEPAD_BUTTON_DPAD_RIGHT -> Text.translatable("midnightcontrols.button.dpad_right"); case GLFW_GAMEPAD_BUTTON_DPAD_RIGHT -> new TranslatableText("midnightcontrols.button.dpad_right");
case GLFW_GAMEPAD_BUTTON_DPAD_DOWN -> Text.translatable("midnightcontrols.button.dpad_down"); case GLFW_GAMEPAD_BUTTON_DPAD_DOWN -> new TranslatableText("midnightcontrols.button.dpad_down");
case GLFW_GAMEPAD_BUTTON_DPAD_LEFT -> Text.translatable("midnightcontrols.button.dpad_left"); case GLFW_GAMEPAD_BUTTON_DPAD_LEFT -> new TranslatableText("midnightcontrols.button.dpad_left");
case 100 -> Text.translatable("midnightcontrols.axis.left_x+"); case 100 -> new TranslatableText("midnightcontrols.axis.left_x+");
case 101 -> Text.translatable("midnightcontrols.axis.left_y+"); case 101 -> new TranslatableText("midnightcontrols.axis.left_y+");
case 102 -> Text.translatable("midnightcontrols.axis.right_x+"); case 102 -> new TranslatableText("midnightcontrols.axis.right_x+");
case 103 -> Text.translatable("midnightcontrols.axis.right_y+"); case 103 -> new TranslatableText("midnightcontrols.axis.right_y+");
case 104 -> Text.translatable("midnightcontrols.axis.left_trigger"); case 104 -> new TranslatableText("midnightcontrols.axis.left_trigger");
case 105 -> Text.translatable("midnightcontrols.axis.right_trigger"); case 105 -> new TranslatableText("midnightcontrols.axis.right_trigger");
case 200 -> Text.translatable("midnightcontrols.axis.left_x-"); case 200 -> new TranslatableText("midnightcontrols.axis.left_x-");
case 201 -> Text.translatable("midnightcontrols.axis.left_y-"); case 201 -> new TranslatableText("midnightcontrols.axis.left_y-");
case 202 -> Text.translatable("midnightcontrols.axis.right_x-"); case 202 -> new TranslatableText("midnightcontrols.axis.right_x-");
case 203 -> Text.translatable("midnightcontrols.axis.right_y-"); case 203 -> new TranslatableText("midnightcontrols.axis.right_y-");
case 15 -> Text.translatable("midnightcontrols.button.l4"); case 15 -> new TranslatableText("midnightcontrols.button.l4");
case 16 -> Text.translatable("midnightcontrols.button.l5"); case 16 -> new TranslatableText("midnightcontrols.button.l5");
case 17 -> Text.translatable("midnightcontrols.button.r4"); case 17 -> new TranslatableText("midnightcontrols.button.r4");
case 18 -> Text.translatable("midnightcontrols.button.r5"); case 18 -> new TranslatableText("midnightcontrols.button.r5");
default -> Text.translatable("midnightcontrols.button.unknown", button); default -> new TranslatableText("midnightcontrols.button.unknown", button);
}; };
} }

View File

@@ -15,7 +15,9 @@ import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.toast.SystemToast; import net.minecraft.client.toast.SystemToast;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.Nameable; import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
@@ -177,7 +179,7 @@ public record Controller(int id) implements Nameable {
var client = MinecraftClient.getInstance(); var client = MinecraftClient.getInstance();
if (client != null) { if (client != null) {
client.getToastManager().add(SystemToast.create(client, SystemToast.Type.TUTORIAL_HINT, client.getToastManager().add(SystemToast.create(client, SystemToast.Type.TUTORIAL_HINT,
Text.translatable("midnightcontrols.controller.mappings.error"), Text.literal(string))); new TranslatableText("midnightcontrols.controller.mappings.error"), new LiteralText(string)));
MidnightControls.get().log(I18n.translate("midnightcontrols.controller.mappings.error")+string); MidnightControls.get().log(I18n.translate("midnightcontrols.controller.mappings.error")+string);
} }
} }

View File

@@ -125,7 +125,7 @@ public class InputHandlers {
if (next) { if (next) {
return client.currentScreen.children().stream().filter(element -> element instanceof PressableWidget) return client.currentScreen.children().stream().filter(element -> element instanceof PressableWidget)
.map(element -> (PressableWidget) element) .map(element -> (PressableWidget) element)
.filter(element -> element.getMessage() != null && element.getMessage().getContent() != null) .filter(element -> element.getMessage() != null)
.anyMatch(element -> { .anyMatch(element -> {
if (element.getMessage().getString().equals(">")) { if (element.getMessage().getString().equals(">")) {
element.onPress(); element.onPress();
@@ -136,7 +136,7 @@ public class InputHandlers {
} else { } else {
return client.currentScreen.children().stream().filter(element -> element instanceof PressableWidget) return client.currentScreen.children().stream().filter(element -> element instanceof PressableWidget)
.map(element -> (PressableWidget) element) .map(element -> (PressableWidget) element)
.filter(element -> element.getMessage() != null && element.getMessage().getContent() != null) .filter(element -> element.getMessage() != null)
.anyMatch(element -> { .anyMatch(element -> {
if (element.getMessage().getString().equals("<")) { if (element.getMessage().getString().equals("<")) {
element.onPress(); element.onPress();
@@ -232,12 +232,12 @@ public class InputHandlers {
public static boolean handleToggleSneak(@NotNull MinecraftClient client, @NotNull ButtonBinding button, float value, @NotNull ButtonState action) { public static boolean handleToggleSneak(@NotNull MinecraftClient client, @NotNull ButtonBinding button, float value, @NotNull ButtonState action) {
button.asKeyBinding().ifPresent(binding -> { button.asKeyBinding().ifPresent(binding -> {
boolean sneakToggled = client.options.getSneakToggled().getValue(); boolean sneakToggled = client.options.sneakToggled;
if (client.player.getAbilities().flying && sneakToggled) if (client.player.getAbilities().flying && sneakToggled)
client.options.getSneakToggled().setValue(false); client.options.sneakToggled = false;
binding.setPressed(button.pressed); binding.setPressed(button.pressed);
if (client.player.getAbilities().flying && sneakToggled) if (client.player.getAbilities().flying && sneakToggled)
client.options.getSneakToggled().setValue(true); client.options.sneakToggled = true;
}); });
return true; return true;
} }

View File

@@ -91,7 +91,7 @@ public final class MovementHandler implements PressAction {
// Slowing down if sneaking or crawling. // Slowing down if sneaking or crawling.
if (client.player.shouldSlowDown()) { if (client.player.shouldSlowDown()) {
this.movementForward *= MathHelper.clamp(0.3F + EnchantmentHelper.getSwiftSneakSpeedBoost(client.player), 0.0F, 1.0F); this.movementForward *= MathHelper.clamp(0.3F, 0.0F, 1.0F);
} }
} else { } else {
// Handle sideways movement. // Handle sideways movement.
@@ -101,7 +101,7 @@ public final class MovementHandler implements PressAction {
// Slowing down if sneaking or crawling. // Slowing down if sneaking or crawling.
if (client.player.shouldSlowDown()) { if (client.player.shouldSlowDown()) {
this.movementSideways *= MathHelper.clamp(0.3F + EnchantmentHelper.getSwiftSneakSpeedBoost(client.player), 0.0F, 1.0F); this.movementSideways *= MathHelper.clamp(0.3F, 0.0F, 1.0F);
} }
} }

View File

@@ -16,7 +16,9 @@ import dev.lambdaurora.spruceui.option.SpruceOption;
import dev.lambdaurora.spruceui.widget.container.SpruceContainerWidget; import dev.lambdaurora.spruceui.widget.container.SpruceContainerWidget;
import dev.lambdaurora.spruceui.widget.text.SpruceTextAreaWidget; import dev.lambdaurora.spruceui.widget.text.SpruceTextAreaWidget;
import net.minecraft.client.toast.SystemToast; import net.minecraft.client.toast.SystemToast;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
@@ -64,7 +66,7 @@ public class MappingsStringInputWidget extends SpruceContainerWidget {
} catch (IOException e) { } catch (IOException e) {
if (this.client != null) if (this.client != null)
this.client.getToastManager().add(SystemToast.create(this.client, SystemToast.Type.TUTORIAL_HINT, this.client.getToastManager().add(SystemToast.create(this.client, SystemToast.Type.TUTORIAL_HINT,
Text.translatable("midnightcontrols.controller.mappings.error.write"), Text.empty())); new TranslatableText("midnightcontrols.controller.mappings.error.write"), Text.of("")));
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -89,7 +91,7 @@ public class MappingsStringInputWidget extends SpruceContainerWidget {
} }
int textFieldWidth = (int) (this.width * (5.0 / 6.0)); int textFieldWidth = (int) (this.width * (5.0 / 6.0));
this.textArea = new SpruceTextAreaWidget(Position.of(this, this.width / 2 - textFieldWidth / 2, 0), textFieldWidth, this.height - 50, Text.literal(mappings)); this.textArea = new SpruceTextAreaWidget(Position.of(this, this.width / 2 - textFieldWidth / 2, 0), textFieldWidth, this.height - 50, new LiteralText(mappings));
this.textArea.setText(mappings); this.textArea.setText(mappings);
// Display as many lines as possible // Display as many lines as possible
this.textArea.setDisplayedLines(this.textArea.getInnerHeight() / this.client.textRenderer.fontHeight); this.textArea.setDisplayedLines(this.textArea.getInnerHeight() / this.client.textRenderer.fontHeight);

View File

@@ -72,7 +72,7 @@ public class MidnightControlsHud extends Hud {
this.dropItemButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.DROP_ITEM); this.dropItemButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.DROP_ITEM);
this.attackButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.ATTACK); this.attackButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.ATTACK);
this.useButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.USE); this.useButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.USE);
if (client.options.getGuiScale().getValue() >= 4) { if (client.options.guiScale >= 4) {
scale = 0.75f; scale = 0.75f;
} else scale = 1f; } else scale = 1f;
} }
@@ -115,7 +115,7 @@ public class MidnightControlsHud extends Hud {
this.drawButton(matrices, currentX, y, ButtonBinding.INVENTORY, true); this.drawButton(matrices, currentX, y, ButtonBinding.INVENTORY, true);
this.drawButton(matrices, currentX += (MidnightControlsConfig.hudSide == HudSide.LEFT ? offset : -offset), y, ButtonBinding.SWAP_HANDS, true); this.drawButton(matrices, currentX += (MidnightControlsConfig.hudSide == HudSide.LEFT ? offset : -offset), y, ButtonBinding.SWAP_HANDS, true);
offset = 2 + this.swapHandsWidth + this.dropItemButtonWidth + 4; offset = 2 + this.swapHandsWidth + this.dropItemButtonWidth + 4;
if (this.client.options.getShowSubtitles().getValue() && MidnightControlsConfig.hudSide == HudSide.RIGHT) { if (this.client.options.showSubtitles && MidnightControlsConfig.hudSide == HudSide.RIGHT) {
currentX += -offset; currentX += -offset;
} else { } else {
currentX = MidnightControlsConfig.hudSide == HudSide.LEFT ? x : x - this.dropItemButtonWidth; currentX = MidnightControlsConfig.hudSide == HudSide.LEFT ? x : x - this.dropItemButtonWidth;
@@ -132,7 +132,7 @@ public class MidnightControlsHud extends Hud {
currentX -= this.useButtonWidth; currentX -= this.useButtonWidth;
this.drawButton(matrices, currentX, y, ButtonBinding.USE, true); this.drawButton(matrices, currentX, y, ButtonBinding.USE, true);
offset = 2 + this.useWidth + 4; offset = 2 + this.useWidth + 4;
if (this.client.options.getShowSubtitles().getValue() && MidnightControlsConfig.hudSide == HudSide.LEFT) { if (this.client.options.showSubtitles && MidnightControlsConfig.hudSide == HudSide.LEFT) {
currentX -= offset; currentX -= offset;
} else { } else {
currentX = x; currentX = x;
@@ -152,7 +152,7 @@ public class MidnightControlsHud extends Hud {
currentX += MidnightControlsConfig.hudSide == HudSide.LEFT ? this.inventoryWidth + 4 + this.swapHandsButtonWidth + 2 currentX += MidnightControlsConfig.hudSide == HudSide.LEFT ? this.inventoryWidth + 4 + this.swapHandsButtonWidth + 2
: -this.swapHandsWidth - 2 - this.swapHandsButtonWidth - 4; : -this.swapHandsWidth - 2 - this.swapHandsButtonWidth - 4;
this.drawTip(matrices, currentX, y, ButtonBinding.SWAP_HANDS, true); this.drawTip(matrices, currentX, y, ButtonBinding.SWAP_HANDS, true);
if (this.client.options.getShowSubtitles().getValue() && MidnightControlsConfig.hudSide == HudSide.RIGHT) { if (this.client.options.showSubtitles && MidnightControlsConfig.hudSide == HudSide.RIGHT) {
currentX += -this.dropItemWidth - 2 - this.dropItemButtonWidth - 4; currentX += -this.dropItemWidth - 2 - this.dropItemButtonWidth - 4;
} else { } else {
y -= 24; y -= 24;
@@ -169,7 +169,7 @@ public class MidnightControlsHud extends Hud {
this.drawTip(matrices, currentX, y, this.placeAction, true); this.drawTip(matrices, currentX, y, this.placeAction, true);
if (this.client.options.getShowSubtitles().getValue() && MidnightControlsConfig.hudSide == HudSide.LEFT) { if (this.client.options.showSubtitles && MidnightControlsConfig.hudSide == HudSide.LEFT) {
currentX -= 4; currentX -= 4;
} else { } else {
currentX = x; currentX = x;

View File

@@ -34,8 +34,10 @@ import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.render.*; import net.minecraft.client.render.*;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.MutableText; import net.minecraft.text.MutableText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
import net.minecraft.util.Util; import net.minecraft.util.Util;
import net.minecraft.util.math.Matrix4f; import net.minecraft.util.math.Matrix4f;
@@ -47,7 +49,7 @@ import java.awt.*;
* Represents the midnightcontrols settings screen. * Represents the midnightcontrols settings screen.
*/ */
public class MidnightControlsSettingsScreen extends SpruceScreen { public class MidnightControlsSettingsScreen extends SpruceScreen {
private static final Text SDL2_GAMEPAD_TOOL = Text.literal("SDL2 Gamepad Tool").formatted(Formatting.GREEN); private static final Text SDL2_GAMEPAD_TOOL = new LiteralText("SDL2 Gamepad Tool").formatted(Formatting.GREEN);
public static final String GAMEPAD_TOOL_URL = "https://generalarcade.com/gamepadtool/"; public static final String GAMEPAD_TOOL_URL = "https://generalarcade.com/gamepadtool/";
final MidnightControlsClient mod = MidnightControlsClient.get(); final MidnightControlsClient mod = MidnightControlsClient.get();
private final Screen parent; private final Screen parent;
@@ -88,11 +90,11 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
var controller = MidnightControlsConfig.getController(); var controller = MidnightControlsConfig.getController();
var controllerName = controller.getName(); var controllerName = controller.getName();
if (!controller.isConnected()) if (!controller.isConnected())
return option.getDisplayText(Text.literal(controllerName).formatted(Formatting.RED)); return option.getDisplayText(new LiteralText(controllerName).formatted(Formatting.RED));
else if (!controller.isGamepad()) else if (!controller.isGamepad())
return option.getDisplayText(Text.literal(controllerName).formatted(Formatting.GOLD)); return option.getDisplayText(new LiteralText(controllerName).formatted(Formatting.GOLD));
else else
return option.getDisplayText(Text.literal(controllerName)); return option.getDisplayText(new LiteralText(controllerName));
}, null); }, null);
private final SpruceOption secondControllerOption = new SpruceCyclingOption("midnightcontrols.menu.controller2", private final SpruceOption secondControllerOption = new SpruceCyclingOption("midnightcontrols.menu.controller2",
amount -> { amount -> {
@@ -106,13 +108,13 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
option -> MidnightControlsConfig.getSecondController().map(controller -> { option -> MidnightControlsConfig.getSecondController().map(controller -> {
var controllerName = controller.getName(); var controllerName = controller.getName();
if (!controller.isConnected()) if (!controller.isConnected())
return option.getDisplayText(Text.literal(controllerName).formatted(Formatting.RED)); return option.getDisplayText(new LiteralText(controllerName).formatted(Formatting.RED));
else if (!controller.isGamepad()) else if (!controller.isGamepad())
return option.getDisplayText(Text.literal(controllerName).formatted(Formatting.GOLD)); return option.getDisplayText(new LiteralText(controllerName).formatted(Formatting.GOLD));
else else
return option.getDisplayText(Text.literal(controllerName)); return option.getDisplayText(new LiteralText(controllerName));
}).orElse(option.getDisplayText(SpruceTexts.OPTIONS_OFF.copyContentOnly().formatted(Formatting.RED))), }).orElse(option.getDisplayText(SpruceTexts.OPTIONS_OFF.copy().formatted(Formatting.RED))),
Text.translatable("midnightcontrols.tooltip.controller2")); new TranslatableText("midnightcontrols.tooltip.controller2"));
private final SpruceOption unfocusedInputOption; private final SpruceOption unfocusedInputOption;
private final SpruceOption invertsRightXAxis; private final SpruceOption invertsRightXAxis;
private final SpruceOption invertsRightYAxis; private final SpruceOption invertsRightYAxis;
@@ -129,13 +131,13 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
return new SpruceDoubleOption(key, .25f, 1.f, 0.05f, return new SpruceDoubleOption(key, .25f, 1.f, 0.05f,
() -> MidnightControlsConfig.getAxisMaxValue(axis), () -> MidnightControlsConfig.getAxisMaxValue(axis),
newValue -> MidnightControlsConfig.setAxisMaxValue(axis, newValue), newValue -> MidnightControlsConfig.setAxisMaxValue(axis, newValue),
option -> option.getDisplayText(Text.literal(String.format("%.2f", option.get()))), option -> option.getDisplayText(new LiteralText(String.format("%.2f", option.get()))),
Text.translatable(key.replace("menu", "tooltip")) new TranslatableText(key.replace("menu", "tooltip"))
); );
} }
private final MutableText controllerMappingsUrlText = Text.literal("(") private final MutableText controllerMappingsUrlText = new LiteralText("(")
.append(Text.literal(GAMEPAD_TOOL_URL).formatted(Formatting.GOLD)) .append(new LiteralText(GAMEPAD_TOOL_URL).formatted(Formatting.GOLD))
.append("),"); .append("),");
private static int searchNextAvailableController(int newId, boolean allowNone) { private static int searchNextAvailableController(int newId, boolean allowNone) {
@@ -153,7 +155,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
} }
public MidnightControlsSettingsScreen(Screen parent, boolean hideControls) { public MidnightControlsSettingsScreen(Screen parent, boolean hideControls) {
super(Text.translatable("midnightcontrols.title.settings")); super(new TranslatableText("midnightcontrols.title.settings"));
MidnightControlsConfig.isEditing = true; MidnightControlsConfig.isEditing = true;
this.parent = parent; this.parent = parent;
// General options // General options
@@ -166,22 +168,22 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
if (this.client.player != null) { if (this.client.player != null) {
ClientPlayNetworking.getSender().sendPacket(MidnightControls.CONTROLS_MODE_CHANNEL, this.mod.makeControlsModeBuffer(next)); ClientPlayNetworking.getSender().sendPacket(MidnightControls.CONTROLS_MODE_CHANNEL, this.mod.makeControlsModeBuffer(next));
} }
}, option -> option.getDisplayText(Text.translatable(MidnightControlsConfig.controlsMode.getTranslationKey())), }, option -> option.getDisplayText(new TranslatableText(MidnightControlsConfig.controlsMode.getTranslationKey())),
Text.translatable("midnightcontrols.tooltip.controls_mode")); new TranslatableText("midnightcontrols.tooltip.controls_mode"));
this.autoSwitchModeOption = new SpruceToggleBooleanOption("midnightcontrols.menu.auto_switch_mode", () -> MidnightControlsConfig.autoSwitchMode, this.autoSwitchModeOption = new SpruceToggleBooleanOption("midnightcontrols.menu.auto_switch_mode", () -> MidnightControlsConfig.autoSwitchMode,
value -> MidnightControlsConfig.autoSwitchMode = value, Text.translatable("midnightcontrols.tooltip.auto_switch_mode")); value -> MidnightControlsConfig.autoSwitchMode = value, new TranslatableText("midnightcontrols.tooltip.auto_switch_mode"));
this.rotationSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.rotation_speed", 0.0, 100.0, .5f, this.rotationSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.rotation_speed", 0.0, 100.0, .5f,
() -> MidnightControlsConfig.rotationSpeed, () -> MidnightControlsConfig.rotationSpeed,
value -> MidnightControlsConfig.rotationSpeed = value, option -> option.getDisplayText(Text.literal(String.valueOf(option.get()))), value -> MidnightControlsConfig.rotationSpeed = value, option -> option.getDisplayText(new LiteralText(String.valueOf(option.get()))),
Text.translatable("midnightcontrols.tooltip.rotation_speed")); new TranslatableText("midnightcontrols.tooltip.rotation_speed"));
this.yAxisRotationSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.y_axis_rotation_speed", 0.0, 100.0, .5f, this.yAxisRotationSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.y_axis_rotation_speed", 0.0, 100.0, .5f,
() -> MidnightControlsConfig.yAxisRotationSpeed, () -> MidnightControlsConfig.yAxisRotationSpeed,
value -> MidnightControlsConfig.yAxisRotationSpeed = value, option -> option.getDisplayText(Text.literal(String.valueOf(option.get()))), value -> MidnightControlsConfig.yAxisRotationSpeed = value, option -> option.getDisplayText(new LiteralText(String.valueOf(option.get()))),
Text.translatable("midnightcontrols.tooltip.y_axis_rotation_speed")); new TranslatableText("midnightcontrols.tooltip.y_axis_rotation_speed"));
this.mouseSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.mouse_speed", 0.0, 150.0, .5f, this.mouseSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.mouse_speed", 0.0, 150.0, .5f,
() -> MidnightControlsConfig.mouseSpeed, () -> MidnightControlsConfig.mouseSpeed,
value -> MidnightControlsConfig.mouseSpeed = value, option -> option.getDisplayText(Text.literal(String.valueOf(option.get()))), value -> MidnightControlsConfig.mouseSpeed = value, option -> option.getDisplayText(new LiteralText(String.valueOf(option.get()))),
Text.translatable("midnightcontrols.tooltip.mouse_speed")); new TranslatableText("midnightcontrols.tooltip.mouse_speed"));
this.resetOption = SpruceSimpleActionOption.reset(btn -> { this.resetOption = SpruceSimpleActionOption.reset(btn -> {
// TODO // TODO
MidnightControlsConfig.reset(); MidnightControlsConfig.reset();
@@ -191,60 +193,60 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
// Gameplay options // Gameplay options
this.analogMovementOption = new SpruceToggleBooleanOption("midnightcontrols.menu.analog_movement", this.analogMovementOption = new SpruceToggleBooleanOption("midnightcontrols.menu.analog_movement",
() -> MidnightControlsConfig.analogMovement, value -> MidnightControlsConfig.analogMovement = value, () -> MidnightControlsConfig.analogMovement, value -> MidnightControlsConfig.analogMovement = value,
Text.translatable("midnightcontrols.tooltip.analog_movement")); new TranslatableText("midnightcontrols.tooltip.analog_movement"));
this.doubleTapToSprintOption = new SpruceToggleBooleanOption("midnightcontrols.menu.double_tap_to_sprint", this.doubleTapToSprintOption = new SpruceToggleBooleanOption("midnightcontrols.menu.double_tap_to_sprint",
() -> MidnightControlsConfig.doubleTapToSprint, value -> MidnightControlsConfig.doubleTapToSprint = value, () -> MidnightControlsConfig.doubleTapToSprint, value -> MidnightControlsConfig.doubleTapToSprint = value,
Text.translatable("midnightcontrols.tooltip.double_tap_to_sprint")); new TranslatableText("midnightcontrols.tooltip.double_tap_to_sprint"));
this.autoJumpOption = new SpruceToggleBooleanOption("options.autoJump", this.autoJumpOption = new SpruceToggleBooleanOption("options.autoJump",
() -> this.client.options.getAutoJump().getValue(), () -> this.client.options.autoJump,
newValue -> this.client.options.getAutoJump().setValue(newValue), newValue -> this.client.options.autoJump = newValue,
null); null);
this.fastBlockPlacingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.fast_block_placing", () -> MidnightControlsConfig.fastBlockPlacing, this.fastBlockPlacingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.fast_block_placing", () -> MidnightControlsConfig.fastBlockPlacing,
value -> MidnightControlsConfig.fastBlockPlacing = value, Text.translatable("midnightcontrols.tooltip.fast_block_placing")); value -> MidnightControlsConfig.fastBlockPlacing = value, new TranslatableText("midnightcontrols.tooltip.fast_block_placing"));
this.frontBlockPlacingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.reacharound.horizontal", () -> MidnightControlsConfig.horizontalReacharound, this.frontBlockPlacingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.reacharound.horizontal", () -> MidnightControlsConfig.horizontalReacharound,
value -> MidnightControlsConfig.horizontalReacharound = value, Text.translatable("midnightcontrols.tooltip.reacharound.horizontal")); value -> MidnightControlsConfig.horizontalReacharound = value, new TranslatableText("midnightcontrols.tooltip.reacharound.horizontal"));
this.verticalReacharoundOption = new SpruceToggleBooleanOption("midnightcontrols.menu.reacharound.vertical", () -> MidnightControlsConfig.verticalReacharound, this.verticalReacharoundOption = new SpruceToggleBooleanOption("midnightcontrols.menu.reacharound.vertical", () -> MidnightControlsConfig.verticalReacharound,
value -> MidnightControlsConfig.verticalReacharound = value, Text.translatable("midnightcontrols.tooltip.reacharound.vertical")); value -> MidnightControlsConfig.verticalReacharound = value, new TranslatableText("midnightcontrols.tooltip.reacharound.vertical"));
this.flyDriftingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.fly_drifting", () -> MidnightControlsConfig.flyDrifting, this.flyDriftingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.fly_drifting", () -> MidnightControlsConfig.flyDrifting,
value -> MidnightControlsConfig.flyDrifting = value, Text.translatable("midnightcontrols.tooltip.fly_drifting")); value -> MidnightControlsConfig.flyDrifting = value, new TranslatableText("midnightcontrols.tooltip.fly_drifting"));
this.flyVerticalDriftingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.fly_drifting_vertical", () -> MidnightControlsConfig.verticalFlyDrifting, this.flyVerticalDriftingOption = new SpruceToggleBooleanOption("midnightcontrols.menu.fly_drifting_vertical", () -> MidnightControlsConfig.verticalFlyDrifting,
value -> MidnightControlsConfig.verticalFlyDrifting = value, Text.translatable("midnightcontrols.tooltip.fly_drifting_vertical")); value -> MidnightControlsConfig.verticalFlyDrifting = value, new TranslatableText("midnightcontrols.tooltip.fly_drifting_vertical"));
// Appearance options // Appearance options
this.controllerTypeOption = new SpruceCyclingOption("midnightcontrols.menu.controller_type", this.controllerTypeOption = new SpruceCyclingOption("midnightcontrols.menu.controller_type",
amount -> MidnightControlsConfig.controllerType = MidnightControlsConfig.controllerType.next(), amount -> MidnightControlsConfig.controllerType = MidnightControlsConfig.controllerType.next(),
option -> option.getDisplayText(MidnightControlsConfig.controllerType.getTranslatedText()), option -> option.getDisplayText(MidnightControlsConfig.controllerType.getTranslatedText()),
Text.translatable("midnightcontrols.tooltip.controller_type")); new TranslatableText("midnightcontrols.tooltip.controller_type"));
this.virtualMouseSkinOption = new SpruceCyclingOption("midnightcontrols.menu.virtual_mouse.skin", this.virtualMouseSkinOption = new SpruceCyclingOption("midnightcontrols.menu.virtual_mouse.skin",
amount -> MidnightControlsConfig.virtualMouseSkin = MidnightControlsConfig.virtualMouseSkin.next(), amount -> MidnightControlsConfig.virtualMouseSkin = MidnightControlsConfig.virtualMouseSkin.next(),
option -> option.getDisplayText(MidnightControlsConfig.virtualMouseSkin.getTranslatedText()), option -> option.getDisplayText(MidnightControlsConfig.virtualMouseSkin.getTranslatedText()),
null); null);
this.hudEnableOption = new SpruceToggleBooleanOption("midnightcontrols.menu.hud_enable", () -> MidnightControlsConfig.hudEnable, this.hudEnableOption = new SpruceToggleBooleanOption("midnightcontrols.menu.hud_enable", () -> MidnightControlsConfig.hudEnable,
this.mod::setHudEnabled, Text.translatable("midnightcontrols.tooltip.hud_enable")); this.mod::setHudEnabled, new TranslatableText("midnightcontrols.tooltip.hud_enable"));
this.hudSideOption = new SpruceCyclingOption("midnightcontrols.menu.hud_side", this.hudSideOption = new SpruceCyclingOption("midnightcontrols.menu.hud_side",
amount -> MidnightControlsConfig.hudSide = MidnightControlsConfig.hudSide.next(), amount -> MidnightControlsConfig.hudSide = MidnightControlsConfig.hudSide.next(),
option -> option.getDisplayText(MidnightControlsConfig.hudSide.getTranslatedText()), option -> option.getDisplayText(MidnightControlsConfig.hudSide.getTranslatedText()),
Text.translatable("midnightcontrols.tooltip.hud_side")); new TranslatableText("midnightcontrols.tooltip.hud_side"));
// Controller options // Controller options
this.rightDeadZoneOption = new SpruceDoubleOption("midnightcontrols.menu.right_dead_zone", 0.05, 1.0, .05f, this.rightDeadZoneOption = new SpruceDoubleOption("midnightcontrols.menu.right_dead_zone", 0.05, 1.0, .05f,
() -> MidnightControlsConfig.rightDeadZone, () -> MidnightControlsConfig.rightDeadZone,
value -> MidnightControlsConfig.rightDeadZone = value, option -> { value -> MidnightControlsConfig.rightDeadZone = value, option -> {
var value = String.valueOf(option.get()); var value = String.valueOf(option.get());
return option.getDisplayText(Text.literal(value.substring(0, Math.min(value.length(), 5)))); return option.getDisplayText(new LiteralText(value.substring(0, Math.min(value.length(), 5))));
}, Text.translatable("midnightcontrols.tooltip.right_dead_zone")); }, new TranslatableText("midnightcontrols.tooltip.right_dead_zone"));
this.leftDeadZoneOption = new SpruceDoubleOption("midnightcontrols.menu.left_dead_zone", 0.05, 1.0, .05f, this.leftDeadZoneOption = new SpruceDoubleOption("midnightcontrols.menu.left_dead_zone", 0.05, 1.0, .05f,
() -> MidnightControlsConfig.leftDeadZone, () -> MidnightControlsConfig.leftDeadZone,
value -> MidnightControlsConfig.leftDeadZone = value, option -> { value -> MidnightControlsConfig.leftDeadZone = value, option -> {
var value = String.valueOf(option.get()); var value = String.valueOf(option.get());
return option.getDisplayText(Text.literal(value.substring(0, Math.min(value.length(), 5)))); return option.getDisplayText(new LiteralText(value.substring(0, Math.min(value.length(), 5))));
}, Text.translatable("midnightcontrols.tooltip.left_dead_zone")); }, new TranslatableText("midnightcontrols.tooltip.left_dead_zone"));
this.invertsRightXAxis = new SpruceToggleBooleanOption("midnightcontrols.menu.invert_right_x_axis", () -> MidnightControlsConfig.invertRightXAxis, this.invertsRightXAxis = new SpruceToggleBooleanOption("midnightcontrols.menu.invert_right_x_axis", () -> MidnightControlsConfig.invertRightXAxis,
value -> MidnightControlsConfig.invertRightXAxis = value, null); value -> MidnightControlsConfig.invertRightXAxis = value, null);
this.invertsRightYAxis = new SpruceToggleBooleanOption("midnightcontrols.menu.invert_right_y_axis", () -> MidnightControlsConfig.invertRightYAxis, this.invertsRightYAxis = new SpruceToggleBooleanOption("midnightcontrols.menu.invert_right_y_axis", () -> MidnightControlsConfig.invertRightYAxis,
value -> MidnightControlsConfig.invertRightYAxis = value, null); value -> MidnightControlsConfig.invertRightYAxis = value, null);
this.unfocusedInputOption = new SpruceToggleBooleanOption("midnightcontrols.menu.unfocused_input", () -> MidnightControlsConfig.unfocusedInput, this.unfocusedInputOption = new SpruceToggleBooleanOption("midnightcontrols.menu.unfocused_input", () -> MidnightControlsConfig.unfocusedInput,
value -> MidnightControlsConfig.unfocusedInput = value, Text.translatable("midnightcontrols.tooltip.unfocused_input")); value -> MidnightControlsConfig.unfocusedInput = value, new TranslatableText("midnightcontrols.tooltip.unfocused_input"));
this.virtualMouseOption = new SpruceToggleBooleanOption("midnightcontrols.menu.virtual_mouse", () -> MidnightControlsConfig.virtualMouse, this.virtualMouseOption = new SpruceToggleBooleanOption("midnightcontrols.menu.virtual_mouse", () -> MidnightControlsConfig.virtualMouse,
value -> MidnightControlsConfig.virtualMouse = value, Text.translatable("midnightcontrols.tooltip.virtual_mouse")); value -> MidnightControlsConfig.virtualMouse = value, new TranslatableText("midnightcontrols.tooltip.virtual_mouse"));
} }
@Override @Override
@@ -283,22 +285,22 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
tabs.getList().setBackground(new MidnightControlsBackground()); tabs.getList().setBackground(new MidnightControlsBackground());
this.addDrawableChild(tabs); this.addDrawableChild(tabs);
tabs.addSeparatorEntry(Text.translatable("midnightcontrols.menu.separator.general")); tabs.addSeparatorEntry(new TranslatableText("midnightcontrols.menu.separator.general"));
tabs.addTabEntry(Text.translatable("midnightcontrols.menu.title.general"), null, tabs.addTabEntry(new TranslatableText("midnightcontrols.menu.title.general"), null,
this::buildGeneralTab); this::buildGeneralTab);
tabs.addTabEntry(Text.translatable("midnightcontrols.menu.title.gameplay"), null, tabs.addTabEntry(new TranslatableText("midnightcontrols.menu.title.gameplay"), null,
this::buildGameplayTab); this::buildGameplayTab);
tabs.addTabEntry(Text.translatable("midnightcontrols.menu.title.visual"), null, tabs.addTabEntry(new TranslatableText("midnightcontrols.menu.title.visual"), null,
this::buildVisualTab); this::buildVisualTab);
tabs.addSeparatorEntry(Text.translatable("options.controls")); tabs.addSeparatorEntry(new TranslatableText("options.controls"));
tabs.addTabEntry(Text.translatable("midnightcontrols.menu.title.controller_controls"), null, tabs.addTabEntry(new TranslatableText("midnightcontrols.menu.title.controller_controls"), null,
this::buildControllerControlsTab); this::buildControllerControlsTab);
tabs.addSeparatorEntry(Text.translatable("midnightcontrols.menu.separator.controller")); tabs.addSeparatorEntry(new TranslatableText("midnightcontrols.menu.separator.controller"));
tabs.addTabEntry(Text.translatable("midnightcontrols.menu.title.controller"), null, tabs.addTabEntry(new TranslatableText("midnightcontrols.menu.title.controller"), null,
this::buildControllerTab); this::buildControllerTab);
tabs.addTabEntry(Text.translatable("midnightcontrols.menu.title.mappings.string"), null, tabs.addTabEntry(new TranslatableText("midnightcontrols.menu.title.mappings.string"), null,
this::buildMappingsStringEditorTab); this::buildMappingsStringEditorTab);
} }
@@ -347,17 +349,17 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
var root = new SpruceContainerWidget(Position.origin(), width, height); var root = new SpruceContainerWidget(Position.origin(), width, height);
var aboutMappings1 = new SpruceLabelWidget(Position.of(0, 2), var aboutMappings1 = new SpruceLabelWidget(Position.of(0, 2),
Text.translatable("midnightcontrols.controller.mappings.1", SDL2_GAMEPAD_TOOL), new TranslatableText("midnightcontrols.controller.mappings.1", SDL2_GAMEPAD_TOOL),
width, true); width, true);
var gamepadToolUrlLabel = new SpruceLabelWidget(Position.of(0, aboutMappings1.getHeight() + 4), var gamepadToolUrlLabel = new SpruceLabelWidget(Position.of(0, aboutMappings1.getHeight() + 4),
this.controllerMappingsUrlText, width, this.controllerMappingsUrlText, width,
label -> Util.getOperatingSystem().open(GAMEPAD_TOOL_URL), true); label -> Util.getOperatingSystem().open(GAMEPAD_TOOL_URL), true);
gamepadToolUrlLabel.setTooltip(Text.translatable("chat.link.open")); gamepadToolUrlLabel.setTooltip(new TranslatableText("chat.link.open"));
var aboutMappings3 = new SpruceLabelWidget(Position.of(0, var aboutMappings3 = new SpruceLabelWidget(Position.of(0,
aboutMappings1.getHeight() + gamepadToolUrlLabel.getHeight() + 6), aboutMappings1.getHeight() + gamepadToolUrlLabel.getHeight() + 6),
Text.translatable("midnightcontrols.controller.mappings.3", Formatting.GREEN.toString(), Formatting.RESET.toString()), new TranslatableText("midnightcontrols.controller.mappings.3", Formatting.GREEN.toString(), Formatting.RESET.toString()),
width, true); width, true);
int listHeight = height - 8 - aboutMappings1.getHeight() - aboutMappings3.getHeight() - gamepadToolUrlLabel.getHeight(); int listHeight = height - 8 - aboutMappings1.getHeight() - aboutMappings3.getHeight() - gamepadToolUrlLabel.getHeight();
@@ -422,7 +424,8 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
bufferBuilder.vertex(matrix, (float)x2, (float)y2, 0.0F).color(r, g, b, t).next(); bufferBuilder.vertex(matrix, (float)x2, (float)y2, 0.0F).color(r, g, b, t).next();
bufferBuilder.vertex(matrix, (float)x2, (float)y1, 0.0F).color(r, g, b, t).next(); bufferBuilder.vertex(matrix, (float)x2, (float)y1, 0.0F).color(r, g, b, t).next();
bufferBuilder.vertex(matrix, (float)x1, (float)y1, 0.0F).color(r, g, b, t).next(); bufferBuilder.vertex(matrix, (float)x1, (float)y1, 0.0F).color(r, g, b, t).next();
BufferRenderer.drawWithShader(bufferBuilder.end()); bufferBuilder.end();
BufferRenderer.draw(bufferBuilder);
RenderSystem.enableTexture(); RenderSystem.enableTexture();
RenderSystem.disableBlend(); RenderSystem.disableBlend();
matrixStack.pop(); matrixStack.pop();

View File

@@ -15,6 +15,7 @@ import dev.lambdaurora.spruceui.widget.SpruceButtonWidget;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.toast.SystemToast; import net.minecraft.client.toast.SystemToast;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.function.Consumer; import java.util.function.Consumer;
@@ -34,7 +35,7 @@ public class ReloadControllerMappingsOption {
if (client.currentScreen instanceof MidnightControlsSettingsScreen) if (client.currentScreen instanceof MidnightControlsSettingsScreen)
client.currentScreen.init(client, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight()); client.currentScreen.init(client, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight());
client.getToastManager().add(SystemToast.create(client, SystemToast.Type.TUTORIAL_HINT, client.getToastManager().add(SystemToast.create(client, SystemToast.Type.TUTORIAL_HINT,
Text.translatable("midnightcontrols.controller.mappings.updated"), Text.empty())); new TranslatableText("midnightcontrols.controller.mappings.updated"), Text.of("")));
}, Text.translatable("midnightcontrols.tooltip.reload_controller_mappings")); }, new TranslatableText("midnightcontrols.tooltip.reload_controller_mappings"));
} }
} }

View File

@@ -13,6 +13,7 @@ import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
import eu.midnightdust.midnightcontrols.client.ring.RingPage; import eu.midnightdust.midnightcontrols.client.ring.RingPage;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
/** /**
@@ -26,7 +27,7 @@ public class RingScreen extends Screen {
protected final MidnightControlsClient mod; protected final MidnightControlsClient mod;
public RingScreen() { public RingScreen() {
super(Text.literal("midnightcontrols.menu.title.ring")); super(new LiteralText("midnightcontrols.menu.title.ring"));
this.mod = MidnightControlsClient.get(); this.mod = MidnightControlsClient.get();
} }

View File

@@ -22,6 +22,7 @@ import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen;
import net.minecraft.client.gui.widget.TexturedButtonWidget; import net.minecraft.client.gui.widget.TexturedButtonWidget;
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Arm; import net.minecraft.util.Arm;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
@@ -51,7 +52,7 @@ public class TouchscreenOverlay extends Screen {
private SilentTexturedButtonWidget endSneakButton; private SilentTexturedButtonWidget endSneakButton;
public TouchscreenOverlay(@NotNull MidnightControlsClient mod) { public TouchscreenOverlay(@NotNull MidnightControlsClient mod) {
super(Text.literal("Touchscreen overlay")); super(new LiteralText("Touchscreen overlay"));
this.mod = mod; this.mod = mod;
this.passEvents = true; this.passEvents = true;
} }
@@ -155,13 +156,13 @@ public class TouchscreenOverlay extends Screen {
int scaledWidth = this.client.getWindow().getScaledWidth(); int scaledWidth = this.client.getWindow().getScaledWidth();
int scaledHeight = this.client.getWindow().getScaledHeight(); int scaledHeight = this.client.getWindow().getScaledHeight();
this.addDrawableChild(new TexturedButtonWidget(scaledWidth / 2 - 20, 0, 20, 20, 0, 106, 20, new Identifier("textures/gui/widgets.png"), 256, 256, this.addDrawableChild(new TexturedButtonWidget(scaledWidth / 2 - 20, 0, 20, 20, 0, 106, 20, new Identifier("textures/gui/widgets.png"), 256, 256,
btn -> this.client.setScreen(new ChatScreen("")), Text.empty())); btn -> this.client.setScreen(new ChatScreen("")), Text.of("")));
this.addDrawableChild(new TexturedButtonWidget(scaledWidth / 2, 0, 20, 20, 0, 0, 20, WIDGETS_LOCATION, 256, 256, this.addDrawableChild(new TexturedButtonWidget(scaledWidth / 2, 0, 20, 20, 0, 0, 20, WIDGETS_LOCATION, 256, 256,
btn -> this.pauseGame(false))); btn -> this.pauseGame(false)));
// Inventory buttons. // Inventory buttons.
int inventoryButtonX = scaledWidth / 2; int inventoryButtonX = scaledWidth / 2;
int inventoryButtonY = scaledHeight - 16 - 5; int inventoryButtonY = scaledHeight - 16 - 5;
if (this.client.options.getMainArm().getValue() == Arm.LEFT) { if (this.client.options.mainArm == Arm.LEFT) {
inventoryButtonX = inventoryButtonX - 91 - 24; inventoryButtonX = inventoryButtonX - 91 - 24;
} else { } else {
inventoryButtonX = inventoryButtonX + 91 + 4; inventoryButtonX = inventoryButtonX + 91 + 4;
@@ -187,7 +188,7 @@ public class TouchscreenOverlay extends Screen {
sneakButtonX = scaledWidth - 10 - 40 - 5; sneakButtonX = scaledWidth - 10 - 40 - 5;
} }
// Swap items hand. // Swap items hand.
this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(swapHandsX, sneakButtonY), 20, 20, Text.empty(), this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(swapHandsX, sneakButtonY), 20, 20, Text.of(""),
button -> { button -> {
if (button.isActive()) { if (button.isActive()) {
if (!this.client.player.isSpectator()) { if (!this.client.player.isSpectator()) {
@@ -196,23 +197,23 @@ public class TouchscreenOverlay extends Screen {
} }
},0, 160, 20, WIDGETS_LOCATION)); },0, 160, 20, WIDGETS_LOCATION));
// Drop // Drop
this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(swapHandsX, sneakButtonY + 5 + 20), 20, 20, Text.empty(), btn -> this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(swapHandsX, sneakButtonY + 5 + 20), 20, 20, Text.of(""), btn ->
((KeyBindingAccessor) this.client.options.dropKey).midnightcontrols$handlePressState(btn.isActive()), 0, 160, 20, WIDGETS_LOCATION)); ((KeyBindingAccessor) this.client.options.dropKey).midnightcontrols$handlePressState(btn.isActive()), 0, 160, 20, WIDGETS_LOCATION));
// Jump keys // Jump keys
this.addDrawableChild(this.jumpButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY), 20, 20, Text.empty(), this::handleJump, 0, 40, 20, WIDGETS_LOCATION)); this.addDrawableChild(this.jumpButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY), 20, 20, Text.of(""), this::handleJump, 0, 40, 20, WIDGETS_LOCATION));
this.addDrawableChild(this.flyButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY), 20, 20, Text.empty(),btn -> { this.addDrawableChild(this.flyButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY), 20, 20, Text.of(""),btn -> {
if (this.flyButtonEnableTicks == 0) this.client.player.getAbilities().flying = false; if (this.flyButtonEnableTicks == 0) this.client.player.getAbilities().flying = false;
}, 20, 40, 20, WIDGETS_LOCATION) }, 20, 40, 20, WIDGETS_LOCATION)
); );
this.addDrawableChild(this.flyUpButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY - 5 - 20), 20, 20,Text.empty(), this.addDrawableChild(this.flyUpButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY - 5 - 20), 20, 20,Text.of(""),
this::handleJump, 40, 40, 20, WIDGETS_LOCATION this::handleJump, 40, 40, 20, WIDGETS_LOCATION
)); ));
this.addDrawableChild(this.flyDownButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY + 20 + 5), 20, 20, Text.empty(), this.addDrawableChild(this.flyDownButton = new SilentTexturedButtonWidget(Position.of(jumpButtonX, sneakButtonY + 20 + 5), 20, 20, Text.of(""),
btn -> ((KeyBindingAccessor) this.client.options.sneakKey).midnightcontrols$handlePressState(btn.isActive()), 60, 40, 20, WIDGETS_LOCATION btn -> ((KeyBindingAccessor) this.client.options.sneakKey).midnightcontrols$handlePressState(btn.isActive()), 60, 40, 20, WIDGETS_LOCATION
)); ));
this.updateJumpButtons(); this.updateJumpButtons();
// Movements keys // Movements keys
this.addDrawableChild((this.startSneakButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY), 20, 20, Text.empty(), btn -> { this.addDrawableChild((this.startSneakButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY), 20, 20, Text.of(""), btn -> {
if (btn.isActive()) { if (btn.isActive()) {
((KeyBindingAccessor) this.client.options.sneakKey).midnightcontrols$handlePressState(true); ((KeyBindingAccessor) this.client.options.sneakKey).midnightcontrols$handlePressState(true);
this.startSneakButton.setVisible(false); this.startSneakButton.setVisible(false);
@@ -220,7 +221,7 @@ public class TouchscreenOverlay extends Screen {
} }
}, 0, 120, 20, WIDGETS_LOCATION)) }, 0, 120, 20, WIDGETS_LOCATION))
); );
this.addDrawableChild((this.endSneakButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY), 20, 20, Text.empty(), btn -> { this.addDrawableChild((this.endSneakButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY), 20, 20, Text.of(""), btn -> {
if (btn.isActive()) { if (btn.isActive()) {
((KeyBindingAccessor) this.client.options.sneakKey).midnightcontrols$handlePressState(false); ((KeyBindingAccessor) this.client.options.sneakKey).midnightcontrols$handlePressState(false);
this.endSneakButton.setVisible(false); this.endSneakButton.setVisible(false);
@@ -228,34 +229,34 @@ public class TouchscreenOverlay extends Screen {
} }
}, 20, 120, 20, WIDGETS_LOCATION))); }, 20, 120, 20, WIDGETS_LOCATION)));
this.endSneakButton.setVisible(false); this.endSneakButton.setVisible(false);
this.addDrawableChild(this.forwardLeftButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX - 20 - 5, sneakButtonY - 5 - 20), 20, 20, Text.empty(), btn -> { this.addDrawableChild(this.forwardLeftButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX - 20 - 5, sneakButtonY - 5 - 20), 20, 20, Text.of(""), btn -> {
((KeyBindingAccessor) this.client.options.forwardKey).midnightcontrols$handlePressState(btn.isActive()); ((KeyBindingAccessor) this.client.options.forwardKey).midnightcontrols$handlePressState(btn.isActive());
((KeyBindingAccessor) this.client.options.leftKey).midnightcontrols$handlePressState(btn.isActive()); ((KeyBindingAccessor) this.client.options.leftKey).midnightcontrols$handlePressState(btn.isActive());
this.updateForwardButtonsState(btn.isActive()); this.updateForwardButtonsState(btn.isActive());
}, 80, 80, 20, WIDGETS_LOCATION }, 80, 80, 20, WIDGETS_LOCATION
)); ));
this.forwardLeftButton.setVisible(false); this.forwardLeftButton.setVisible(false);
this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY - 5 - 20), 20, 20, Text.empty(), btn -> { this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY - 5 - 20), 20, 20, Text.of(""), btn -> {
((KeyBindingAccessor) this.client.options.forwardKey).midnightcontrols$handlePressState(btn.isActive()); ((KeyBindingAccessor) this.client.options.forwardKey).midnightcontrols$handlePressState(btn.isActive());
this.updateForwardButtonsState(btn.isActive()); this.updateForwardButtonsState(btn.isActive());
this.forwardLeftButton.setVisible(true); this.forwardLeftButton.setVisible(true);
this.forwardRightButton.setVisible(true); this.forwardRightButton.setVisible(true);
}, 0, 80, 20, WIDGETS_LOCATION }, 0, 80, 20, WIDGETS_LOCATION
)); ));
this.addDrawableChild(this.forwardRightButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX + 20 + 5, sneakButtonY - 5 - 20), 20, 20, Text.empty(), btn -> { this.addDrawableChild(this.forwardRightButton = new SilentTexturedButtonWidget(Position.of(sneakButtonX + 20 + 5, sneakButtonY - 5 - 20), 20, 20, Text.of(""), btn -> {
((KeyBindingAccessor) this.client.options.forwardKey).midnightcontrols$handlePressState(btn.isActive()); ((KeyBindingAccessor) this.client.options.forwardKey).midnightcontrols$handlePressState(btn.isActive());
((KeyBindingAccessor) this.client.options.rightKey).midnightcontrols$handlePressState(btn.isActive()); ((KeyBindingAccessor) this.client.options.rightKey).midnightcontrols$handlePressState(btn.isActive());
this.updateForwardButtonsState(btn.isActive()); this.updateForwardButtonsState(btn.isActive());
}, 100, 80, 20, WIDGETS_LOCATION }, 100, 80, 20, WIDGETS_LOCATION
)); ));
this.forwardRightButton.setVisible(true); this.forwardRightButton.setVisible(true);
this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX + 20 + 5, sneakButtonY), 20, 20, Text.empty(), this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX + 20 + 5, sneakButtonY), 20, 20, Text.of(""),
btn -> ((KeyBindingAccessor) this.client.options.rightKey).midnightcontrols$handlePressState(btn.isActive()), 20, 80, 20, WIDGETS_LOCATION btn -> ((KeyBindingAccessor) this.client.options.rightKey).midnightcontrols$handlePressState(btn.isActive()), 20, 80, 20, WIDGETS_LOCATION
)); ));
this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY + 20 + 5), 20, 20, Text.empty(), this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX, sneakButtonY + 20 + 5), 20, 20, Text.of(""),
btn -> ((KeyBindingAccessor) this.client.options.backKey).midnightcontrols$handlePressState(btn.isActive()), 40, 80, 20, WIDGETS_LOCATION btn -> ((KeyBindingAccessor) this.client.options.backKey).midnightcontrols$handlePressState(btn.isActive()), 40, 80, 20, WIDGETS_LOCATION
)); ));
this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX - 20 - 5, sneakButtonY), 20, 20, Text.empty(), this.addDrawableChild(new SilentTexturedButtonWidget(Position.of(sneakButtonX - 20 - 5, sneakButtonY), 20, 20, Text.of(""),
btn -> ((KeyBindingAccessor) this.client.options.leftKey).midnightcontrols$handlePressState(btn.isActive()), 60, 80, 20, WIDGETS_LOCATION btn -> ((KeyBindingAccessor) this.client.options.leftKey).midnightcontrols$handlePressState(btn.isActive()), 60, 80, 20, WIDGETS_LOCATION
)); ));
} }

View File

@@ -16,6 +16,7 @@ import dev.lambdaurora.spruceui.SpruceTexts;
import dev.lambdaurora.spruceui.widget.AbstractSpruceIconButtonWidget; import dev.lambdaurora.spruceui.widget.AbstractSpruceIconButtonWidget;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -34,13 +35,13 @@ public class ControllerButtonWidget extends AbstractSpruceIconButtonWidget {
public void update() { public void update() {
int length = binding.getButton().length; int length = binding.getButton().length;
this.setMessage(this.binding.isNotBound() ? SpruceTexts.NOT_BOUND.copy() : this.setMessage(this.binding.isNotBound() ? SpruceTexts.NOT_BOUND.copy() :
(length > 0 ? ButtonBinding.getLocalizedButtonName(binding.getButton()[0]) : Text.literal("<>"))); (length > 0 ? ButtonBinding.getLocalizedButtonName(binding.getButton()[0]) : new LiteralText("<>")));
} }
@Override @Override
public Text getMessage() { public Text getMessage() {
if (this.binding.getButton().length > 1) if (this.binding.getButton().length > 1)
return Text.empty(); return Text.of("");
return super.getMessage(); return super.getMessage();
} }

View File

@@ -21,6 +21,7 @@ import eu.midnightdust.midnightcontrols.client.gui.MidnightControlsSettingsScree
import net.minecraft.client.gui.screen.option.ControlsOptionsScreen; import net.minecraft.client.gui.screen.option.ControlsOptionsScreen;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.function.Predicates; import org.aperlambda.lambdacommon.utils.function.Predicates;
import java.util.ArrayList; import java.util.ArrayList;
@@ -47,7 +48,7 @@ public class ControllerControlsWidget extends SpruceContainerWidget {
protected void init() { protected void init() {
this.addChild(new SpruceButtonWidget(Position.of(this, this.width / 2 - 155, 18), 310, 20, this.addChild(new SpruceButtonWidget(Position.of(this, this.width / 2 - 155, 18), 310, 20,
Text.translatable("midnightcontrols.menu.keyboard_controls"), new TranslatableText("midnightcontrols.menu.keyboard_controls"),
btn -> this.client.setScreen(new ControlsOptionsScreen(null, this.client.options)))); btn -> this.client.setScreen(new ControlsOptionsScreen(null, this.client.options))));
this.bindingsListWidget = new ControlsListWidget(Position.of(this, 0, 43), this.width, this.height - 43 - 35, this); this.bindingsListWidget = new ControlsListWidget(Position.of(this, 0, 43), this.width, this.height - 43 - 35, this);
this.bindingsListWidget.setBackground(new MidnightControlsSettingsScreen.MidnightControlsBackground(130)); this.bindingsListWidget.setBackground(new MidnightControlsSettingsScreen.MidnightControlsBackground(130));
@@ -59,7 +60,7 @@ public class ControllerControlsWidget extends SpruceContainerWidget {
@Override @Override
public void renderWidget(MatrixStack matrices, int mouseX, int mouseY, float delta) { public void renderWidget(MatrixStack matrices, int mouseX, int mouseY, float delta) {
drawCenteredText(matrices, this.client.textRenderer, Text.translatable("midnightcontrols.menu.title.controller_controls"), drawCenteredText(matrices, this.client.textRenderer, new TranslatableText("midnightcontrols.menu.title.controller_controls"),
this.getX() + this.width / 2, this.getY() + 4, 16777215); this.getX() + this.width / 2, this.getY() + 4, 16777215);
this.resetButton.setActive(InputManager.streamBindings().anyMatch(Predicates.not(ButtonBinding::isDefault))); this.resetButton.setActive(InputManager.streamBindings().anyMatch(Predicates.not(ButtonBinding::isDefault)));
super.renderWidget(matrices, mouseX, mouseY, delta); super.renderWidget(matrices, mouseX, mouseY, delta);

View File

@@ -27,7 +27,9 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -91,17 +93,17 @@ public class ControlsListWidget extends SpruceEntryListWidget<ControlsListWidget
MidnightControlsClient.get().input.beginControlsInput(gui); MidnightControlsClient.get().input.beginControlsInput(gui);
}) { }) {
protected Text getNarrationMessage() { protected Text getNarrationMessage() {
return binding.isNotBound() ? Text.translatable("narrator.controls.unbound", bindingName) return binding.isNotBound() ? new TranslatableText("narrator.controls.unbound", bindingName)
: Text.translatable("narrator.controls.bound", bindingName, super.getNarrationMessage()); : new TranslatableText("narrator.controls.bound", bindingName, super.getNarrationMessage());
} }
}; };
this.children.add(editButton); this.children.add(editButton);
this.resetButton = new SpruceButtonWidget(Position.of(this, this.resetButton = new SpruceButtonWidget(Position.of(this,
this.editButton.getPosition().getRelativeX() + this.editButton.getWidth() + 2, 0), this.editButton.getPosition().getRelativeX() + this.editButton.getWidth() + 2, 0),
44, 20, Text.translatable("controls.reset"), 44, 20, new TranslatableText("controls.reset"),
btn -> MidnightControlsConfig.setButtonBinding(binding, binding.getDefaultButton())) { btn -> MidnightControlsConfig.setButtonBinding(binding, binding.getDefaultButton())) {
protected Text getNarrationMessage() { protected Text getNarrationMessage() {
return Text.translatable("narrator.controls.reset", bindingName); return new TranslatableText("narrator.controls.reset", bindingName);
} }
}; };
this.children.add(this.resetButton); this.children.add(this.resetButton);
@@ -114,7 +116,7 @@ public class ControlsListWidget extends SpruceEntryListWidget<ControlsListWidget
MidnightControlsClient.get().input.beginControlsInput(null); MidnightControlsClient.get().input.beginControlsInput(null);
}) { }) {
protected Text getNarrationMessage() { protected Text getNarrationMessage() {
return Text.translatable("midnightcontrols.narrator.unbound", bindingName); return new TranslatableText("midnightcontrols.narrator.unbound", bindingName);
} }
}; };
this.children.add(this.unbindButton); this.children.add(this.unbindButton);
@@ -241,9 +243,9 @@ public class ControlsListWidget extends SpruceEntryListWidget<ControlsListWidget
this.editButton.update(); this.editButton.update();
if (focused) { if (focused) {
var text = Text.literal("> ").formatted(Formatting.WHITE); var text = new LiteralText("> ").formatted(Formatting.WHITE);
text.append(this.editButton.getMessage().copy().formatted(Formatting.YELLOW)); text.append(this.editButton.getMessage().copy().formatted(Formatting.YELLOW));
this.editButton.setMessage(text.append(Text.literal(" <").formatted(Formatting.WHITE))); this.editButton.setMessage(text.append(new LiteralText(" <").formatted(Formatting.WHITE)));
} else if (!this.binding.isNotBound() && InputManager.hasDuplicatedBindings(this.binding)) { } else if (!this.binding.isNotBound() && InputManager.hasDuplicatedBindings(this.binding)) {
var text = this.editButton.getMessage().copy(); var text = this.editButton.getMessage().copy();
this.editButton.setMessage(text.formatted(Formatting.RED)); this.editButton.setMessage(text.formatted(Formatting.RED));
@@ -262,7 +264,7 @@ public class ControlsListWidget extends SpruceEntryListWidget<ControlsListWidget
protected CategoryEntry(ControlsListWidget parent, ButtonCategory category) { protected CategoryEntry(ControlsListWidget parent, ButtonCategory category) {
super(parent); super(parent);
this.separatorWidget = new SpruceSeparatorWidget(Position.of(this, 2, 0), this.getWidth() - 4, this.separatorWidget = new SpruceSeparatorWidget(Position.of(this, 2, 0), this.getWidth() - 4,
Text.literal(category.getTranslatedName())) { new LiteralText(category.getTranslatedName())) {
@Override @Override
public int getWidth() { public int getWidth() {
return CategoryEntry.this.getWidth() - 4; return CategoryEntry.this.getWidth() - 4;

View File

@@ -11,7 +11,6 @@ package eu.midnightdust.midnightcontrols.client.mixin;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import eu.midnightdust.midnightcontrols.MidnightControls; import eu.midnightdust.midnightcontrols.MidnightControls;
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
import eu.midnightdust.midnightcontrols.client.controller.MovementHandler; import eu.midnightdust.midnightcontrols.client.controller.MovementHandler;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
@@ -20,15 +19,12 @@ import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.MovementType; import net.minecraft.entity.MovementType;
import net.minecraft.network.encryption.PlayerPublicKey;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/** /**
@@ -38,8 +34,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity { public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity {
private boolean midnightcontrols$driftingPrevented = false; private boolean midnightcontrols$driftingPrevented = false;
public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile, @Nullable PlayerPublicKey publicKey) { public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) {
super(world, profile, publicKey); super(world, profile);
} }
@Shadow @Shadow
@@ -76,7 +72,7 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity
} }
} }
@Inject(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/input/Input;tick(ZF)V", shift = At.Shift.AFTER)) @Inject(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/input/Input;tick(Z)V", shift = At.Shift.AFTER))
public void onInputUpdate(CallbackInfo ci) { public void onInputUpdate(CallbackInfo ci) {
MovementHandler.HANDLER.applyMovement((ClientPlayerEntity) (Object) this); MovementHandler.HANDLER.applyMovement((ClientPlayerEntity) (Object) this);
} }

View File

@@ -18,6 +18,7 @@ import net.minecraft.client.gui.screen.option.GameOptionsScreen;
import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.option.GameOptions; import net.minecraft.client.option.GameOptions;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
@@ -39,7 +40,7 @@ public abstract class ControlsOptionsScreenMixin extends GameOptionsScreen {
if (showAlternativeButton) { if (showAlternativeButton) {
this.addDrawableChild(new TexturedOverlayButtonWidget(this.width / 2 + 158, this.height / 6 - 12, 20, 20,0,0,20, new Identifier("midnightcontrols", "textures/gui/midnightcontrols_button.png"), 32, 64, (button) -> { this.addDrawableChild(new TexturedOverlayButtonWidget(this.width / 2 + 158, this.height / 6 - 12, 20, 20,0,0,20, new Identifier("midnightcontrols", "textures/gui/midnightcontrols_button.png"), 32, 64, (button) -> {
this.client.setScreen(new MidnightControlsSettingsScreen(this, false)); this.client.setScreen(new MidnightControlsSettingsScreen(this, false));
}, Text.translatable("midnightcontrols.menu.title.controller"))); }, new TranslatableText("midnightcontrols.menu.title.controller")));
} }
} }
@Inject(method = "init", at = @At(value = "INVOKE", ordinal = 4, shift = At.Shift.AFTER, target = "Lnet/minecraft/client/gui/screen/option/ControlsOptionsScreen;addDrawableChild(Lnet/minecraft/client/gui/Element;)Lnet/minecraft/client/gui/Element;")) @Inject(method = "init", at = @At(value = "INVOKE", ordinal = 4, shift = At.Shift.AFTER, target = "Lnet/minecraft/client/gui/screen/option/ControlsOptionsScreen;addDrawableChild(Lnet/minecraft/client/gui/Element;)Lnet/minecraft/client/gui/Element;"))
@@ -48,7 +49,7 @@ public abstract class ControlsOptionsScreenMixin extends GameOptionsScreen {
int i = this.width / 2 - 155; int i = this.width / 2 - 155;
int j = i + 160; int j = i + 160;
int k = this.height / 6 - 12 + 48; int k = this.height / 6 - 12 + 48;
this.addDrawableChild(new ButtonWidget(j, k, 150, 20, Text.translatable("midnightcontrols.menu.title.controller").append("..."), (button) -> { this.addDrawableChild(new ButtonWidget(j, k, 150, 20, new TranslatableText("midnightcontrols.menu.title.controller").append("..."), (button) -> {
this.client.setScreen(new MidnightControlsSettingsScreen(this, false)); this.client.setScreen(new MidnightControlsSettingsScreen(this, false));
})); }));
} }

View File

@@ -10,8 +10,7 @@
package eu.midnightdust.midnightcontrols.client.mixin; package eu.midnightdust.midnightcontrols.client.mixin;
import net.minecraft.client.option.GameOptions; import net.minecraft.client.option.GameOptions;
import net.minecraft.client.option.SimpleOption; import net.minecraft.client.option.Option;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
@@ -26,11 +25,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(GameOptions.class) @Mixin(GameOptions.class)
public abstract class GameOptionsMixin { public abstract class GameOptionsMixin {
@Shadow public abstract SimpleOption<Boolean> getAutoJump(); @Shadow public boolean autoJump;
@Inject(method = "load", at = @At("HEAD")) @Inject(method = "load", at = @At("HEAD"))
public void onInit(CallbackInfo ci) { public void onInit(CallbackInfo ci) {
// Set default value of the Auto-Jump option to false. // Set default value of the Auto-Jump option to false.
getAutoJump().setValue(false); autoJump = false;
} }
} }

View File

@@ -22,6 +22,7 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.Slot;
import net.minecraft.screen.slot.SlotActionType; import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -59,7 +60,7 @@ public abstract class HandledScreenMixin implements HandledScreenAccessor {
public void onRender(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo ci) { public void onRender(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo ci) {
if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER) { if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER) {
var client = MinecraftClient.getInstance(); var client = MinecraftClient.getInstance();
if (client.options.getGuiScale().getValue() >= 4) { if (client.options.guiScale >= 4) {
scale = 0.75f; scale = 0.75f;
} else scale = 1f; } else scale = 1f;
matrices.push(); matrices.push();
@@ -75,8 +76,8 @@ public abstract class HandledScreenMixin implements HandledScreenAccessor {
y -= 24; y -= 24;
} }
if (MidnightControlsCompat.isEMIPresent()) { if (MidnightControlsCompat.isEMIPresent()) {
x = (int) (client.getWindow().getScaledWidth() * (1 / scale) - 55 - client.textRenderer.getWidth(Text.translatable("midnightcontrols.action.pickup")) x = (int) (client.getWindow().getScaledWidth() * (1 / scale) - 55 - client.textRenderer.getWidth(new TranslatableText("midnightcontrols.action.pickup"))
* (1 / scale) - client.textRenderer.getWidth(Text.translatable("midnightcontrols.action.quick_move")) * (1 / scale) - client.textRenderer.getWidth(new TranslatableText("midnightcontrols.action.quick_move"))
- MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.TAKE) - MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.QUICK_MOVE)); - MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.TAKE) - MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.QUICK_MOVE));
} }
x = MidnightControlsRenderer.drawButtonTip(matrices, x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_X}, "midnightcontrols.action.pickup", true, client); x = MidnightControlsRenderer.drawButtonTip(matrices, x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_X}, "midnightcontrols.action.pickup", true, client);

View File

@@ -61,6 +61,7 @@ public abstract class MinecraftClientMixin {
@Shadow @Shadow
private int itemUseCooldown; private int itemUseCooldown;
@Shadow @Nullable public ClientWorld world;
private BlockPos midnightcontrols$lastTargetPos; private BlockPos midnightcontrols$lastTargetPos;
private Vec3d midnightcontrols$lastPos; private Vec3d midnightcontrols$lastPos;
private Direction midnightcontrols$lastTargetSide; private Direction midnightcontrols$lastTargetSide;
@@ -150,7 +151,7 @@ public abstract class MinecraftClientMixin {
hitResult = mod.reacharound.withSideForReacharound(hitResult, stackInHand); hitResult = mod.reacharound.withSideForReacharound(hitResult, stackInHand);
int previousStackCount = stackInHand.getCount(); int previousStackCount = stackInHand.getCount();
var result = this.interactionManager.interactBlock(this.player, hand, hitResult); var result = this.interactionManager.interactBlock(this.player, world, hand, hitResult);
if (result.isAccepted()) { if (result.isAccepted()) {
if (result.shouldSwingHand()) { if (result.shouldSwingHand()) {
this.player.swingHand(hand); this.player.swingHand(hand);

View File

@@ -16,6 +16,7 @@ import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.option.KeyBinding; import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -49,7 +50,7 @@ public class KeyBindingRingAction extends RingAction {
@Override @Override
public void drawIcon(@NotNull MatrixStack matrices, @NotNull TextRenderer textRenderer, int x, int y, boolean hovered) { public void drawIcon(@NotNull MatrixStack matrices, @NotNull TextRenderer textRenderer, int x, int y, boolean hovered) {
drawCenteredText(matrices, textRenderer, Text.translatable(this.getName()), x + 25, y + 25 - textRenderer.fontHeight / 2, 0xffffff); drawCenteredText(matrices, textRenderer, new TranslatableText(this.getName()), x + 25, y + 25 - textRenderer.fontHeight / 2, 0xffffff);
} }
protected static class Factory implements RingAction.Factory { protected static class Factory implements RingAction.Factory {

View File

@@ -15,6 +15,7 @@ import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.Nameable; import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -42,7 +43,7 @@ public abstract class RingAction extends DrawableHelper implements Nameable {
* @return the text name * @return the text name
*/ */
public Text getTextName() { public Text getTextName() {
return Text.translatable(this.getName()); return new TranslatableText(this.getName());
} }
/** /**

View File

@@ -10,6 +10,7 @@
package eu.midnightdust.midnightcontrols.client.ring; package eu.midnightdust.midnightcontrols.client.ring;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import org.aperlambda.lambdacommon.utils.Nameable; import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -30,7 +31,7 @@ public enum RingButtonMode implements Nameable {
RingButtonMode(@NotNull String name) { RingButtonMode(@NotNull String name) {
this.name = name; this.name = name;
this.text = Text.translatable(this.getTranslationKey()); this.text = new TranslatableText(this.getTranslationKey());
} }
/** /**

View File

@@ -4,7 +4,7 @@
"key.midnightcontrols.look_left": "Look left", "key.midnightcontrols.look_left": "Look left",
"key.midnightcontrols.look_right": "Look right", "key.midnightcontrols.look_right": "Look right",
"key.midnightcontrols.look_up": "Look up", "key.midnightcontrols.look_up": "Look up",
"key.midnightcontrols.ring": "Show controls ring", "key.midnightcontrols.ring": "Show radial menu",
"midnightcontrols.action.attack": "Attack", "midnightcontrols.action.attack": "Attack",
"midnightcontrols.action.back": "Back", "midnightcontrols.action.back": "Back",
"midnightcontrols.action.chat": "Open Chat", "midnightcontrols.action.chat": "Open Chat",
@@ -80,7 +80,7 @@
"midnightcontrols.axis.right_x-": "Right X-", "midnightcontrols.axis.right_x-": "Right X-",
"midnightcontrols.axis.right_y-": "Right Y-", "midnightcontrols.axis.right_y-": "Right Y-",
"midnightcontrols.button.unknown": "Unknown (%d)", "midnightcontrols.button.unknown": "Unknown (%d)",
"midnightcontrols.controller.tutorial.title": "Play the game with a Controller!", "midnightcontrols.controller.tutorial.title": "Play the game with a controller!",
"midnightcontrols.controller.tutorial.description": "Go to %s -> %s -> %s", "midnightcontrols.controller.tutorial.description": "Go to %s -> %s -> %s",
"midnightcontrols.controller.connected": "Controller %d connected.", "midnightcontrols.controller.connected": "Controller %d connected.",
"midnightcontrols.controller.disconnected": "Controller %d disconnected.", "midnightcontrols.controller.disconnected": "Controller %d disconnected.",
@@ -90,19 +90,19 @@
"midnightcontrols.controller.mappings.error.write": "Error while writing mappings to file.", "midnightcontrols.controller.mappings.error.write": "Error while writing mappings to file.",
"midnightcontrols.controller.mappings.updated": "Updated mappings!", "midnightcontrols.controller.mappings.updated": "Updated mappings!",
"midnightcontrols.controller_type.default": "Default", "midnightcontrols.controller_type.default": "Default",
"midnightcontrols.controller_type.dualshock": "DualShock", "midnightcontrols.controller_type.dualshock": "DualShock 4",
"midnightcontrols.controller_type.dualsense": "DualSense", "midnightcontrols.controller_type.dualsense": "DualSense",
"midnightcontrols.controller_type.switch": "Switch", "midnightcontrols.controller_type.switch": "Switch (Pro) Controller",
"midnightcontrols.controller_type.xbox": "Xbox", "midnightcontrols.controller_type.xbox": "Xbox One/Series Controller",
"midnightcontrols.controller_type.xbox_360": "Xbox 360", "midnightcontrols.controller_type.xbox_360": "Xbox 360 Controller",
"midnightcontrols.controller_type.steam_controller": "Steam Controller", "midnightcontrols.controller_type.steam_controller": "Steam Controller",
"midnightcontrols.controller_type.steam_deck": "Steam Deck", "midnightcontrols.controller_type.steam_deck": "Steam Deck",
"midnightcontrols.controller_type.ouya": "OUYA", "midnightcontrols.controller_type.ouya": "OUYA Controller",
"midnightcontrols.controls_mode.default": "Keyboard/Mouse", "midnightcontrols.controls_mode.default": "Keyboard/Mouse",
"midnightcontrols.controls_mode.controller": "Controller", "midnightcontrols.controls_mode.controller": "Controller",
"midnightcontrols.controls_mode.touchscreen": "Touchscreen (WIP)", "midnightcontrols.controls_mode.touchscreen": "Touchscreen (WIP)",
"midnightcontrols.hud_side.left": "left", "midnightcontrols.hud_side.left": "Left",
"midnightcontrols.hud_side.right": "right", "midnightcontrols.hud_side.right": "Right",
"midnightcontrols.menu.analog_movement": "Analog Movement", "midnightcontrols.menu.analog_movement": "Analog Movement",
"midnightcontrols.menu.auto_switch_mode": "Auto Switch Mode", "midnightcontrols.menu.auto_switch_mode": "Auto Switch Mode",
"midnightcontrols.menu.controller": "Controller", "midnightcontrols.menu.controller": "Controller",
@@ -118,7 +118,7 @@
"midnightcontrols.menu.invert_right_x_axis": "Invert Right X", "midnightcontrols.menu.invert_right_x_axis": "Invert Right X",
"midnightcontrols.menu.invert_right_y_axis": "Invert Right Y", "midnightcontrols.menu.invert_right_y_axis": "Invert Right Y",
"midnightcontrols.menu.keyboard_controls": "Keyboard Controls...", "midnightcontrols.menu.keyboard_controls": "Keyboard Controls...",
"midnightcontrols.menu.left_dead_zone": "Left Dead Zone", "midnightcontrols.menu.left_dead_zone": "Left Stick Dead Zone",
"midnightcontrols.menu.mappings.open_input_str": "Open Mappings File Editor", "midnightcontrols.menu.mappings.open_input_str": "Open Mappings File Editor",
"midnightcontrols.menu.max_left_x_value": "Left X Axis Max Value", "midnightcontrols.menu.max_left_x_value": "Left X Axis Max Value",
"midnightcontrols.menu.max_left_y_value": "Left Y Axis Max Value", "midnightcontrols.menu.max_left_y_value": "Left Y Axis Max Value",
@@ -128,14 +128,14 @@
"midnightcontrols.menu.reacharound.horizontal": "Front Block Placing", "midnightcontrols.menu.reacharound.horizontal": "Front Block Placing",
"midnightcontrols.menu.reacharound.vertical": "Vertical Reacharound", "midnightcontrols.menu.reacharound.vertical": "Vertical Reacharound",
"midnightcontrols.menu.reload_controller_mappings": "Reload Controller Mappings", "midnightcontrols.menu.reload_controller_mappings": "Reload Controller Mappings",
"midnightcontrols.menu.right_dead_zone": "Right Dead Zone", "midnightcontrols.menu.right_dead_zone": "Right Stick Dead Zone",
"midnightcontrols.menu.rotation_speed": "X Axis Rotation Speed", "midnightcontrols.menu.rotation_speed": "X Axis Rotation Speed",
"midnightcontrols.menu.y_axis_rotation_speed": "Y Axis Rotation Speed", "midnightcontrols.menu.y_axis_rotation_speed": "Y Axis Rotation Speed",
"midnightcontrols.menu.separator.controller": "Controller", "midnightcontrols.menu.separator.controller": "Controller",
"midnightcontrols.menu.separator.general": "General", "midnightcontrols.menu.separator.general": "General",
"midnightcontrols.menu.title": "MidnightControls - Settings", "midnightcontrols.menu.title": "MidnightControls - Settings",
"midnightcontrols.menu.title.controller": "Controller Options", "midnightcontrols.menu.title.controller": "Controller Options",
"midnightcontrols.menu.title.controller_controls": "Controller Controls", "midnightcontrols.menu.title.controller_controls": "Controls",
"midnightcontrols.menu.title.gameplay": "Gameplay Options", "midnightcontrols.menu.title.gameplay": "Gameplay Options",
"midnightcontrols.menu.title.general": "General Options", "midnightcontrols.menu.title.general": "General Options",
"midnightcontrols.menu.title.hud": "HUD Options", "midnightcontrols.menu.title.hud": "HUD Options",
@@ -146,18 +146,18 @@
"midnightcontrols.menu.virtual_mouse.skin": "Virtual Mouse Skin", "midnightcontrols.menu.virtual_mouse.skin": "Virtual Mouse Skin",
"midnightcontrols.narrator.unbound": "Unbound %s", "midnightcontrols.narrator.unbound": "Unbound %s",
"midnightcontrols.not_bound": "Not bound", "midnightcontrols.not_bound": "Not bound",
"midnightcontrols.tooltip.analog_movement": "Enables analog movement when possible.", "midnightcontrols.tooltip.analog_movement": "When possible, enables analog movement.",
"midnightcontrols.tooltip.auto_switch_mode": "If the controls mode should be switched to Controller automatically if one is connected.", "midnightcontrols.tooltip.auto_switch_mode": "Whether the controls mode should be switched to Controller automatically if one is connected.",
"midnightcontrols.tooltip.controller2": "Second controller to use, which allows Joy-Cons support for example.", "midnightcontrols.tooltip.controller2": "Second controller to use, which allows (for example) Joy-Cons support.",
"midnightcontrols.tooltip.controller_type": "The controller type to display the correct buttons.", "midnightcontrols.tooltip.controller_type": "The controller type you're using (needed to display the correct buttons)",
"midnightcontrols.tooltip.controls_mode": "The controls mode.", "midnightcontrols.tooltip.controls_mode": "The controls mode.",
"midnightcontrols.tooltip.double_tap_to_sprint": "Toggles whether the Walk Forwards key makes the player sprint when quickly double-tapped", "midnightcontrols.tooltip.double_tap_to_sprint": "Toggles whether the Walk Forwards key makes the player sprint when double-tapped quickly",
"midnightcontrols.tooltip.fast_block_placing": "While flying in creative mode, enables fast block placing depending on your speed. §cOn some servers this might be considered as cheating.", "midnightcontrols.tooltip.fast_block_placing": "While flying in creative mode, enables fast block placing depending on your speed. §cOn some servers this might be considered as cheating.",
"midnightcontrols.tooltip.fly_drifting": "While flying, enables Vanilla drifting/inertia.", "midnightcontrols.tooltip.fly_drifting": "While flying, enables Vanilla drifting/inertia.",
"midnightcontrols.tooltip.fly_drifting_vertical": "While flying, enables Vanilla vertical drifting/intertia.", "midnightcontrols.tooltip.fly_drifting_vertical": "While flying, enables Vanilla vertical drifting/intertia.",
"midnightcontrols.tooltip.hud_enable": "Toggles the on-screen controller button indicator.", "midnightcontrols.tooltip.hud_enable": "Toggles the on-screen controller button indicator.",
"midnightcontrols.tooltip.hud_side": "The position of the HUD.", "midnightcontrols.tooltip.hud_side": "The position of the HUD.",
"midnightcontrols.tooltip.left_dead_zone": "The dead zone for the controller's left analogue stick.", "midnightcontrols.tooltip.left_dead_zone": "The dead zone for the controller's left analog stick.",
"midnightcontrols.tooltip.max_left_x_value": "Changes what the mod considers the highest value for the left X axis. Useful if your axis does not use the full range and seems slow.", "midnightcontrols.tooltip.max_left_x_value": "Changes what the mod considers the highest value for the left X axis. Useful if your axis does not use the full range and seems slow.",
"midnightcontrols.tooltip.max_left_y_value": "Changes what the mod considers the highest value for the left Y axis. Useful if your axis does not use the full range and seems slow.", "midnightcontrols.tooltip.max_left_y_value": "Changes what the mod considers the highest value for the left Y axis. Useful if your axis does not use the full range and seems slow.",
"midnightcontrols.tooltip.max_right_x_value": "Changes what the mod considers the highest value for the right X axis. Useful if your axis does not use the full range and seems slow.", "midnightcontrols.tooltip.max_right_x_value": "Changes what the mod considers the highest value for the right X axis. Useful if your axis does not use the full range and seems slow.",
@@ -166,11 +166,11 @@
"midnightcontrols.tooltip.reacharound.horizontal": "Enables front block placing, §cmight be considered cheating on some servers§r.", "midnightcontrols.tooltip.reacharound.horizontal": "Enables front block placing, §cmight be considered cheating on some servers§r.",
"midnightcontrols.tooltip.reacharound.vertical": "Enables vertical reacharound, §cmight be considered cheating on some servers§r.", "midnightcontrols.tooltip.reacharound.vertical": "Enables vertical reacharound, §cmight be considered cheating on some servers§r.",
"midnightcontrols.tooltip.reload_controller_mappings": "Reloads the controller mappings file.", "midnightcontrols.tooltip.reload_controller_mappings": "Reloads the controller mappings file.",
"midnightcontrols.tooltip.right_dead_zone": "The dead zone for the controller's right analogue stick.", "midnightcontrols.tooltip.right_dead_zone": "The dead zone for the controller's right analog stick.",
"midnightcontrols.tooltip.rotation_speed": "The camera X Axis rotation speed in controller mode.", "midnightcontrols.tooltip.rotation_speed": "The camera's X Axis rotation speed in controller mode.",
"midnightcontrols.tooltip.y_axis_rotation_speed": "The camera Y Axis rotation speed in controller mode.", "midnightcontrols.tooltip.y_axis_rotation_speed": "The camera's Y Axis rotation speed in controller mode.",
"midnightcontrols.tooltip.unfocused_input": "Allow controller input when the window is not focused.", "midnightcontrols.tooltip.unfocused_input": "Allows controller input when the window is not focused.",
"midnightcontrols.tooltip.virtual_mouse": "Enable the virtual mouse which is handful in the case of a splitscreen.", "midnightcontrols.tooltip.virtual_mouse": "Enables the virtual mouse which is useful ie during splitscreen.",
"midnightcontrols.virtual_mouse.skin.default_light": "Default Light", "midnightcontrols.virtual_mouse.skin.default_light": "Default Light",
"midnightcontrols.virtual_mouse.skin.default_dark": "Default Dark", "midnightcontrols.virtual_mouse.skin.default_dark": "Default Dark",
"midnightcontrols.virtual_mouse.skin.second_light": "Second Light", "midnightcontrols.virtual_mouse.skin.second_light": "Second Light",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -1,6 +1,6 @@
{ {
"pack": { "pack": {
"pack_format": 9, "pack_format": 8,
"description": "Makes the controller buttons look like from Bedrock Edition" "description": "Makes controller tooltips use similar icons to Bedrock Edition"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,6 +1,6 @@
{ {
"pack": { "pack": {
"pack_format": 9, "pack_format": 8,
"description": "Makes the controller buttons look like from Console Edition" "description": "Makes controller tooltips use similar icons to Legacy Console Edition"
} }
} }