forked from Clones/Controlify
YACL 3.x port with new controller carousel select screen
This commit is contained in:
@ -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";
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user