diff --git a/README.md b/README.md index c6bdf21..268155f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ![Environment: Client](https://img.shields.io/badge/environment-client-1976d2?style=flat-square) [![Mod loader: Quilt/Fabric]][quilt] [![Version](https://img.shields.io/github/v/tag/TeamMidnightDust/MidnightControls?label=version&style=flat-square)](https://github.com/TeamMidnightDust/MidnightControls/releases) -[![CurseForge](http://cf.way2muchnoise.eu/title/354231.svg)](https://www.curseforge.com/minecraft/mc-mods/midnightcontrols) +[![CurseForge](http://cf.way2muchnoise.eu/title/621768.svg)](https://www.curseforge.com/minecraft/mc-mods/midnightcontrols) A Fabric Minecraft mod which adds better controls, reach-around and controller support. diff --git a/build.gradle b/build.gradle index ca22442..d01c265 100644 --- a/build.gradle +++ b/build.gradle @@ -110,6 +110,7 @@ dependencies { // modImplementation "io.github.ennuil:LibZoomer:${project.libzoomer_version}" modImplementation "org.quiltmc:quilt-json5:1.0.0" + //modImplementation "maven.modrinth:sodium:${project.sodium_version}" modImplementation("me.shedaniel:RoughlyEnoughItems-runtime-fabric:${project.rei_version}") modImplementation "maven.modrinth:emotecraft:${project.emotecraft_version}" modImplementation "io.github.kosmx:bendy-lib:${project.bendylib_version}" diff --git a/gradle.properties b/gradle.properties index 18c8084..0881019 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.18.1+build.22 loader_version=0.13.3 # Mod Properties -mod_version = 0.3.0 +mod_version = 1.0.0 maven_group = eu.midnightdust archives_base_name = midnightcontrols modrinth_id=bXX9h73M @@ -16,6 +16,7 @@ modrinth_id=bXX9h73M # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api fabric_version=0.46.6+1.18 +sodium_version=mc1.18.2-0.4.1 spruceui_version=3.3.2+1.17 midnightlib_version=0.4.0 modmenu_version=2.0.2 diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java index 6cdf001..e8fdbe8 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java @@ -28,6 +28,9 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.fabricmc.fabric.api.resource.ResourcePackActivationType; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.option.KeyBinding; @@ -114,6 +117,9 @@ public class MidnightControlsClient extends MidnightControls implements ClientMo }); HudManager.register(this.hud = new MidnightControlsHud(this)); + FabricLoader.getInstance().getModContainer("midnightcontrols").ifPresent(modContainer -> { + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("midnightcontrols","bedrock"), modContainer, ResourcePackActivationType.NORMAL); + }); } /** diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java index cd8bbff..307d889 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java @@ -59,6 +59,7 @@ public class MidnightControlsConfig extends MidnightConfig { @Entry public static VirtualMouseSkin virtualMouseSkin = VirtualMouseSkin.DEFAULT_LIGHT; @Entry public static Object controllerID = 0; @Entry public static Object secondControllerID = -1; + @Entry public static List mouseScreens = List.of("me.jellysquid.mods.sodium.client.gui","net.coderbot.iris.gui","net.minecraft.client.gui.screen.advancement", "net.minecraft.client.gui.screen.pack.PackScreen"); @Entry public static Map BINDINGS = Map.of(); private static final Pattern BUTTON_BINDING_PATTERN = Pattern.compile("(-?\\d+)\\+?"); diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java index 0fc2380..6b4e3ff 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java @@ -38,7 +38,6 @@ import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerServerListWidget; -import net.minecraft.client.gui.screen.pack.PackScreen; import net.minecraft.client.gui.screen.world.WorldListWidget; import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget; import net.minecraft.client.gui.widget.EntryListWidget; @@ -704,7 +703,7 @@ public class MidnightInput { } public static boolean isScreenInteractive(@NotNull Screen screen) { - return !(screen instanceof AdvancementsScreen || screen instanceof HandledScreen || screen instanceof PackScreen + return !(screen instanceof HandledScreen || MidnightControlsConfig.mouseScreens.stream().anyMatch(a -> screen.getClass().toString().contains(a)) || (screen instanceof SpruceScreen && ((SpruceScreen) screen).requiresCursor()) || MidnightControlsCompat.requireMouseOnScreen(screen)); } diff --git a/src/main/resources/assets/midnightcontrols/lang/de_de.json b/src/main/resources/assets/midnightcontrols/lang/de_de.json index e2cc207..5007465 100644 --- a/src/main/resources/assets/midnightcontrols/lang/de_de.json +++ b/src/main/resources/assets/midnightcontrols/lang/de_de.json @@ -72,6 +72,11 @@ "midnightcontrols.controller.mappings.error.write": "Fehler beim Schreiben der Controller Mappings.", "midnightcontrols.controller.mappings.updated": "Mappings aktualisiert!", "midnightcontrols.controller_type.default": "Standard", + "midnightcontrols.controller_type.dualshock": "DualShock", + "midnightcontrols.controller_type.switch": "Switch", + "midnightcontrols.controller_type.xbox": "Xbox", + "midnightcontrols.controller_type.steam": "Steam", + "midnightcontrols.controller_type.ouya": "OUYA", "midnightcontrols.controls_mode.default": "Tastatur/Maus", "midnightcontrols.controls_mode.controller": "Controller", "midnightcontrols.controls_mode.touchscreen": "Touchscreen", @@ -141,8 +146,14 @@ "midnightcontrols.tooltip.rotation_speed": "Die Kamerarotationsgeschwindigkeit im Controllermodus.", "midnightcontrols.tooltip.unfocused_input": "Erlaube Controllereingabe auch wenn das Fenster nicht fokussiert ist.", "midnightcontrols.tooltip.virtual_mouse": "Aktiviere die virtuelle Maus.", - "midnightcontrols.virtual_mouse.skin.default_light": "Standard Light", - "midnightcontrols.virtual_mouse.skin.default_dark": "Standard Dark", - "midnightcontrols.virtual_mouse.skin.second_light": "Alternativ Light", - "midnightcontrols.virtual_mouse.skin.second_dark": "Alternativ Dark" + "midnightcontrols.virtual_mouse.skin.default_light": "Standard Hell", + "midnightcontrols.virtual_mouse.skin.default_dark": "Standard Dunkel", + "midnightcontrols.virtual_mouse.skin.second_light": "Alternativ Hell", + "midnightcontrols.virtual_mouse.skin.second_dark": "Alternativ Dunkel", + "midnightcontrols.button.a": "A", + "midnightcontrols.button.b": "B", + "midnightcontrols.button.x": "X", + "midnightcontrols.button.y": "Y", + "modmenu.descriptionTranslation.midnightcontrols": "Fügt Controller-Unterstützung hinzu und verbessert allgemein die Steuerung.\nBasiert auf der LambdaControls mod, deren Entwicklung leider eingestellt wurde.", + "modmenu.summaryTranslation.midnightcontrols": "Fügt Controller-Unterstützung hinzu und verbessert allgemein die Steuerung." } diff --git a/src/main/resources/assets/midnightcontrols/textures/gui/controller_axis.png b/src/main/resources/assets/midnightcontrols/textures/gui/controller_axis.png index f52f81e..05ce6fd 100644 Binary files a/src/main/resources/assets/midnightcontrols/textures/gui/controller_axis.png and b/src/main/resources/assets/midnightcontrols/textures/gui/controller_axis.png differ diff --git a/src/main/resources/assets/midnightcontrols/textures/gui/controller_buttons.png b/src/main/resources/assets/midnightcontrols/textures/gui/controller_buttons.png index 8fa618c..3d5bbcf 100644 Binary files a/src/main/resources/assets/midnightcontrols/textures/gui/controller_buttons.png and b/src/main/resources/assets/midnightcontrols/textures/gui/controller_buttons.png differ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 423cbb8..8f087aa 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -10,10 +10,11 @@ ], "contributors": [ "akemin-dayo", + "DioEgizio", + "Ivanoks", "FlashyReese", "Hambaka", "joaoh1", - "DioEgizio", "EnnuiL", "egeesin" ], diff --git a/src/main/resources/resourcepacks/bedrock/CREDITS b/src/main/resources/resourcepacks/bedrock/CREDITS new file mode 100644 index 0000000..96ffc96 --- /dev/null +++ b/src/main/resources/resourcepacks/bedrock/CREDITS @@ -0,0 +1,4 @@ +Some of the textures in this Resourcepack are directly taken from the Bedrock assets and are therefore © Mojang Studios. +Credits go to Ivanoks for redrawing the Bedrock XBox controller icons in 15x15, +Motschen for creating the assets for the other controllers +and LambdAurora for the original assets, part of which are also included. diff --git a/src/main/resources/resourcepacks/bedrock/assets/midnightcontrols/textures/gui/controller_axis.png b/src/main/resources/resourcepacks/bedrock/assets/midnightcontrols/textures/gui/controller_axis.png new file mode 100644 index 0000000..b6ee391 Binary files /dev/null and b/src/main/resources/resourcepacks/bedrock/assets/midnightcontrols/textures/gui/controller_axis.png differ diff --git a/src/main/resources/resourcepacks/bedrock/assets/midnightcontrols/textures/gui/controller_buttons.png b/src/main/resources/resourcepacks/bedrock/assets/midnightcontrols/textures/gui/controller_buttons.png new file mode 100644 index 0000000..841e148 Binary files /dev/null and b/src/main/resources/resourcepacks/bedrock/assets/midnightcontrols/textures/gui/controller_buttons.png differ diff --git a/src/main/resources/resourcepacks/bedrock/pack.mcmeta b/src/main/resources/resourcepacks/bedrock/pack.mcmeta new file mode 100644 index 0000000..77bcd3d --- /dev/null +++ b/src/main/resources/resourcepacks/bedrock/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 8, + "description": "Makes the controller buttons look like from Bedrock Edition" + } +} diff --git a/src/main/resources/resourcepacks/bedrock/pack.png b/src/main/resources/resourcepacks/bedrock/pack.png new file mode 100644 index 0000000..7a307ae Binary files /dev/null and b/src/main/resources/resourcepacks/bedrock/pack.png differ