forked from Clones/Controlify
fix conflicting key/controller binds
This commit is contained in:
@ -1,6 +1,8 @@
|
|||||||
package dev.isxander.controlify.bindings;
|
package dev.isxander.controlify.bindings;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import dev.isxander.controlify.Controlify;
|
||||||
|
import dev.isxander.controlify.InputMode;
|
||||||
import dev.isxander.controlify.controller.Controller;
|
import dev.isxander.controlify.controller.Controller;
|
||||||
import dev.isxander.controlify.event.ControlifyEvents;
|
import dev.isxander.controlify.event.ControlifyEvents;
|
||||||
import dev.isxander.controlify.mixins.KeyMappingAccessor;
|
import dev.isxander.controlify.mixins.KeyMappingAccessor;
|
||||||
@ -44,6 +46,7 @@ public class ControllerBindings {
|
|||||||
ControlifyEvents.CONTROLLER_BIND_REGISTRY.invoker().onRegisterControllerBinds(this, controller);
|
ControlifyEvents.CONTROLLER_BIND_REGISTRY.invoker().onRegisterControllerBinds(this, controller);
|
||||||
|
|
||||||
ControlifyEvents.CONTROLLER_STATE_UPDATED.register(this::imitateVanillaClick);
|
ControlifyEvents.CONTROLLER_STATE_UPDATED.register(this::imitateVanillaClick);
|
||||||
|
ControlifyEvents.INPUT_MODE_CHANGED.register(mode -> KeyMapping.releaseAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
public BindingSupplier register(ControllerBinding binding) {
|
public BindingSupplier register(ControllerBinding binding) {
|
||||||
@ -76,6 +79,9 @@ public class ControllerBindings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void imitateVanillaClick(Controller controller) {
|
private void imitateVanillaClick(Controller controller) {
|
||||||
|
if (Controlify.getInstance().getCurrentInputMode() != InputMode.CONTROLLER)
|
||||||
|
return;
|
||||||
|
|
||||||
for (var binding : registry().values()) {
|
for (var binding : registry().values()) {
|
||||||
KeyMapping vanillaKey = binding.override();
|
KeyMapping vanillaKey = binding.override();
|
||||||
if (vanillaKey == null) continue;
|
if (vanillaKey == null) continue;
|
||||||
|
Reference in New Issue
Block a user