diff --git a/build.gradle.kts b/build.gradle.kts index 8150c6e8..3c9dc8ee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,7 +19,7 @@ kotlin.jvmToolchain { } tasks.withType { - setJvmDefault("all-compatibility") + setJvmDefault("all") kotlinOptions { languageVersion = "1.6" apiVersion = "1.6" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 53a52545..91e581fa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "1.5.10" +kotlin = "1.6.21" kotlinx-coroutines = "1.5.2" jetbrains-annotations = "23.0.0" universalcraft = "406" diff --git a/src/main/kotlin/gg/essential/elementa/components/image/ImageProvider.kt b/src/main/kotlin/gg/essential/elementa/components/image/ImageProvider.kt index 2ec73e43..665de727 100644 --- a/src/main/kotlin/gg/essential/elementa/components/image/ImageProvider.kt +++ b/src/main/kotlin/gg/essential/elementa/components/image/ImageProvider.kt @@ -3,6 +3,7 @@ package gg.essential.elementa.components.image import gg.essential.universal.UMatrixStack import java.awt.Color +@JvmDefaultWithCompatibility interface ImageProvider { /** * Render the image provided by this component with the provided attributes. @@ -21,4 +22,4 @@ interface ImageProvider { fun drawImageCompat(matrixStack: UMatrixStack, x: Double, y: Double, width: Double, height: Double, color: Color): Unit = UMatrixStack.Compat.runLegacyMethod(matrixStack) { @Suppress("DEPRECATION") drawImage(x, y, width, height, color) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/gg/essential/elementa/constraints/Constraint.kt b/src/main/kotlin/gg/essential/elementa/constraints/Constraint.kt index fd263565..a55d79e2 100644 --- a/src/main/kotlin/gg/essential/elementa/constraints/Constraint.kt +++ b/src/main/kotlin/gg/essential/elementa/constraints/Constraint.kt @@ -15,6 +15,7 @@ import java.awt.Color * [T] is what this constraint deals with, for example Float for WidthConstraint * or Color for ColorConstraint */ +@JvmDefaultWithCompatibility interface SuperConstraint { var cachedValue: T var recalculate: Boolean @@ -54,6 +55,7 @@ interface SuperConstraint { fun visitImpl(visitor: ConstraintVisitor, type: ConstraintType) } +@JvmDefaultWithCompatibility interface GeneralConstraint : PositionConstraint, SizeConstraint { fun getXValue(component: UIComponent): Float @@ -70,8 +72,10 @@ interface GeneralConstraint : PositionConstraint, SizeConstraint { override fun getRadiusImpl(component: UIComponent) = getXValue(component) } +@JvmDefaultWithCompatibility interface PositionConstraint : XConstraint, YConstraint +@JvmDefaultWithCompatibility interface XConstraint : SuperConstraint { fun getXPositionImpl(component: UIComponent): Float @@ -79,6 +83,7 @@ interface XConstraint : SuperConstraint { getCachedDebuggable(component, ConstraintType.X) { getXPositionImpl(it).roundToRealPixels() } } +@JvmDefaultWithCompatibility interface YConstraint : SuperConstraint { fun getYPositionImpl(component: UIComponent): Float @@ -86,8 +91,10 @@ interface YConstraint : SuperConstraint { getCachedDebuggable(component, ConstraintType.Y) { getYPositionImpl(it).roundToRealPixels() } } +@JvmDefaultWithCompatibility interface SizeConstraint : WidthConstraint, HeightConstraint, RadiusConstraint +@JvmDefaultWithCompatibility interface RadiusConstraint : SuperConstraint { fun getRadiusImpl(component: UIComponent): Float @@ -95,6 +102,7 @@ interface RadiusConstraint : SuperConstraint { getCachedDebuggable(component, ConstraintType.RADIUS) { getRadiusImpl(it).roundToRealPixels() } } +@JvmDefaultWithCompatibility interface WidthConstraint : SuperConstraint { fun getWidthImpl(component: UIComponent): Float @@ -102,6 +110,7 @@ interface WidthConstraint : SuperConstraint { getCachedDebuggable(component, ConstraintType.WIDTH) { getWidthImpl(it).roundToRealPixels() } } +@JvmDefaultWithCompatibility interface HeightConstraint : SuperConstraint { fun getHeightImpl(component: UIComponent): Float @@ -113,6 +122,7 @@ interface HeightConstraint : SuperConstraint { } } +@JvmDefaultWithCompatibility interface ColorConstraint : SuperConstraint { fun getColorImpl(component: UIComponent): Color @@ -120,6 +130,7 @@ interface ColorConstraint : SuperConstraint { getCached(component) { getColorImpl(it) } } +@JvmDefaultWithCompatibility interface MasterConstraint : PositionConstraint, SizeConstraint private inline fun SuperConstraint.getCachedDebuggable(component: UIComponent, type: ConstraintType, getImpl: (UIComponent) -> Float): Float { diff --git a/src/main/kotlin/gg/essential/elementa/font/FontProvider.kt b/src/main/kotlin/gg/essential/elementa/font/FontProvider.kt index 9fe8c070..143ad42e 100644 --- a/src/main/kotlin/gg/essential/elementa/font/FontProvider.kt +++ b/src/main/kotlin/gg/essential/elementa/font/FontProvider.kt @@ -4,6 +4,7 @@ import gg.essential.elementa.constraints.SuperConstraint import gg.essential.universal.UMatrixStack import java.awt.Color +@JvmDefaultWithCompatibility interface FontProvider : SuperConstraint { fun getStringWidth(string: String, pointSize: Float): Float @@ -53,4 +54,4 @@ interface FontProvider : SuperConstraint { fun getShadowHeight(): Float fun getBelowLineHeight(): Float -} \ No newline at end of file +}