From b4f46ee703d4f6e613b0c897b93845f8caf59b5a Mon Sep 17 00:00:00 2001 From: moonleay Date: Thu, 16 May 2024 03:31:41 +0200 Subject: [PATCH] feat: added option and config for player fly speed Signed-off-by: moonleay --- .../client/config/GimbalClientConfig.kt | 1 + .../gimbal/client/editor/ClientEditor.kt | 1 - .../gimbal/client/screen/GimbalEditHudGui.kt | 3 +- .../gimbal/client/screen/GimbalSettingsGui.kt | 33 ++++++++++++++++--- .../gimbal/constants/TranslationKeys.kt | 2 ++ .../datagen/En_us_GimbalLanguageProvider.kt | 7 ++-- 6 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/moonleay/gimbal/client/config/GimbalClientConfig.kt b/src/main/java/net/moonleay/gimbal/client/config/GimbalClientConfig.kt index f673f28..199908a 100644 --- a/src/main/java/net/moonleay/gimbal/client/config/GimbalClientConfig.kt +++ b/src/main/java/net/moonleay/gimbal/client/config/GimbalClientConfig.kt @@ -25,4 +25,5 @@ import net.moonleay.gimbal.client.config.enums.ToastSettings data class GimbalClientConfig( val guiSettings: GimbalGuiSettings = GimbalGuiSettings(), val toastSettings: ToastSettings = ToastSettings.ALL, + val playerFlySpeed: Int = 0, ) diff --git a/src/main/java/net/moonleay/gimbal/client/editor/ClientEditor.kt b/src/main/java/net/moonleay/gimbal/client/editor/ClientEditor.kt index 2982db4..303996f 100644 --- a/src/main/java/net/moonleay/gimbal/client/editor/ClientEditor.kt +++ b/src/main/java/net/moonleay/gimbal/client/editor/ClientEditor.kt @@ -45,7 +45,6 @@ object ClientEditor { private val CURRENT_MODE_MODIFIER = mutableListOf() private val TEMP_DISABLED_MODIFIERS = mutableListOf() - private val DISABLED_MODIFIERS_STORAGE = mutableListOf() diff --git a/src/main/java/net/moonleay/gimbal/client/screen/GimbalEditHudGui.kt b/src/main/java/net/moonleay/gimbal/client/screen/GimbalEditHudGui.kt index b7682d7..c0ec0be 100644 --- a/src/main/java/net/moonleay/gimbal/client/screen/GimbalEditHudGui.kt +++ b/src/main/java/net/moonleay/gimbal/client/screen/GimbalEditHudGui.kt @@ -86,7 +86,8 @@ class GimbalEditHudGui(private val parent: Screen, private val cfg: ClientConfig verticalAnchor = anchor.second, hudOptions = oldConf.guiSettings.hudOptions ), - toastSettings = oldConf.toastSettings + toastSettings = oldConf.toastSettings, + playerFlySpeed = oldConf.playerFlySpeed ) cfg.updateConfig(newConf) diff --git a/src/main/java/net/moonleay/gimbal/client/screen/GimbalSettingsGui.kt b/src/main/java/net/moonleay/gimbal/client/screen/GimbalSettingsGui.kt index c2cd5c0..c7d33e0 100644 --- a/src/main/java/net/moonleay/gimbal/client/screen/GimbalSettingsGui.kt +++ b/src/main/java/net/moonleay/gimbal/client/screen/GimbalSettingsGui.kt @@ -29,6 +29,8 @@ import net.moonleay.gimbal.client.config.GimbalClientConfig import net.moonleay.gimbal.client.config.GimbalGuiSettings import net.moonleay.gimbal.client.config.enums.HudOptions import net.moonleay.gimbal.client.config.enums.ToastSettings +import net.moonleay.gimbal.client.screen.widgets.GimbalSliderWidget +import net.moonleay.gimbal.client.util.NumberUtil import net.moonleay.gimbal.constants.TranslationKeys class GimbalSettingsGui(private val parent: Screen, private val cfg: ClientConfigHolder) : @@ -36,10 +38,12 @@ class GimbalSettingsGui(private val parent: Screen, private val cfg: ClientConfi private var hudOptions: HudOptions private var toastSettings: ToastSettings + private var playerFlySpeed: Int init { this.hudOptions = cfg.config.guiSettings.hudOptions this.toastSettings = cfg.config.toastSettings + this.playerFlySpeed = cfg.config.playerFlySpeed } override fun init() { @@ -65,7 +69,8 @@ class GimbalSettingsGui(private val parent: Screen, private val cfg: ClientConfi ) val newConf = GimbalClientConfig( guiSettings = newGui, - toastSettings = cfg.config.toastSettings + toastSettings = cfg.config.toastSettings, + playerFlySpeed = cfg.config.playerFlySpeed ) cfg.updateConfig(newConf) }) @@ -123,7 +128,8 @@ class GimbalSettingsGui(private val parent: Screen, private val cfg: ClientConfi offset = oldGuiConfig.offset, hudOptions = this.hudOptions ), - toastSettings = oldConfig.toastSettings + toastSettings = oldConfig.toastSettings, + playerFlySpeed = oldConfig.playerFlySpeed ) cfg.updateConfig(newConfig) } @@ -166,14 +172,33 @@ class GimbalSettingsGui(private val parent: Screen, private val cfg: ClientConfi val oldConfig = cfg.config val newConfig = GimbalClientConfig( guiSettings = oldConfig.guiSettings, - toastSettings = this.toastSettings + toastSettings = this.toastSettings, + playerFlySpeed = oldConfig.playerFlySpeed ) cfg.updateConfig(newConfig) } ) + this.addDrawableChild(GimbalSliderWidget( + this.width / 2 - 155, + this.height / 6 + 24 * 2, + 150, + 20, + Text.translatable(TranslationKeys.Gui.Config.PLAYER_FLY_SPEED), + NumberUtil.interpolate(this.playerFlySpeed.toDouble(), 50.0, 500.0, 0.0, 1.0), + 50.0, + 500.0, + ) { value -> + this.playerFlySpeed = NumberUtil.interpolate(value, 0.0, 1.0, 50.0, 500.0).toInt() - + val oldConfig = cfg.config + val newConfig = GimbalClientConfig( + guiSettings = oldConfig.guiSettings, + toastSettings = this.toastSettings, + playerFlySpeed = this.playerFlySpeed + ) + cfg.updateConfig(newConfig) + }) // Done button this.addDrawableChild(ButtonWidget( diff --git a/src/main/java/net/moonleay/gimbal/constants/TranslationKeys.kt b/src/main/java/net/moonleay/gimbal/constants/TranslationKeys.kt index 6d4c355..d820f70 100644 --- a/src/main/java/net/moonleay/gimbal/constants/TranslationKeys.kt +++ b/src/main/java/net/moonleay/gimbal/constants/TranslationKeys.kt @@ -31,6 +31,8 @@ object TranslationKeys { const val GENERIC_ENABLED = "${BASE}enabled" const val GENERIC_DISABLED = "${BASE}disabled" + const val PLAYER_FLY_SPEED = "${BASE}flySpeed" + object Hud { const val BASE = "${TranslationKeys.Gui.Config.BASE}hud." diff --git a/src/main/java/net/moonleay/gimbal/datagen/En_us_GimbalLanguageProvider.kt b/src/main/java/net/moonleay/gimbal/datagen/En_us_GimbalLanguageProvider.kt index 666e1fe..3251f74 100644 --- a/src/main/java/net/moonleay/gimbal/datagen/En_us_GimbalLanguageProvider.kt +++ b/src/main/java/net/moonleay/gimbal/datagen/En_us_GimbalLanguageProvider.kt @@ -50,10 +50,13 @@ class En_us_GimbalLanguageProvider(dataGenerator: FabricDataGenerator?) : //Gimbal Toasts translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_TOASTS, "Show Toasts") translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_ALL, "All") - translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_TOGGLE, "Only toggle") - translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_SYSTEM, "Only system") + translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_TOGGLE, "Only Toggle") + translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_SYSTEM, "Only System") translationBuilder.add(TranslationKeys.Gui.Config.Toasts.SHOW_NONE, "None") + // Gimbal Generic Settings + translationBuilder.add(TranslationKeys.Gui.Config.PLAYER_FLY_SPEED, "Fly Speed") + // Gimbal Generic Gui translationBuilder.add(TranslationKeys.Gui.Config.GENERIC_ENABLED, "Enabled") translationBuilder.add(TranslationKeys.Gui.Config.GENERIC_DISABLED, "Disabled")