1
0
forked from Clones/Controlify

fix conflicting key/controller binds

This commit is contained in:
isXander
2023-02-01 15:52:42 +00:00
parent aa1f0ea286
commit 4d594684de

View File

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