Add new settings to options screen

This commit is contained in:
Martin Prokoph
2023-12-23 23:15:39 +01:00
parent 6df3e4454b
commit 2c11a23914
7 changed files with 31 additions and 4 deletions

View File

@@ -23,7 +23,7 @@ import eu.midnightdust.midnightcontrols.client.enums.ControllerType;
import eu.midnightdust.midnightcontrols.client.enums.HudSide; import eu.midnightdust.midnightcontrols.client.enums.HudSide;
import eu.midnightdust.midnightcontrols.client.enums.VirtualMouseSkin; import eu.midnightdust.midnightcontrols.client.enums.VirtualMouseSkin;
import eu.midnightdust.midnightcontrols.client.gui.RingScreen; import eu.midnightdust.midnightcontrols.client.gui.RingScreen;
import eu.midnightdust.midnightcontrols.client.touch.TouchMode; import eu.midnightdust.midnightcontrols.client.enums.TouchMode;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.advancement.AdvancementsScreen; import net.minecraft.client.gui.screen.advancement.AdvancementsScreen;

View File

@@ -1,5 +1,17 @@
package eu.midnightdust.midnightcontrols.client.enums; package eu.midnightdust.midnightcontrols.client.enums;
import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull;
public enum CameraMode { public enum CameraMode {
FLAT, ADAPTIVE FLAT, ADAPTIVE;
public Text getTranslatedText() {
return Text.translatable("midnightcontrols.midnightconfig.enum."+this.getClass().getSimpleName()+"."+this.name());
}
public @NotNull CameraMode next() {
var v = values();
if (v.length == this.ordinal() + 1)
return v[0];
return v[this.ordinal() + 1];
}
} }

View File

@@ -1,4 +1,4 @@
package eu.midnightdust.midnightcontrols.client.touch; package eu.midnightdust.midnightcontrols.client.enums;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@@ -125,6 +125,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
private final SpruceOption unfocusedInputOption; private final SpruceOption unfocusedInputOption;
private final SpruceOption invertsRightXAxis; private final SpruceOption invertsRightXAxis;
private final SpruceOption invertsRightYAxis; private final SpruceOption invertsRightYAxis;
private final SpruceOption cameraModeOption;
private final SpruceOption toggleControllerProfileOption; private final SpruceOption toggleControllerProfileOption;
private final SpruceOption rightDeadZoneOption; private final SpruceOption rightDeadZoneOption;
private final SpruceOption leftDeadZoneOption; private final SpruceOption leftDeadZoneOption;
@@ -144,6 +145,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
); );
} }
// Touch options // Touch options
private final SpruceOption touchWithControllerOption;
private final SpruceOption touchSpeedOption; private final SpruceOption touchSpeedOption;
private final SpruceOption touchBreakDelayOption; private final SpruceOption touchBreakDelayOption;
private final SpruceOption invertTouchOption; private final SpruceOption invertTouchOption;
@@ -268,6 +270,10 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
} }
}, Text.translatable("")); }, Text.translatable(""));
this.cameraModeOption = new SpruceCyclingOption("midnightcontrols.menu.camera_mode",
amount -> MidnightControlsConfig.cameraMode = MidnightControlsConfig.cameraMode.next(),
option -> option.getDisplayText(MidnightControlsConfig.cameraMode.getTranslatedText()),
Text.translatable("midnightcontrols.menu.camera_mode.tooltip"));
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 -> {
@@ -295,6 +301,8 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
amount -> MidnightControlsConfig.touchMode = MidnightControlsConfig.touchMode.next(), amount -> MidnightControlsConfig.touchMode = MidnightControlsConfig.touchMode.next(),
option -> option.getDisplayText(MidnightControlsConfig.touchMode.getTranslatedText()), option -> option.getDisplayText(MidnightControlsConfig.touchMode.getTranslatedText()),
Text.translatable("midnightcontrols.menu.touch_mode.tooltip")); Text.translatable("midnightcontrols.menu.touch_mode.tooltip"));
this.touchWithControllerOption = new SpruceToggleBooleanOption("midnightcontrols.menu.touch_with_controller", () -> MidnightControlsConfig.touchInControllerMode,
value -> MidnightControlsConfig.touchInControllerMode = value, Text.translatable("midnightcontrols.menu.touch_with_controller.tooltip"));
this.touchSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.touch_speed", 0.0, 150.0, .5f, this.touchSpeedOption = new SpruceDoubleOption("midnightcontrols.menu.touch_speed", 0.0, 150.0, .5f,
() -> MidnightControlsConfig.touchSpeed, () -> MidnightControlsConfig.touchSpeed,
value -> MidnightControlsConfig.touchSpeed = value, option -> option.getDisplayText(Text.literal(String.valueOf(option.get()))), value -> MidnightControlsConfig.touchSpeed = value, option -> option.getDisplayText(Text.literal(String.valueOf(option.get()))),
@@ -447,6 +455,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
list.addSingleOptionEntry(this.secondControllerOption); list.addSingleOptionEntry(this.secondControllerOption);
list.addSingleOptionEntry(this.toggleControllerProfileOption); list.addSingleOptionEntry(this.toggleControllerProfileOption);
list.addSingleOptionEntry(this.unfocusedInputOption); list.addSingleOptionEntry(this.unfocusedInputOption);
list.addSingleOptionEntry(this.cameraModeOption);
list.addOptionEntry(this.invertsRightXAxis, this.invertsRightYAxis); list.addOptionEntry(this.invertsRightXAxis, this.invertsRightYAxis);
list.addSingleOptionEntry(this.rightDeadZoneOption); list.addSingleOptionEntry(this.rightDeadZoneOption);
list.addSingleOptionEntry(this.leftDeadZoneOption); list.addSingleOptionEntry(this.leftDeadZoneOption);
@@ -462,6 +471,7 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
var list = new SpruceOptionListWidget(Position.origin(), width, height); var list = new SpruceOptionListWidget(Position.origin(), width, height);
list.setBackground(new MidnightControlsBackground(130)); list.setBackground(new MidnightControlsBackground(130));
list.addSingleOptionEntry(this.touchSpeedOption); list.addSingleOptionEntry(this.touchSpeedOption);
list.addSingleOptionEntry(this.touchWithControllerOption);
list.addSingleOptionEntry(this.invertTouchOption); list.addSingleOptionEntry(this.invertTouchOption);
list.addSingleOptionEntry(new SpruceSeparatorOption("midnightcontrols.menu.title.hud", true, null)); list.addSingleOptionEntry(new SpruceSeparatorOption("midnightcontrols.menu.title.hud", true, null));
list.addSingleOptionEntry(this.touchModeOption); list.addSingleOptionEntry(this.touchModeOption);

View File

@@ -14,7 +14,7 @@ import eu.midnightdust.midnightcontrols.ControlsMode;
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient; import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
import eu.midnightdust.midnightcontrols.client.touch.TouchInput; import eu.midnightdust.midnightcontrols.client.touch.TouchInput;
import eu.midnightdust.midnightcontrols.client.touch.TouchMode; import eu.midnightdust.midnightcontrols.client.enums.TouchMode;
import eu.midnightdust.midnightcontrols.client.util.RainbowColor; import eu.midnightdust.midnightcontrols.client.util.RainbowColor;
import net.minecraft.block.ShapeContext; import net.minecraft.block.ShapeContext;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;

View File

@@ -1,6 +1,7 @@
package eu.midnightdust.midnightcontrols.client.touch; package eu.midnightdust.midnightcontrols.client.touch;
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
import eu.midnightdust.midnightcontrols.client.enums.TouchMode;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.entity.projectile.ProjectileUtil; import net.minecraft.entity.projectile.ProjectileUtil;

View File

@@ -21,6 +21,8 @@
"midnightcontrols.midnightconfig.enum.HudSide.RIGHT": "Right", "midnightcontrols.midnightconfig.enum.HudSide.RIGHT": "Right",
"midnightcontrols.midnightconfig.enum.TouchMode.CROSSHAIR": "At Crosshair", "midnightcontrols.midnightconfig.enum.TouchMode.CROSSHAIR": "At Crosshair",
"midnightcontrols.midnightconfig.enum.TouchMode.FINGER_POS": "Finger Position", "midnightcontrols.midnightconfig.enum.TouchMode.FINGER_POS": "Finger Position",
"midnightcontrols.midnightconfig.enum.CameraMode.FLAT": "Flat",
"midnightcontrols.midnightconfig.enum.CameraMode.ADAPTIVE": "Adaptive",
"key.midnightcontrols.look_down": "Look down", "key.midnightcontrols.look_down": "Look down",
"key.midnightcontrols.look_left": "Look left", "key.midnightcontrols.look_left": "Look left",
"key.midnightcontrols.look_right": "Look right", "key.midnightcontrols.look_right": "Look right",
@@ -133,6 +135,7 @@
"midnightcontrols.menu.analog_movement.tooltip": "When possible, enables analog movement.", "midnightcontrols.menu.analog_movement.tooltip": "When possible, enables analog movement.",
"midnightcontrols.menu.auto_switch_mode": "Auto Switch Mode", "midnightcontrols.menu.auto_switch_mode": "Auto Switch Mode",
"midnightcontrols.menu.auto_switch_mode.tooltip": "Whether the controls mode should be switched to Controller automatically if one is connected.", "midnightcontrols.menu.auto_switch_mode.tooltip": "Whether the controls mode should be switched to Controller automatically if one is connected.",
"midnightcontrols.menu.camera_mode": "Camera Mode",
"midnightcontrols.menu.controller": "Controller", "midnightcontrols.menu.controller": "Controller",
"midnightcontrols.menu.controller2": "Second Controller", "midnightcontrols.menu.controller2": "Second Controller",
"midnightcontrols.menu.controller2.tooltip": "Second controller to use, which allows (for example) Joy-Cons support.", "midnightcontrols.menu.controller2.tooltip": "Second controller to use, which allows (for example) Joy-Cons support.",
@@ -207,6 +210,7 @@
"midnightcontrols.menu.invert_touch": "Invert Touch Direction", "midnightcontrols.menu.invert_touch": "Invert Touch Direction",
"midnightcontrols.menu.touch_mode": "Touch Interaction Mode", "midnightcontrols.menu.touch_mode": "Touch Interaction Mode",
"midnightcontrols.menu.touch_transparency": "Touch HUD Transparency", "midnightcontrols.menu.touch_transparency": "Touch HUD Transparency",
"midnightcontrols.menu.touch_with_controller": "Touch in Controller mode",
"midnightcontrols.menu.unfocused_input": "Unfocused Input", "midnightcontrols.menu.unfocused_input": "Unfocused Input",
"midnightcontrols.menu.unfocused_input.tooltip": "Allows controller input when the window is not focused.", "midnightcontrols.menu.unfocused_input.tooltip": "Allows controller input when the window is not focused.",
"midnightcontrols.menu.virtual_mouse": "Virtual Mouse", "midnightcontrols.menu.virtual_mouse": "Virtual Mouse",