forked from Clones/Controlify
server support
This commit is contained in:
@ -3,7 +3,6 @@ package dev.isxander.controlify.controller.joystick;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import dev.isxander.controlify.Controlify;
|
||||
import dev.isxander.controlify.bindings.ControllerBindings;
|
||||
import dev.isxander.controlify.controller.ControllerType;
|
||||
import dev.isxander.controlify.controller.hid.ControllerHIDService;
|
||||
@ -12,6 +11,7 @@ import dev.isxander.controlify.controller.joystick.mapping.RPJoystickMapping;
|
||||
import dev.isxander.controlify.rumble.RumbleCapable;
|
||||
import dev.isxander.controlify.rumble.RumbleManager;
|
||||
import dev.isxander.controlify.rumble.RumbleSource;
|
||||
import dev.isxander.controlify.utils.Log;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.util.List;
|
||||
@ -106,7 +106,7 @@ public class CompoundJoystickController implements JoystickController<JoystickCo
|
||||
if (newConfig != null) {
|
||||
this.config = newConfig;
|
||||
} else {
|
||||
Controlify.LOGGER.error("Could not set config for controller " + name() + " (" + uid() + ")! Using default config instead.");
|
||||
Log.LOGGER.error("Could not set config for controller " + name() + " (" + uid() + ")! Using default config instead.");
|
||||
this.config = defaultConfig();
|
||||
}
|
||||
this.config.setup(this);
|
||||
|
@ -1,11 +1,11 @@
|
||||
package dev.isxander.controlify.controller.joystick;
|
||||
|
||||
import dev.isxander.controlify.Controlify;
|
||||
import dev.isxander.controlify.controller.ControllerState;
|
||||
import dev.isxander.controlify.controller.joystick.mapping.JoystickMapping;
|
||||
import dev.isxander.controlify.controller.joystick.mapping.UnmappedJoystickMapping;
|
||||
import dev.isxander.controlify.debug.DebugProperties;
|
||||
import dev.isxander.controlify.utils.ControllerUtils;
|
||||
import dev.isxander.controlify.utils.Log;
|
||||
import dev.isxander.yacl3.api.NameableEnum;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
@ -131,10 +131,10 @@ public class JoystickState implements ControllerState {
|
||||
List<HatState> hats = Arrays.stream(mapping.hats()).map(hat -> hat.getHatState(data)).toList();
|
||||
|
||||
if (DebugProperties.PRINT_JOY_STATE) {
|
||||
Controlify.LOGGER.info("Printing joystick state for controller {}", joystick);
|
||||
Controlify.LOGGER.info(Arrays.stream(axes).map(axis -> axis.name().getString() + ": " + axis.getAxis(data)).toList().toString());
|
||||
Controlify.LOGGER.info(Arrays.stream(mapping.buttons()).map(button -> button.name().getString() + ": " + button.isPressed(data)).toList().toString());
|
||||
Controlify.LOGGER.info(Arrays.stream(mapping.hats()).map(hat -> hat.name().getString() + ": " + hat.getHatState(data)).toList().toString());
|
||||
Log.LOGGER.info("Printing joystick state for controller {}", joystick);
|
||||
Log.LOGGER.info(Arrays.stream(axes).map(axis -> axis.name().getString() + ": " + axis.getAxis(data)).toList().toString());
|
||||
Log.LOGGER.info(Arrays.stream(mapping.buttons()).map(button -> button.name().getString() + ": " + button.isPressed(data)).toList().toString());
|
||||
Log.LOGGER.info(Arrays.stream(mapping.hats()).map(hat -> hat.name().getString() + ": " + hat.getHatState(data)).toList().toString());
|
||||
}
|
||||
|
||||
return new JoystickState(joystick.mapping(), deadzoneAxes, rawAxes, buttons, hats);
|
||||
|
@ -2,9 +2,6 @@ package dev.isxander.controlify.controller.joystick;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import dev.isxander.controlify.Controlify;
|
||||
import dev.isxander.controlify.InputMode;
|
||||
import dev.isxander.controlify.api.ControlifyApi;
|
||||
import dev.isxander.controlify.bindings.ControllerBindings;
|
||||
import dev.isxander.controlify.controller.AbstractController;
|
||||
import dev.isxander.controlify.controller.hid.ControllerHIDService;
|
||||
@ -13,6 +10,7 @@ import dev.isxander.controlify.controller.joystick.mapping.JoystickMapping;
|
||||
import dev.isxander.controlify.controller.sdl2.SDL2NativesManager;
|
||||
import dev.isxander.controlify.rumble.RumbleManager;
|
||||
import dev.isxander.controlify.rumble.RumbleSource;
|
||||
import dev.isxander.controlify.utils.Log;
|
||||
import org.libsdl.SDL;
|
||||
|
||||
import java.util.Objects;
|
||||
@ -106,7 +104,7 @@ public class SingleJoystickController extends AbstractController<JoystickState,
|
||||
// the duration doesn't matter because we are not updating the joystick state,
|
||||
// so there is never any SDL check to stop the rumble after the desired time.
|
||||
if (!SDL.SDL_JoystickRumbleTriggers(ptrJoystick, (int)(strongMagnitude * 65535.0F), (int)(weakMagnitude * 65535.0F), 1)) {
|
||||
Controlify.LOGGER.error("Could not rumble controller " + name() + ": " + SDL.SDL_GetError());
|
||||
Log.LOGGER.error("Could not rumble controller " + name() + ": " + SDL.SDL_GetError());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -1,11 +1,11 @@
|
||||
package dev.isxander.controlify.controller.joystick.mapping;
|
||||
|
||||
import dev.isxander.controlify.Controlify;
|
||||
import dev.isxander.controlify.bindings.JoystickAxisBind;
|
||||
import dev.isxander.controlify.controller.ControllerType;
|
||||
import dev.isxander.controlify.controller.joystick.JoystickController;
|
||||
import dev.isxander.controlify.controller.joystick.JoystickState;
|
||||
import dev.isxander.controlify.controller.joystick.render.JoystickRenderer;
|
||||
import dev.isxander.controlify.utils.Log;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
@ -48,7 +48,7 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
hats = readHats(reader, type);
|
||||
}
|
||||
default -> {
|
||||
Controlify.LOGGER.warn("Unknown field in joystick mapping: " + name + ". Expected values: ['axes', 'buttons', 'hats']");
|
||||
Log.LOGGER.warn("Unknown field in joystick mapping: " + name + ". Expected values: ['axes', 'buttons', 'hats']");
|
||||
reader.skipValue();
|
||||
}
|
||||
}
|
||||
@ -111,7 +111,7 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
}
|
||||
default -> {
|
||||
reader.skipValue();
|
||||
Controlify.LOGGER.info("Unknown axis range property: " + rangeName + ". Expected are ['in', 'out']");
|
||||
Log.LOGGER.info("Unknown axis range property: " + rangeName + ". Expected are ['in', 'out']");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -135,7 +135,7 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
}
|
||||
default -> {
|
||||
reader.skipValue();
|
||||
Controlify.LOGGER.info("Unknown axis property: " + name + ". Expected are ['identifier', 'axis_names', 'ids', 'range', 'rest', 'deadzone']");
|
||||
Log.LOGGER.info("Unknown axis property: " + name + ". Expected are ['identifier', 'axis_names', 'ids', 'range', 'rest', 'deadzone']");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -166,7 +166,7 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
case "name" -> btnName = reader.nextString();
|
||||
default -> {
|
||||
reader.skipValue();
|
||||
Controlify.LOGGER.info("Unknown button property: " + name + ". Expected are ['button', 'name']");
|
||||
Log.LOGGER.info("Unknown button property: " + name + ". Expected are ['button', 'name']");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -214,11 +214,11 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
reader.endObject();
|
||||
|
||||
if (axisId == -1) {
|
||||
Controlify.LOGGER.error("No axis id defined for emulated hat " + hatName + "! Skipping.");
|
||||
Log.LOGGER.error("No axis id defined for emulated hat " + hatName + "! Skipping.");
|
||||
continue;
|
||||
}
|
||||
if (states.size() != JoystickState.HatState.values().length) {
|
||||
Controlify.LOGGER.error("Not all hat states are defined for emulated hat " + hatName + "! Skipping.");
|
||||
Log.LOGGER.error("Not all hat states are defined for emulated hat " + hatName + "! Skipping.");
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
}
|
||||
default -> {
|
||||
reader.skipValue();
|
||||
Controlify.LOGGER.info("Unknown hat property: " + name + ". Expected are ['hat', 'name']");
|
||||
Log.LOGGER.info("Unknown hat property: " + name + ". Expected are ['hat', 'name']");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -257,14 +257,14 @@ public class RPJoystickMapping implements JoystickMapping {
|
||||
public static JoystickMapping fromType(JoystickController<?> joystick) {
|
||||
var resource = Minecraft.getInstance().getResourceManager().getResource(new ResourceLocation("controlify", "mappings/" + joystick.type().mappingId() + ".json"));
|
||||
if (resource.isEmpty()) {
|
||||
Controlify.LOGGER.warn("No joystick mapping found for controller: '" + joystick.type().mappingId() + "'");
|
||||
Log.LOGGER.warn("No joystick mapping found for controller: '" + joystick.type().mappingId() + "'");
|
||||
return new UnmappedJoystickMapping(joystick.joystickId());
|
||||
}
|
||||
|
||||
try (var reader = JsonReader.json5(resource.get().openAsReader())) {
|
||||
return new RPJoystickMapping(reader, joystick.type());
|
||||
} catch (Exception e) {
|
||||
Controlify.LOGGER.error("Failed to load joystick mapping for controller: '" + joystick.type().mappingId() + "'", e);
|
||||
Log.LOGGER.error("Failed to load joystick mapping for controller: '" + joystick.type().mappingId() + "'", e);
|
||||
return new UnmappedJoystickMapping(joystick.joystickId());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user