Skip to content

Commit

Permalink
Update to support Controlify 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
isXander committed Mar 26, 2024
1 parent 4955791 commit 699b9c0
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 9 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ plugins {
}

group = "dev.isxander"
version = "2.13.0"
version = "2.13.1"

repositories {
mavenCentral()
Expand Down
1 change: 1 addition & 0 deletions changelogs/2.13.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Update to support Controlify 2.0
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ktoml = "0.5.1"
yet_another_config_lib = "3.3.1+1.20.4"
mod_menu = "9.0.0"
mixin_extras = "0.3.2"
controlify = "1.7.0+1.20.4"
controlify = "2.0.0-beta.1+1.20.4"

settxi = "2.10.6"

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
3 changes: 3 additions & 0 deletions src/main/kotlin/dev/isxander/zoomify/Zoomify.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package dev.isxander.zoomify
import com.mojang.blaze3d.platform.InputConstants
import dev.isxander.zoomify.config.*
import dev.isxander.zoomify.config.migrator.Migrator
import dev.isxander.zoomify.integrations.constrainModVersionIfLoaded
import dev.isxander.zoomify.zoom.*
import net.fabricmc.api.ClientModInitializer
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal
Expand Down Expand Up @@ -72,6 +73,8 @@ object Zoomify : ClientModInitializer {
private var displayGui = false

override fun onInitializeClient() {
constrainModVersionIfLoaded("controlify", "1.x.x")

// imports on <init>
ZoomifySettings

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ fun createSettingsGui(parent: Screen? = null): Screen {
controller { opt -> IntegerSliderControllerBuilder.create(opt).apply {
range(ZoomifySettings::initialZoom.asSetting<Int, IntSetting>().range!!)
step(1)
valueFormatter { Component.literal("%dx".format(it)) }
formatValue { Component.literal("%dx".format(it)) }
}}
updateDemo { v, _ -> initialZoomAmt = v }
}.build())
Expand Down Expand Up @@ -522,9 +522,9 @@ private fun <T> SliderControllerBuilder<T, *>.range(range: ClosedRange<T>) where
}

private fun ValueFormattableController<*, *>.formatSeconds() {
valueFormatter { Component.translatable("zoomify.gui.formatter.seconds", "%.1f".format(it)) }
formatValue { Component.translatable("zoomify.gui.formatter.seconds", "%.1f".format(it)) }
}

private fun <T> EnumControllerBuilder<T>.formatSettxiEnum() where T : Enum<T>, T : SettingDisplayName {
valueFormatter { Component.translatable(it.displayName) }
formatValue { Component.translatable(it.displayName) }
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package dev.isxander.zoomify.integrations

import dev.isxander.controlify.api.ControlifyApi
import dev.isxander.controlify.api.bind.ControlifyBindingsApi
import dev.isxander.controlify.api.entrypoint.ControlifyEntrypoint
import dev.isxander.controlify.api.event.ControlifyEvents
import dev.isxander.controlify.api.ingameinput.LookInputModifier
import dev.isxander.controlify.controller.Controller
import dev.isxander.controlify.controller.ControllerEntity
import dev.isxander.zoomify.Zoomify
import dev.isxander.zoomify.config.ZoomifySettings
import net.minecraft.util.Mth
Expand All @@ -19,11 +20,11 @@ object ControlifyIntegration : ControlifyEntrypoint {
}

object SensitivityModifier : LookInputModifier {
override fun modifyX(x: Float, controller: Controller<*, *>): Float {
override fun modifyX(x: Float, controller: ControllerEntity): Float {
return x * Mth.lerp(ZoomifySettings.relativeSensitivity / 100.0, 1.0, Zoomify.previousZoomDivisor).toFloat()
}

override fun modifyY(y: Float, controller: Controller<*, *>): Float {
override fun modifyY(y: Float, controller: ControllerEntity): Float {
return y * Mth.lerp(ZoomifySettings.relativeSensitivity / 100.0, 1.0, Zoomify.previousZoomDivisor).toFloat()
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package dev.isxander.zoomify.integrations

import net.fabricmc.loader.api.FabricLoader
import net.fabricmc.loader.api.metadata.version.VersionPredicate

fun constrainModVersionIfLoaded(modId: String, constraint: String) {
val predicate = VersionPredicate.parse(constraint)

val modContainer = FabricLoader.getInstance().getModContainer(modId)
if (modContainer.isPresent) {
val version = modContainer.get().metadata.version
if (!predicate.test(version)) {
throw IllegalStateException("Mod $modId is not constrained to version $constraint")
}
}
}

0 comments on commit 699b9c0

Please sign in to comment.