1
0
forked from Clones/Controlify

✏️ Submit controller screen: Convert the don't show again checkbox to is controller functional question

This commit is contained in:
isXander
2023-08-04 23:40:31 +01:00
parent 34f729484b
commit f985b0e7a0

View File

@ -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