forked from Clones/Controlify
✏️ Submit controller screen: Convert the don't show again checkbox to is controller functional question
This commit is contained in:
@ -6,10 +6,10 @@ import dev.isxander.controlify.Controlify;
|
|||||||
import dev.isxander.controlify.controller.Controller;
|
import dev.isxander.controlify.controller.Controller;
|
||||||
import dev.isxander.controlify.controller.ControllerType;
|
import dev.isxander.controlify.controller.ControllerType;
|
||||||
import dev.isxander.controlify.hid.HIDDevice;
|
import dev.isxander.controlify.hid.HIDDevice;
|
||||||
|
import dev.isxander.controlify.utils.ClientUtils;
|
||||||
import dev.isxander.controlify.utils.Log;
|
import dev.isxander.controlify.utils.Log;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.gui.Font;
|
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.*;
|
import net.minecraft.client.gui.components.*;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
@ -28,7 +28,7 @@ public class SubmitUnknownControllerScreen extends Screen {
|
|||||||
|
|
||||||
private final Controller<?, ?> controller;
|
private final Controller<?, ?> controller;
|
||||||
|
|
||||||
private Checkbox dontShowAgain;
|
private Checkbox operationalCheckbox;
|
||||||
|
|
||||||
private final Screen lastScreen;
|
private final Screen lastScreen;
|
||||||
|
|
||||||
@ -73,15 +73,16 @@ public class SubmitUnknownControllerScreen extends Screen {
|
|||||||
content.setY(y);
|
content.setY(y);
|
||||||
y += content.getHeight() + checkboxPadding;
|
y += content.getHeight() + checkboxPadding;
|
||||||
|
|
||||||
var dontShowAgainText = Component.translatable("controlify.controller_submission.dont_show_again");
|
var operationalText = Component.translatable("controlify.controller_submission.operational_checkbox")
|
||||||
this.dontShowAgain = this.addRenderableWidget(
|
.withStyle(ChatFormatting.BOLD);
|
||||||
|
this.operationalCheckbox = this.addRenderableWidget(
|
||||||
new Checkbox(
|
new Checkbox(
|
||||||
this.width / 2 - font.width(dontShowAgainText) / 2 - 8,
|
this.width / 2 - font.width(operationalText) / 2 - 8,
|
||||||
y,
|
y,
|
||||||
150,
|
150,
|
||||||
checkboxHeight,
|
checkboxHeight,
|
||||||
Component.translatable("controlify.controller_submission.dont_show_again"),
|
operationalText,
|
||||||
false
|
true
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
y += checkboxHeight + checkboxPadding;
|
y += checkboxHeight + checkboxPadding;
|
||||||
@ -173,6 +174,7 @@ public class SubmitUnknownControllerScreen extends Screen {
|
|||||||
object.addProperty("GUID", GLFW.glfwGetJoystickGUID(controller.joystickId()));
|
object.addProperty("GUID", GLFW.glfwGetJoystickGUID(controller.joystickId()));
|
||||||
object.addProperty("reportedName", nameField.getValue());
|
object.addProperty("reportedName", nameField.getValue());
|
||||||
object.addProperty("controlifyVersion", FabricLoader.getInstance().getModContainer("controlify").orElseThrow().getMetadata().getVersion().getFriendlyString());
|
object.addProperty("controlifyVersion", FabricLoader.getInstance().getModContainer("controlify").orElseThrow().getMetadata().getVersion().getFriendlyString());
|
||||||
|
object.addProperty("operational", operationalCheckbox.selected());
|
||||||
|
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
return gson.toJson(object);
|
return gson.toJson(object);
|
||||||
@ -189,9 +191,7 @@ public class SubmitUnknownControllerScreen extends Screen {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClose() {
|
public void onClose() {
|
||||||
if (dontShowAgain.selected()) {
|
|
||||||
dontShowAgain();
|
dontShowAgain();
|
||||||
}
|
|
||||||
|
|
||||||
Controlify.instance().config().saveIfDirty();
|
Controlify.instance().config().saveIfDirty();
|
||||||
minecraft.setScreen(lastScreen);
|
minecraft.setScreen(lastScreen);
|
||||||
@ -202,10 +202,6 @@ public class SubmitUnknownControllerScreen extends Screen {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static StringWidget createStringWidget(Component text, Font font, int x, int y) {
|
|
||||||
return new StringWidget(x, y, font.width(text.getVisualOrderText()), font.lineHeight, text, font);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean canSubmit(Controller<?, ?> controller) {
|
public static boolean canSubmit(Controller<?, ?> controller) {
|
||||||
return controller.type() == ControllerType.UNKNOWN
|
return controller.type() == ControllerType.UNKNOWN
|
||||||
&& !controller.config().dontShowControllerSubmission
|
&& !controller.config().dontShowControllerSubmission
|
||||||
|
Reference in New Issue
Block a user