1
0
forked from Clones/Controlify

refactor button guide, bindings and controller identification

This commit is contained in:
isXander
2023-02-19 21:56:14 +00:00
parent 23c048f401
commit 0f719c0f45
21 changed files with 334 additions and 220 deletions

View File

@ -2,6 +2,7 @@ package dev.isxander.controlify.config.gui;
import com.mojang.blaze3d.vertex.PoseStack;
import dev.isxander.controlify.bindings.GamepadBind;
import dev.isxander.controlify.bindings.GamepadBinds;
import dev.isxander.controlify.bindings.IBind;
import dev.isxander.controlify.controller.gamepad.GamepadController;
import dev.isxander.controlify.controller.gamepad.GamepadState;
@ -56,7 +57,7 @@ public class GamepadBindController implements Controller<IBind<GamepadState>> {
textRenderer.drawShadow(matrices, awaitingText, getDimension().xLimit() - textRenderer.width(awaitingText) - getXPadding(), getDimension().centerY() - textRenderer.lineHeight / 2f, 0xFFFFFF);
} else {
var bind = control.option().pendingValue();
bind.draw(matrices, getDimension().xLimit() - bind.drawSize().width(), getDimension().centerY(), control.controller);
bind.draw(matrices, getDimension().xLimit() - bind.drawSize().width(), getDimension().centerY());
}
}
@ -97,8 +98,9 @@ public class GamepadBindController implements Controller<IBind<GamepadState>> {
var gamepad = control.controller;
for (var bind : GamepadBind.values()) {
if (bind.held(gamepad.state(), gamepad) && !bind.held(gamepad.prevState(), gamepad)) {
for (var bindType : GamepadBinds.values()) {
GamepadBind bind = bindType.forGamepad(gamepad);
if (bind.held(gamepad.state()) && !bind.held(gamepad.prevState())) {
control.option().requestSet(bind);
awaitingControllerInput = false;
gamepad.consumeButtonState();

View File

@ -59,7 +59,7 @@ public class JoystickBindController implements Controller<IBind<JoystickState>>
textRenderer.drawShadow(matrices, awaitingText, getDimension().xLimit() - textRenderer.width(awaitingText) - getXPadding(), getDimension().centerY() - textRenderer.lineHeight / 2f, 0xFFFFFF);
} else {
var bind = control.option().pendingValue();
bind.draw(matrices, getDimension().xLimit() - bind.drawSize().width(), getDimension().centerY(), control.controller);
bind.draw(matrices, getDimension().xLimit() - bind.drawSize().width(), getDimension().centerY());
}
}

View File

@ -10,6 +10,7 @@ import dev.isxander.controlify.controller.gamepad.GamepadState;
import dev.isxander.controlify.controller.gamepad.BuiltinGamepadTheme;
import dev.isxander.controlify.controller.joystick.JoystickController;
import dev.isxander.controlify.controller.joystick.JoystickState;
import dev.isxander.controlify.controller.joystick.mapping.UnmappedJoystickMapping;
import dev.isxander.controlify.gui.screen.ControllerDeadzoneCalibrationScreen;
import dev.isxander.yacl.api.*;
import dev.isxander.yacl.gui.controllers.ActionController;
@ -66,6 +67,10 @@ public class YACLHelper {
yacl.category(globalCategory.build());
for (var controller : Controller.CONTROLLERS.values()) {
// if (controller instanceof JoystickController joystick && joystick.mapping() instanceof UnmappedJoystickMapping) {
// // PlaceholderCategory for onboarding
// }
var category = ConfigCategory.createBuilder();
category.name(Component.literal(controller.name()));