1
0
forked from Clones/Controlify

YACL 3.x port with new controller carousel select screen

This commit is contained in:
isXander
2023-05-29 07:04:30 +01:00
parent 74880ad17a
commit b8c38cefc2
24 changed files with 976 additions and 526 deletions

View File

@ -7,6 +7,8 @@ import dev.isxander.controlify.controller.hid.ControllerHIDService;
import dev.isxander.controlify.rumble.RumbleCapable;
import dev.isxander.controlify.rumble.RumbleManager;
import dev.isxander.controlify.rumble.RumbleSource;
import net.minecraft.resources.ResourceLocation;
import java.util.Optional;
public interface Controller<S extends ControllerState, C extends ControllerConfig> {
@ -41,6 +43,8 @@ public interface Controller<S extends ControllerState, C extends ControllerConfi
Optional<ControllerHIDService.ControllerHIDInfo> hidInfo();
ResourceLocation icon();
default boolean canBeUsed() {
return true;
}
@ -116,6 +120,11 @@ public interface Controller<S extends ControllerState, C extends ControllerConfi
return Optional.empty();
}
@Override
public ResourceLocation icon() {
return null;
}
@Override
public String name() {
return "DUMMY";

View File

@ -1,5 +1,6 @@
package dev.isxander.controlify.controller.gamepad;
import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.bindings.ControllerBindings;
import dev.isxander.controlify.controller.AbstractController;
import dev.isxander.controlify.controller.BatteryLevel;
@ -7,6 +8,7 @@ import dev.isxander.controlify.controller.hid.ControllerHIDService;
import dev.isxander.controlify.driver.*;
import dev.isxander.controlify.rumble.RumbleManager;
import dev.isxander.controlify.rumble.RumbleSource;
import net.minecraft.resources.ResourceLocation;
import org.lwjgl.glfw.GLFW;
import java.util.Set;
@ -113,4 +115,10 @@ public class GamepadController extends AbstractController<GamepadState, GamepadC
public void close() {
uniqueDrivers.forEach(Driver::close);
}
@Override
public ResourceLocation icon() {
String theme = config().theme == BuiltinGamepadTheme.DEFAULT ? type().themeId() : config().theme.id();
return Controlify.id("textures/gui/gamepad/" + theme + "/icon.png");
}
}

View File

@ -1,14 +1,21 @@
package dev.isxander.controlify.controller.joystick;
import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.controller.Controller;
import dev.isxander.controlify.controller.joystick.JoystickConfig;
import dev.isxander.controlify.controller.joystick.JoystickState;
import dev.isxander.controlify.controller.joystick.mapping.JoystickMapping;
import dev.isxander.controlify.controller.joystick.mapping.UnmappedJoystickMapping;
import net.minecraft.resources.ResourceLocation;
public interface JoystickController<T extends JoystickConfig> extends Controller<JoystickState, T> {
JoystickMapping mapping();
@Override
default ResourceLocation icon() {
return Controlify.id("textures/gui/joystick/icon.png");
}
@Deprecated
int axisCount();
@Deprecated