Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -177,10 +177,10 @@ manifests {
fabricModJson(sourceSets.fabric.get()) {
from(commonManifest)

entrypoint("modmenu", "dev.isxander.controlify.fabric.compatibility.ModMenuIntegration")
entrypoint("main", "dev.isxander.controlify.fabric.ControlifyBootstrap")
entrypoint("client", "dev.isxander.controlify.fabric.ControlifyBootstrap")
entrypoint("server", "dev.isxander.controlify.fabric.ControlifyBootstrap")
entrypoint("modmenu", "dev.isxander.controlify.fabric.impl.compatibility.ModMenuIntegration")
entrypoint("main", "dev.isxander.controlify.fabric.impl.ControlifyBootstrap")
entrypoint("client", "dev.isxander.controlify.fabric.impl.ControlifyBootstrap")
entrypoint("server", "dev.isxander.controlify.fabric.impl.ControlifyBootstrap")
dependency("fabricloader", REQUIRED, "[0.19,)")

mixin("controlify-platform.fabric.mixins.json")
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[versions]
fabric_loader = "0.19.3"
sdl_natives = "release-3.4.12"
sdl_java = "release-3.4.14-7"
sdl_java = "release-3.4.14-8"
steamdeck4j = "1.1.7"
quilt_parsers = "0.3.0"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric;
package dev.isxander.controlify.fabric.impl;

import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.fabric.platform.client.FabricPlatformClientImpl;
import dev.isxander.controlify.fabric.platform.FabricPlatformMainImpl;
import dev.isxander.controlify.platform.client.PlatformClientUtil;
import dev.isxander.controlify.platform.main.PlatformMainUtil;
import dev.isxander.controlify.server.ControlifyServer;
import dev.isxander.controlify.impl.Controlify;
import dev.isxander.controlify.fabric.impl.platform.client.FabricPlatformClientImpl;
import dev.isxander.controlify.fabric.impl.platform.FabricPlatformMainImpl;
import dev.isxander.controlify.impl.platform.client.PlatformClientUtil;
import dev.isxander.controlify.impl.platform.main.PlatformMainUtil;
import dev.isxander.controlify.impl.server.ControlifyServer;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.DedicatedServerModInitializer;
import net.fabricmc.api.ModInitializer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.compatibility;
package dev.isxander.controlify.fabric.impl.compatibility;

import dev.isxander.controlify.compatibility.CompatMixinPlatform;
import dev.isxander.controlify.impl.compatibility.CompatMixinPlatform;
import net.fabricmc.loader.api.FabricLoader;

public final class FabricCompatMixinPlatform implements CompatMixinPlatform {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.compatibility;
package dev.isxander.controlify.fabric.impl.compatibility;

//? if mod_menu {

import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import dev.isxander.controlify.gui.screen.ControlifySettingsScreen;
import dev.isxander.controlify.impl.gui.screen.ControlifySettingsScreen;

public class ModMenuIntegration implements ModMenuApi {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform;
package dev.isxander.controlify.fabric.impl.platform;

import dev.isxander.controlify.platform.EventHandler;
import dev.isxander.controlify.impl.platform.EventHandler;
import net.fabricmc.fabric.api.event.EventFactory;

public class FabricBackedEventHandler<T> implements EventHandler<T> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform;

import dev.isxander.controlify.api.entrypoint.ControlifyEntrypoint;
import dev.isxander.controlify.fabric.platform.network.C2SNetworkApiFabric;
import dev.isxander.controlify.fabric.platform.network.S2CNetworkApiFabric;
import dev.isxander.controlify.platform.Environment;
import dev.isxander.controlify.platform.main.PlatformMainUtilImpl;
import dev.isxander.controlify.platform.main.events.CommandRegistrationCallbackEvent;
import dev.isxander.controlify.platform.main.events.HandshakeCompletionEvent;
import dev.isxander.controlify.platform.main.events.PlayerJoinedEvent;
import dev.isxander.controlify.platform.network.C2SNetworkApi;
import dev.isxander.controlify.platform.network.S2CNetworkApi;
package dev.isxander.controlify.fabric.impl.platform;

import dev.isxander.controlify.impl.api.entrypoint.ControlifyEntrypoint;
import dev.isxander.controlify.fabric.impl.platform.network.C2SNetworkApiFabric;
import dev.isxander.controlify.fabric.impl.platform.network.S2CNetworkApiFabric;
import dev.isxander.controlify.impl.platform.Environment;
import dev.isxander.controlify.impl.platform.main.PlatformMainUtilImpl;
import dev.isxander.controlify.impl.platform.main.events.CommandRegistrationCallbackEvent;
import dev.isxander.controlify.impl.platform.main.events.HandshakeCompletionEvent;
import dev.isxander.controlify.impl.platform.main.events.PlayerJoinedEvent;
import dev.isxander.controlify.impl.platform.network.C2SNetworkApi;
import dev.isxander.controlify.impl.platform.network.S2CNetworkApi;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.networking.v1.FriendlyByteBufs;
import net.fabricmc.fabric.api.networking.v1.ServerLoginConnectionEvents;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform.client;
package dev.isxander.controlify.fabric.impl.platform.client;

import dev.isxander.controlify.platform.client.CreativeTabHelper;
import dev.isxander.controlify.impl.platform.client.CreativeTabHelper;
import net.fabricmc.fabric.api.client.creativetab.v1.FabricCreativeModeInventoryScreen;
import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen;
import net.minecraft.world.item.CreativeModeTab;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform.client;

import dev.isxander.controlify.platform.client.CreativeTabHelper;
import dev.isxander.controlify.platform.client.HudRenderLayer;
import dev.isxander.controlify.platform.client.PlatformClientUtilImpl;
import dev.isxander.controlify.platform.client.events.DisconnectedEvent;
import dev.isxander.controlify.platform.client.events.LifecycleEvent;
import dev.isxander.controlify.platform.client.events.ScreenRenderEvent;
import dev.isxander.controlify.platform.client.events.TickEvent;
import dev.isxander.controlify.platform.client.resource.ControlifyReloadListener;
package dev.isxander.controlify.fabric.impl.platform.client;

import dev.isxander.controlify.impl.platform.client.CreativeTabHelper;
import dev.isxander.controlify.impl.platform.client.HudRenderLayer;
import dev.isxander.controlify.impl.platform.client.PlatformClientUtilImpl;
import dev.isxander.controlify.impl.platform.client.events.DisconnectedEvent;
import dev.isxander.controlify.impl.platform.client.events.LifecycleEvent;
import dev.isxander.controlify.impl.platform.client.events.ScreenRenderEvent;
import dev.isxander.controlify.impl.platform.client.events.TickEvent;
import dev.isxander.controlify.impl.platform.client.resource.ControlifyReloadListener;
import dev.isxander.controlify.fabric.mixins.KeyBindingRegistryImplAccessor;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform.network;
package dev.isxander.controlify.fabric.impl.platform.network;

import dev.isxander.controlify.platform.network.C2SNetworkApi;
import dev.isxander.controlify.impl.platform.network.C2SNetworkApi;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform.network;
package dev.isxander.controlify.fabric.impl.platform.network;

import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.minecraft.network.FriendlyByteBuf;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
package dev.isxander.controlify.fabric.platform.network;
package dev.isxander.controlify.fabric.impl.platform.network;

import dev.isxander.controlify.platform.network.S2CNetworkApi;
import dev.isxander.controlify.impl.platform.network.S2CNetworkApi;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,9 @@
*/
package dev.isxander.controlify.gametest.framework;

import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.config.settings.GlobalSettings;
import dev.isxander.controlify.config.settings.profile.ProfileSettings;
import dev.isxander.controlify.controller.ControllerEntity;
import dev.isxander.controlify.controller.gyro.GyroState;
import dev.isxander.controlify.controllermanager.ControllerManager;
import dev.isxander.controlify.gametest.mixin.ControlifySettingsAccessor;
import dev.isxander.controlify.gametest.mixin.ToastInstanceAccessor;
import dev.isxander.controlify.gametest.mixin.ToastManagerAccessor;
import dev.isxander.controlify.utils.MinecraftUtil;
import dev.isxander.controlify.impl.utils.MinecraftUtil;
import net.fabricmc.fabric.api.client.gametest.v1.context.ClientGameTestContext;
import net.fabricmc.fabric.api.resource.v1.ResourceLoader;
import net.fabricmc.fabric.api.resource.v1.pack.PackActivationType;
Expand All @@ -36,10 +29,8 @@
import net.minecraft.world.entity.EntityType;
import org.jetbrains.annotations.Nullable;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;

@SuppressWarnings("UnstableApiUsage")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,18 @@
*/
package dev.isxander.controlify.gametest.framework.controller;

import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.InputMode;
import dev.isxander.controlify.config.settings.GlobalSettings;
import dev.isxander.controlify.config.settings.profile.ProfileSettings;
import dev.isxander.controlify.controller.ControllerEntity;
import dev.isxander.controlify.controller.gyro.GyroState;
import dev.isxander.controlify.controllermanager.ControllerManager;
import dev.isxander.controlify.impl.Controlify;
import dev.isxander.controlify.api.InputMode;
import dev.isxander.controlify.impl.config.settings.GlobalSettings;
import dev.isxander.controlify.impl.config.settings.profile.ProfileSettings;
import dev.isxander.controlify.impl.controller.ControllerImpl;
import dev.isxander.controlify.impl.controller.gyro.GyroState;
import dev.isxander.controlify.impl.controllermanager.ControllerManager;
import dev.isxander.controlify.gametest.mixin.ControlifySettingsAccessor;
import dev.isxander.controlify.gametest.mixin.SDLControllerManagerAccessor;
import dev.isxander.sdl.Sdl;
import net.fabricmc.fabric.api.client.gametest.v1.context.ClientGameTestContext;
import org.joml.Vector3f;

import java.util.List;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -66,19 +67,19 @@ public void resetSettings() {
.map(ControllerManager::getConnectedControllers)
.orElseGet(List::of);
var connectedUids = connectedControllers.stream()
.map(ControllerEntity::uid)
.map(ControllerImpl::uid)
.collect(Collectors.toSet());

// Keep the existing objects for connected devices because input
// components cache their DeviceSettings reference when attached.
var deviceSettings = settingsAccessor.controlify_test$getDeviceSettings();
deviceSettings.keySet().retainAll(connectedUids);
for (ControllerEntity controller : connectedControllers) {
for (ControllerImpl controller : connectedControllers) {
var device = settings.getOrCreateDeviceSettings(controller.uid());
device.name = controller.name();
device.lastSeen = System.currentTimeMillis();
device.controllerType = controller.info().type().namespace();
device.gyroCalibration.offset = new GyroState();
device.controllerType = controller.info().type().id();
device.gyroCalibration.offset = new Vector3f();
device.mapping = null;

controller.setSettings(profileDefaults);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/
package dev.isxander.controlify.gametest.framework.controller;

import dev.isxander.controlify.driver.dualsense.DualsenseEffectsState;
import dev.isxander.controlify.impl.driver.dualsense.DualsenseEffectsState;

import java.lang.foreign.MemorySegment;
import java.nio.ByteBuffer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
*/
package dev.isxander.controlify.gametest.framework.controller;

import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.controller.ControllerEntity;
import dev.isxander.controlify.controllermanager.SDLControllerManager;
import dev.isxander.controlify.driver.sdl.SDLException;
import dev.isxander.controlify.utils.CUtil;
import dev.isxander.controlify.impl.Controlify;
import dev.isxander.controlify.impl.controller.ControllerImpl;
import dev.isxander.controlify.impl.controllermanager.SDLUniqueControllerID;
import dev.isxander.controlify.impl.driver.sdl.SDLException;
import dev.isxander.controlify.impl.utils.CUtil;
import dev.isxander.sdl.Sdl;
import dev.isxander.sdl.SdlGamepad;
import dev.isxander.sdl.SdlJoystickHandle;
Expand Down Expand Up @@ -45,10 +45,10 @@ public TestControllerContext(
this.state = state;
}

public ControllerEntity getControllerEntity() {
public ControllerImpl getControllerImpl() {
return Controlify.instance().getControllerManager().orElseThrow()
.getConnectedControllers().stream()
.filter(c -> c.info().ucid().equals(new SDLControllerManager.SDLUniqueControllerID(this.joystickId)))
.filter(c -> c.info().ucid().equals(new SDLUniqueControllerID(this.joystickId)))
.findAny()
.orElseThrow();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/
package dev.isxander.controlify.gametest.framework.controller;

import dev.isxander.controlify.driver.sdl.SDLException;
import dev.isxander.controlify.impl.driver.sdl.SDLException;
import dev.isxander.controlify.test.framework.SdlVirtualJoystickDescBuilder;
import dev.isxander.sdl.*;
import net.fabricmc.fabric.api.client.gametest.v1.context.ClientGameTestContext;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
*/
package dev.isxander.controlify.gametest.mixin;

import dev.isxander.controlify.config.settings.ControlifySettings;
import dev.isxander.controlify.config.settings.GlobalSettings;
import dev.isxander.controlify.config.settings.device.DeviceSettings;
import dev.isxander.controlify.config.settings.profile.ProfileSettings;
import dev.isxander.controlify.impl.config.settings.ControlifySettings;
import dev.isxander.controlify.impl.config.settings.GlobalSettings;
import dev.isxander.controlify.impl.config.settings.device.DeviceSettings;
import dev.isxander.controlify.impl.config.settings.profile.ProfileSettings;
import it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/
package dev.isxander.controlify.gametest.mixin;

import dev.isxander.controlify.controllermanager.SDLControllerManager;
import dev.isxander.controlify.impl.controllermanager.SDLControllerManager;
import dev.isxander.sdl.Sdl;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@

import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import dev.isxander.controlify.controller.ControllerEntity;
import dev.isxander.controlify.controllermanager.SDLControllerManager;
import dev.isxander.controlify.controllermanager.UniqueControllerID;
import dev.isxander.controlify.hid.ControllerHIDInfo;
import dev.isxander.controlify.utils.log.ControlifyLogger;
import dev.isxander.controlify.impl.controller.ControllerImpl;
import dev.isxander.controlify.impl.controllermanager.SDLControllerManager;
import dev.isxander.controlify.impl.controllermanager.SDLUniqueControllerID;
import dev.isxander.controlify.impl.controllermanager.UniqueControllerID;
import dev.isxander.controlify.impl.hid.ControllerHIDInfo;
import dev.isxander.controlify.impl.utils.log.ControlifyLogger;
import dev.isxander.sdl.Sdl;
import dev.isxander.sdl.SdlJoystickId;
import org.spongepowered.asm.mixin.Final;
Expand All @@ -29,13 +30,13 @@ public class SDLControllerManagerMixin {

/// Only load virtual joysticks in test environments
@WrapMethod(method = "createController")
private Optional<ControllerEntity> preventNonVirtual(
private Optional<ControllerImpl> preventNonVirtual(
UniqueControllerID ucid,
ControllerHIDInfo hidInfo,
ControlifyLogger controllerLogger,
Operation<Optional<ControllerEntity>> original
Operation<Optional<ControllerImpl>> original
) {
SdlJoystickId jid = ((SDLControllerManager.SDLUniqueControllerID) ucid).jid();
SdlJoystickId jid = ((SDLUniqueControllerID) ucid).jid();

if (!sdl.joystick().SDL_IsJoystickVirtual(jid)) {
controllerLogger.warn("Suppressing creation of controller as the test environment permits only virtual controllers");
Expand Down
Loading
Loading