diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 0012554..0000000 --- a/build.gradle +++ /dev/null @@ -1,68 +0,0 @@ -plugins { - id 'fabric-loom' version '1.5-SNAPSHOT' - id 'maven-publish' -} - -archivesBaseName = "${project.archives_base_name}-${project.minecraft_version}" -version = project.mod_version -group = project.maven_group - -repositories { - maven { url "https://jitpack.io" } - maven { url "https://maven.shedaniel.me/" } - maven { url "https://maven.terraformersmc.com/releases/" } -} - -dependencies { - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - - api include("com.github.KrLite:Pierced:${project.pierced_version}") - - modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") { - exclude(group: "net.fabricmc.fabric-api") - } - modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}" -} - -configurations { - modApi.exclude group: 'net.fabricmc', module: 'fabric-loader' -} - -processResources { - inputs.property "version", project.version - - filesMatching("fabric.mod.json") { - expand "version": project.version - } -} - -tasks.withType(JavaCompile).configureEach { - it.options.release = Integer.parseInt(sourceCompatibility) -} - -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - - withSourcesJar() -} - -jar { - from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} - } -} - -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - } - } - - repositories { - } -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..3f4b90f --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,64 @@ +plugins { + base + java + idea + `maven-publish` + alias(libs.plugins.fabric.loom) +} + +group = libs.versions.maven.group.get() +version = "${libs.versions.minecraft.get()}-${libs.versions.mod.get()}" + +base { + archivesName.set(libs.versions.archives.name) +} + +repositories { + mavenCentral() + maven { url = uri("https://jitpack.io") } + maven { url = uri("https://maven.shedaniel.me/") } // Cloth Config + maven { url = uri("https://maven.terraformersmc.com/releases/") } // Mod Menu +} + +dependencies { + minecraft(libs.minecraft) + mappings(libs.yarn) + modImplementation(libs.bundles.fabric) + + modApi(libs.cloth.config) + modApi(libs.modmenu) +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + + withSourcesJar() +} + +tasks { + processResources { + inputs.property("version", libs.versions.mod.get()) + + filesMatching("fabric.mod.json") { + expand(mapOf("version" to libs.versions.mod.get())) + } + } + + jar { + from("LICENSE") { + rename { "${it}_${base.archivesName}" } + } + } +} + +publishing { + publications { + create("mavenJava") { + from(components["java"]) + } + } + + repositories { + } +} diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 036fd24..0000000 --- a/gradle.properties +++ /dev/null @@ -1,17 +0,0 @@ -org.gradle.jvmargs = -Xmx1G -org.gradle.parallel = true - -# https://fabricmc.net/develop -minecraft_version = 1.20 -yarn_mappings = 1.20+build.1 -loader_version = 0.15.3 - -mod_version = 2.0.2 -maven_group = net.krlite -archives_base_name = tapestop - -# Dependencies -fabric_version = 0.83.0+1.20 -pierced_version = v1.2 -cloth_config_version = 11.1.106 -modmenu_version = 7.0.1 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..2523a04 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,28 @@ +[versions] +maven-group = "net.krlite" +archives-name = "tapestop" +mod = "3.0.0" + +minecraft = "1.20" +yarn = "1.20+build.1" +fabric-loader = "0.15.7" +fabric-api = "0.83.0+1.20" +fabric-loom = "1.5-SNAPSHOT" + +cloth-config = "11.1.118" +modmenu = "7.0.1" + +[libraries] +minecraft = { group = "com.mojang", name = "minecraft", version.ref = "minecraft" } +yarn = { group = "net.fabricmc", name = "yarn", version.ref = "yarn" } +fabric-loader = { group = "net.fabricmc", name = "fabric-loader", version.ref = "fabric-loader" } +fabric-api = { group = "net.fabricmc.fabric-api", name = "fabric-api", version.ref = "fabric-api" } + +cloth-config = { group = "me.shedaniel.cloth", name = "cloth-config-fabric", version.ref = "cloth-config" } +modmenu = { group = "com.terraformersmc", name = "modmenu", version.ref = "modmenu" } + +[plugins] +fabric-loom = { id = "fabric-loom", version.ref = "fabric-loom" } + +[bundles] +fabric = ["fabric-loader", "fabric-api"] diff --git a/settings.gradle b/settings.gradle.kts similarity index 60% rename from settings.gradle rename to settings.gradle.kts index b02216b..a7f3f56 100644 --- a/settings.gradle +++ b/settings.gradle.kts @@ -1,8 +1,8 @@ pluginManagement { repositories { maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' + name = "Fabric" + url = uri("https://maven.fabricmc.net/") } mavenCentral() gradlePluginPortal() diff --git a/src/main/java/net/krlite/tapestop/TapeStop.java b/src/main/java/net/krlite/tapestop/TapeStop.java index 205e215..5a0c5e8 100644 --- a/src/main/java/net/krlite/tapestop/TapeStop.java +++ b/src/main/java/net/krlite/tapestop/TapeStop.java @@ -1,5 +1,7 @@ package net.krlite.tapestop; +import me.shedaniel.autoconfig.AutoConfig; +import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer; import net.fabricmc.api.ModInitializer; import net.krlite.tapestop.config.TapeStopConfig; import net.minecraft.client.MinecraftClient; @@ -23,7 +25,12 @@ public class TapeStop implements ModInitializer { public static final String NAME = "Tape Stop", ID = "tapestop"; public static final Logger LOGGER = LoggerFactory.getLogger(ID); - public static final TapeStopConfig CONFIG = new TapeStopConfig(); + public static final TapeStopConfig CONFIG; + + static { + AutoConfig.register(TapeStopConfig.class, Toml4jConfigSerializer::new); + CONFIG = AutoConfig.getConfigHolder(TapeStopConfig.class).get(); + } private static final Class[] excluded = new Class[]{ TitleScreen.class, DemoScreen.class, AccessibilityOnboardingScreen.class, SplashOverlay.class, @@ -48,21 +55,20 @@ public class TapeStop implements ModInitializer { @Override public void onInitialize() { - CONFIG.save(); updateColors(); } public static boolean shouldTapeStop(@Nullable Screen screen) { - if (!CONFIG.enabled() || MinecraftClient.getInstance().world == null) return false; + if (!CONFIG.enabled || MinecraftClient.getInstance().world == null) return false; - if (CONFIG.whenMinimized() && GLFW.glfwGetWindowAttrib(MinecraftClient.getInstance().getWindow().getHandle(), GLFW.GLFW_ICONIFIED) == GLFW.GLFW_TRUE) return true; + if (CONFIG.trigger.whenMinimized && GLFW.glfwGetWindowAttrib(MinecraftClient.getInstance().getWindow().getHandle(), GLFW.GLFW_ICONIFIED) == GLFW.GLFW_TRUE) return true; - if (CONFIG.whenLostFocus() && !MinecraftClient.getInstance().isWindowFocused()) return true; + if (CONFIG.trigger.whenLostFocus && !MinecraftClient.getInstance().isWindowFocused()) return true; - if (screen == null && CONFIG.afterGameTimeout() && isTimeout()) return true; + if (screen == null && CONFIG.trigger.afterGameTimeout && isTimeout()) return true; if (screen != null && !Arrays.asList(excluded).contains(screen.getClass()) - && CONFIG.afterGUITimeout() && isTimeout()) return true; + && CONFIG.trigger.afterGUITimeout && isTimeout()) return true; tapeStopTime = Util.getMeasuringTimeMs(); updateColors(); @@ -107,7 +113,7 @@ public static int color() { } public static boolean isTimeout() { - return Util.getMeasuringTimeMs() - lastActionTime > CONFIG.timeoutMs(); + return Util.getMeasuringTimeMs() - lastActionTime > CONFIG.timeoutMs; } public static void action() { diff --git a/src/main/java/net/krlite/tapestop/config/TapeStopConfig.java b/src/main/java/net/krlite/tapestop/config/TapeStopConfig.java index f707fb6..62297f6 100644 --- a/src/main/java/net/krlite/tapestop/config/TapeStopConfig.java +++ b/src/main/java/net/krlite/tapestop/config/TapeStopConfig.java @@ -1,122 +1,54 @@ package net.krlite.tapestop.config; -import net.fabricmc.loader.api.FabricLoader; -import net.krlite.pierced.annotation.Comment; -import net.krlite.pierced.annotation.Silent; -import net.krlite.pierced.annotation.Table; -import net.krlite.pierced.config.Pierced; +import me.shedaniel.autoconfig.ConfigData; +import me.shedaniel.autoconfig.annotation.Config; +import me.shedaniel.autoconfig.annotation.ConfigEntry; +import me.shedaniel.clothconfig2.gui.entries.SelectionListEntry; import net.krlite.tapestop.TapeStop; +import org.jetbrains.annotations.NotNull; -import java.io.File; +@Config(name = "tapestop") +public class TapeStopConfig implements ConfigData { + public boolean enabled = true; -public class TapeStopConfig extends Pierced { - private static @Silent final File file = FabricLoader.getInstance().getConfigDir().resolve(TapeStop.ID + ".toml").toFile(); + public boolean debugInfoEnabled = true; - public TapeStopConfig() { - super(TapeStopConfig.class, file); - load(); - } - - private boolean enabled = true; - - public boolean enabled() { - return enabled; - } - - public void enabled(boolean enabled) { - this.enabled = enabled; - save(); - } - - @Comment("Must be between " + minTimeoutMs + " and " + maxTimeoutMs + ".") - private long timeoutMs = 1000 * 30; - - public static final @Silent long minTimeoutMs = 1000, maxTimeoutMs = 1000 * 60 * 5; + @ConfigEntry.BoundedDiscrete(min = 1000, max = 1000 * 60 * 5) + public long timeoutMs = 1000 * 30; - public long timeoutMs() { - return timeoutMs; - } - - public void timeoutMs(long timeoutMs) { - this.timeoutMs = timeoutMs; - save(); - } - - @Table("Trigger") - @Comment("Tape stops when the game is minimized.") - private boolean whenMinimized = true; + @ConfigEntry.Gui.TransitiveObject + @ConfigEntry.Category("trigger") + public Trigger trigger = new Trigger(); - public boolean whenMinimized() { - return whenMinimized; - } + @ConfigEntry.Gui.TransitiveObject + @ConfigEntry.Category("visual") + public Visual visual = new Visual(); - public void whenMinimized(boolean whenMinimized) { - this.whenMinimized = whenMinimized; - save(); + public static class Trigger { + public boolean whenMinimized = true; + public boolean whenLostFocus = true; + public boolean afterGUITimeout = true; + public boolean afterGameTimeout = true; } - @Table("Trigger") - @Comment("Tape stops when the game loses focus.") - private boolean whenLostFocus = true; - - public boolean whenLostFocus() { - return whenLostFocus; + public static class Visual { + @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) + public BackgroundStyle backgroundStyle = BackgroundStyle.PURE_COLOR; } - public void whenLostFocus(boolean whenLostFocus) { - this.whenLostFocus = whenLostFocus; - save(); - } + public enum BackgroundStyle implements SelectionListEntry.Translatable { + PURE_COLOR("config." + TapeStop.ID + ".background_style.pure_color"), + PANORAMA("config." + TapeStop.ID + ".background_style.panorama"); - @Table("Trigger") - @Comment("Tape stops when the game is in a GUI screen(inventory, pause menu, etc.) and reaches the timeout specified above.") - private boolean afterGUITimeout = true; + private final String key; - public boolean afterGUITimeout() { - return afterGUITimeout; - } - - public void afterGUITimeout(boolean afterGUITimeout) { - this.afterGUITimeout = afterGUITimeout; - save(); - } - - @Table("Trigger") - @Comment("Tape stops when the game is not in a GUI screen and reaches the timeout specified above.") - private boolean afterGameTimeout = true; - - public boolean afterGameTimeout() { - return afterGameTimeout; - } - - public void afterGameTimeout(boolean afterGameTimeout) { - this.afterGameTimeout = afterGameTimeout; - save(); - } - - @Table("Visual") - @Comment("Renders the panorama background while tape stopped.") - private boolean panorama = false; - - public boolean panorama() { - return panorama; - } - - public void panorama(boolean panorama) { - this.panorama = panorama; - save(); - } - - @Table("Debug") - @Comment("Prints debug messages to the console.") - private boolean debugEnabled = true; - - public boolean debugEnabled() { - return debugEnabled; - } + BackgroundStyle(String key) { + this.key = key; + } - public void debugEnabled(boolean debug) { - this.debugEnabled = debug; - save(); + @Override + public @NotNull String getKey() { + return key; + } } } diff --git a/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopConfigScreen.java b/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopConfigScreen.java deleted file mode 100644 index 9f678d6..0000000 --- a/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopConfigScreen.java +++ /dev/null @@ -1,119 +0,0 @@ -package net.krlite.tapestop.config.modmenu; - -import me.shedaniel.clothconfig2.api.ConfigBuilder; -import me.shedaniel.clothconfig2.api.ConfigCategory; -import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; -import net.krlite.tapestop.TapeStop; -import net.krlite.tapestop.config.TapeStopConfig; -import net.minecraft.client.gui.screen.Screen; - -import static net.krlite.tapestop.TapeStop.CONFIG; - -public class TapeStopConfigScreen { - public TapeStopConfigScreen(Screen parent) { - builder.setParentScreen(parent); - initEntries(); - } - - public Screen build() { - return builder.build(); - } - - private final ConfigBuilder builder = ConfigBuilder.create() - .setTitle(TapeStop.localize("screen", "config", "title")) - .transparentBackground() - .setSavingRunnable(CONFIG::save); - - private final ConfigEntryBuilder entryBuilder = builder.entryBuilder(); - - private final ConfigCategory general = builder.getOrCreateCategory(TapeStop.localize("config", "category", "general")); - - private final ConfigCategory visual = builder.getOrCreateCategory(TapeStop.localize("config", "category", "visual")); - - private final ConfigCategory trigger = builder.getOrCreateCategory(TapeStop.localize("config", "category", "trigger")); - - private final ConfigCategory debug = builder.getOrCreateCategory(TapeStop.localize("config", "category", "debug")); - - private void initEntries() { - // General - - general.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "general", "enabled"), - CONFIG.enabled() - ) - .setDefaultValue(true) - .setTooltip(TapeStop.localize("config", "general", "enabled", "tooltip")) - .setSaveConsumer(CONFIG::enabled) - .build()); - - general.addEntry(entryBuilder.startLongSlider( - TapeStop.localize("config", "general", "timeout_ms"), - CONFIG.timeoutMs(), - TapeStopConfig.minTimeoutMs, TapeStopConfig.maxTimeoutMs - ) - .setDefaultValue(1000 * 30) - .setTooltip(TapeStop.localize("config", "general", "timeout_ms", "tooltip")) - .setSaveConsumer(CONFIG::timeoutMs) - .build()); - - // Trigger - - trigger.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "trigger", "when_minimized"), - CONFIG.whenMinimized() - ) - .setDefaultValue(true) - .setTooltip(TapeStop.localize("config", "trigger", "when_minimized", "tooltip")) - .setSaveConsumer(CONFIG::whenMinimized) - .build()); - - trigger.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "trigger", "when_lost_focus"), - CONFIG.whenLostFocus() - ) - .setDefaultValue(true) - .setTooltip(TapeStop.localize("config", "trigger", "when_lost_focus", "tooltip")) - .setSaveConsumer(CONFIG::whenLostFocus) - .build()); - - trigger.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "trigger", "after_gui_timeout"), - CONFIG.afterGUITimeout() - ) - .setDefaultValue(true) - .setTooltip(TapeStop.localize("config", "trigger", "after_gui_timeout", "tooltip")) - .setSaveConsumer(CONFIG::afterGUITimeout) - .build()); - - trigger.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "trigger", "after_game_timeout"), - CONFIG.afterGameTimeout() - ) - .setDefaultValue(true) - .setTooltip(TapeStop.localize("config", "trigger", "after_game_timeout", "tooltip")) - .setSaveConsumer(CONFIG::afterGameTimeout) - .build()); - - // Visual - - visual.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "visual", "panorama"), - CONFIG.panorama() - ) - .setDefaultValue(true) - .setTooltip(TapeStop.localize("config", "visual", "panorama", "tooltip")) - .setSaveConsumer(CONFIG::panorama) - .build()); - - // Debug - - debug.addEntry(entryBuilder.startBooleanToggle( - TapeStop.localize("config", "debug", "enabled"), - CONFIG.debugEnabled() - ) - .setDefaultValue(false) - .setTooltip(TapeStop.localize("config", "debug", "enabled", "tooltip")) - .setSaveConsumer(CONFIG::debugEnabled) - .build()); - } -} diff --git a/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopModMenuImpl.java b/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopModMenuImpl.java deleted file mode 100644 index 24702a8..0000000 --- a/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopModMenuImpl.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.krlite.tapestop.config.modmenu; - -import com.terraformersmc.modmenu.api.ConfigScreenFactory; -import com.terraformersmc.modmenu.api.ModMenuApi; - -public class TapeStopModMenuImpl implements ModMenuApi { - @Override - public ConfigScreenFactory getModConfigScreenFactory() { - return parent -> new TapeStopConfigScreen(parent).build(); - } -} diff --git a/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopModMenuIntegration.java b/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopModMenuIntegration.java new file mode 100644 index 0000000..7cbd5ac --- /dev/null +++ b/src/main/java/net/krlite/tapestop/config/modmenu/TapeStopModMenuIntegration.java @@ -0,0 +1,13 @@ +package net.krlite.tapestop.config.modmenu; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; +import me.shedaniel.autoconfig.AutoConfig; +import net.krlite.tapestop.config.TapeStopConfig; + +public class TapeStopModMenuIntegration implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return parent -> AutoConfig.getConfigScreen(TapeStopConfig.class, parent).get(); + } +} diff --git a/src/main/java/net/krlite/tapestop/mixin/GameRendererMixin.java b/src/main/java/net/krlite/tapestop/mixin/GameRendererMixin.java index 61d59ab..7b19bc7 100644 --- a/src/main/java/net/krlite/tapestop/mixin/GameRendererMixin.java +++ b/src/main/java/net/krlite/tapestop/mixin/GameRendererMixin.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.systems.VertexSorter; import net.krlite.tapestop.TapeStop; import net.krlite.tapestop.TapeStopRenderer; +import net.krlite.tapestop.config.TapeStopConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.GameRenderer; @@ -23,7 +24,14 @@ public class GameRendererMixin { @Unique private boolean skipped = false; - @Redirect(method = "render", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;skipGameRender:Z", opcode = Opcodes.GETFIELD)) + @Redirect( + method = "render", + at = @At( + value = "FIELD", + target = "Lnet/minecraft/client/MinecraftClient;skipGameRender:Z", + opcode = Opcodes.GETFIELD + ) + ) private boolean skipGameRender(MinecraftClient client) { boolean skip = TapeStop.shouldTapeStop(client.currentScreen); if (skip) { @@ -40,7 +48,7 @@ private boolean skipGameRender(MinecraftClient client) { matrixStack.translate(0.0F, 0.0F, -2000.0F); RenderSystem.applyModelViewMatrix(); - if (TapeStop.CONFIG.panorama() && TapeStop.cubeMapRenderer() != null) { + if (TapeStop.CONFIG.visual.backgroundStyle == TapeStopConfig.BackgroundStyle.PANORAMA && TapeStop.cubeMapRenderer() != null) { panorama: { TapeStopRenderer.renderPanorama(); } @@ -50,7 +58,7 @@ private boolean skipGameRender(MinecraftClient client) { } } - else { + if (TapeStop.CONFIG.visual.backgroundStyle == TapeStopConfig.BackgroundStyle.PURE_COLOR) { grassBlock: { TapeStopRenderer.renderGrassBlock(context); } diff --git a/src/main/resources/assets/tapestop/lang/en_us.json b/src/main/resources/assets/tapestop/lang/en_us.json index c2d0ce4..0af360f 100644 --- a/src/main/resources/assets/tapestop/lang/en_us.json +++ b/src/main/resources/assets/tapestop/lang/en_us.json @@ -1,35 +1,36 @@ { - "screen.tapestop.config.title": "Tape Stop", + "text.autoconfig.tapestop.title": "Tape Stop", - "config.tapestop.category.general": "General", + "text.autoconfig.tapestop.category.default": "General", - "config.tapestop.general.enabled" : "Enabled", - "config.tapestop.general.enabled.tooltip": "Whether to stop rendering as you leave", + "text.autoconfig.tapestop.option.enabled" : "Enabled", + "text.autoconfig.tapestop.option.enabled.tooltip": "Whether to stop rendering as you leave", - "config.tapestop.general.timeout_ms" : "Timeout", - "config.tapestop.general.timeout_ms.tooltip": "§cMilliseconds\nHow long to wait before tape stops", + "text.autoconfig.tapestop.debug.enabled" : "Debug Info", + "text.autoconfig.tapestop.debug.enabled.tooltip": "Whether to print debug messages to the console", - "config.tapestop.category.trigger": "Trigger", + "text.autoconfig.tapestop.option.timeout_ms" : "Timeout", + "text.autoconfig.tapestop.option.timeout_ms.tooltip": "§cMilliseconds\nHow long to wait before tape stops", - "config.tapestop.trigger.when_minimized" : "When Minimized", - "config.tapestop.trigger.when_minimized.tooltip": "Whether to tape stop when the window is minimized", + "text.autoconfig.tapestop.category.trigger": "Trigger", - "config.tapestop.trigger.when_lost_focus" : "When Lost Focus", - "config.tapestop.trigger.when_lost_focus.tooltip": "Whether to tape stop when the window lost focus", + "text.autoconfig.tapestop.trigger.when_minimized" : "When Minimized", + "text.autoconfig.tapestop.trigger.when_minimized.tooltip": "Whether to tape stop when the window is minimized", - "config.tapestop.trigger.after_gui_timeout" : "After GUI Timeout", - "config.tapestop.trigger.after_gui_timeout.tooltip": "Whether to tape stop when the game is in a GUI screen(inventory, pause menu, etc.) and reaches the timeout specified above", + "text.autoconfig.tapestop.trigger.when_lost_focus" : "When Lost Focus", + "text.autoconfig.tapestop.trigger.when_lost_focus.tooltip": "Whether to tape stop when the window lost focus", - "config.tapestop.trigger.after_game_timeout" : "After Game Timeout", - "config.tapestop.trigger.after_game_timeout.tooltip": "Whether to tape stop when the game is not in a GUI screen and reaches the timeout specified above", + "text.autoconfig.tapestop.trigger.after_gui_timeout" : "After GUI Timeout", + "text.autoconfig.tapestop.trigger.after_gui_timeout.tooltip": "Whether to tape stop when the game is in a GUI screen(inventory, pause menu, etc.) and reaches the timeout specified above", - "config.tapestop.category.visual": "Visual", + "text.autoconfig.tapestop.trigger.after_game_timeout" : "After Game Timeout", + "text.autoconfig.tapestop.trigger.after_game_timeout.tooltip": "Whether to tape stop when the game is not in a GUI screen and reaches the timeout specified above", - "config.tapestop.visual.panorama" : "Panorama", - "config.tapestop.visual.panorama.tooltip": "Whether to render the panorama background while tape stopped", + "text.autoconfig.tapestop.category.visual": "Visual", - "config.tapestop.category.debug": "Debug", + "text.autoconfig.tapestop.visual.panorama" : "Panorama", + "text.autoconfig.tapestop.visual.panorama.tooltip": "Whether to render the panorama background while tape stopped", - "config.tapestop.debug.enabled" : "Debug", - "config.tapestop.debug.enabled.tooltip": "Whether to print debug messages to the console" + "config.tapestop.background_style.pure_color": "Pure Color", + "config.tapestop.background_style.panorama": "Panorama" } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 30a10c7..4e6cbb9 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -23,7 +23,7 @@ "net.krlite.tapestop.TapeStop" ], "modmenu": [ - "net.krlite.tapestop.config.modmenu.TapeStopModMenuImpl" + "net.krlite.tapestop.config.modmenu.TapeStopModMenuIntegration" ] }, "mixins": [