summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils/compat
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-08-11 13:22:24 +0200
committerGitHub <noreply@github.com>2024-08-11 13:22:24 +0200
commit8903d9fa783455558d20eb32a2038c87ab5913be (patch)
tree2c925d0ecf625f8e8a5505960d0d51d2201e88e2 /src/main/java/at/hannibal2/skyhanni/utils/compat
parenta8d4861b051298cc8a1db3c5210a32abab866b1e (diff)
downloadskyhanni-8903d9fa783455558d20eb32a2038c87ab5913be.tar.gz
skyhanni-8903d9fa783455558d20eb32a2038c87ab5913be.tar.bz2
skyhanni-8903d9fa783455558d20eb32a2038c87ab5913be.zip
Add multi version preprocessor (#2283)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils/compat')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/compat/ArrayNormalization.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/compat/GuiScreenUtils.kt59
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/compat/Pattern.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/compat/Pattterns.java15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/compat/SkyhanniBaseScreen.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt63
6 files changed, 157 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/ArrayNormalization.kt b/src/main/java/at/hannibal2/skyhanni/utils/compat/ArrayNormalization.kt
new file mode 100644
index 000000000..2dde4bdc5
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/ArrayNormalization.kt
@@ -0,0 +1,6 @@
+package at.hannibal2.skyhanni.utils.compat
+
+
+inline fun <reified T> List<T>.normalizeAsArray() = this.toTypedArray()
+fun <T> Array<T>.normalizeAsArray() = this
+
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/GuiScreenUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/compat/GuiScreenUtils.kt
new file mode 100644
index 000000000..0cec5aeb2
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/GuiScreenUtils.kt
@@ -0,0 +1,59 @@
+package at.hannibal2.skyhanni.utils.compat
+
+import net.minecraft.client.Minecraft
+import net.minecraft.client.gui.ScaledResolution
+import org.lwjgl.input.Mouse
+
+object GuiScreenUtils {
+ private val mc get() = Minecraft.getMinecraft()
+ val scaledWindowHeight
+ get() =
+//#if MC < 1.16
+ ScaledResolution(mc).scaledHeight
+//#else
+//$$ mc.window.guiScaledHeight
+//#endif
+
+ val scaledWindowWidth
+ get() =
+//#if MC < 1.16
+ ScaledResolution(mc).scaledWidth
+//#else
+//$$ mc.window.guiScaledWidth
+//#endif
+
+ val displayWidth
+ get() =
+//#if MC < 1.16
+ mc.displayWidth
+//#else
+//$$ mc.window.width
+//#endif
+
+
+ val displayHeight
+ get() =
+//#if MC < 1.16
+ mc.displayHeight
+//#else
+//$$ mc.window.height
+//#endif
+
+ val globalMouseX get() = Mouse.getX()
+ val globalMouseY get() = Mouse.getY()
+
+ val mouseX
+ get() = globalMouseX * scaledWindowWidth / displayWidth
+ val mouseY: Int
+ get() {
+ val height = this.scaledWindowHeight
+ //TODO: in later versions the height - factor is removed, i think
+ val y = globalMouseY * height / displayHeight
+//#if MC < 1.16
+ return height - y - 1
+//#else
+//$$ return y
+//#endif
+ }
+
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/Pattern.java b/src/main/java/at/hannibal2/skyhanni/utils/compat/Pattern.java
new file mode 100644
index 000000000..f1e3a5f78
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/Pattern.java
@@ -0,0 +1,4 @@
+package at.hannibal2.skyhanni.utils.compat;
+
+public @interface Pattern {
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/Pattterns.java b/src/main/java/at/hannibal2/skyhanni/utils/compat/Pattterns.java
new file mode 100644
index 000000000..c8f6389a1
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/Pattterns.java
@@ -0,0 +1,15 @@
+package at.hannibal2.skyhanni.utils.compat;
+
+import net.minecraft.client.Minecraft;
+
+public class Pattterns {
+
+ @Pattern
+ private static boolean isOnMainThread(Minecraft mc) {
+ //#if MC>=11400
+ //$$ return mc.isOnThread();
+ //#else
+ return mc.isCallingFromMinecraftThread();
+ //#endif
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/SkyhanniBaseScreen.kt b/src/main/java/at/hannibal2/skyhanni/utils/compat/SkyhanniBaseScreen.kt
new file mode 100644
index 000000000..e9b8233ea
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/SkyhanniBaseScreen.kt
@@ -0,0 +1,10 @@
+package at.hannibal2.skyhanni.utils.compat
+
+import net.minecraft.client.gui.GuiScreen
+
+abstract class SkyhanniBaseScreen : GuiScreen(
+ //#if MC > 1.12
+ //$$ net.minecraft.network.chat.TextComponent.EMPTY
+ //#endif
+) {
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt b/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt
new file mode 100644
index 000000000..7916eb4e5
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt
@@ -0,0 +1,63 @@
+package at.hannibal2.skyhanni.utils.compat
+
+import net.minecraft.client.Minecraft
+import net.minecraft.client.multiplayer.WorldClient
+import net.minecraft.entity.Entity
+import net.minecraft.entity.item.EntityArmorStand
+import net.minecraft.entity.player.EntityPlayer
+import net.minecraft.potion.Potion
+import net.minecraft.util.IChatComponent
+
+fun WorldClient.getLoadedPlayers(): List<EntityPlayer> =
+//#if MC < 1.14
+ this.playerEntities
+//#else
+//$$ this.players()
+//#endif
+
+
+fun Entity.getNameAsString(): String =
+ this.name
+//#if MC >= 1.14
+//$$ .getString()
+//#endif
+
+fun EntityArmorStand.getArmorOrFullInventory() =
+//#if MC < 1.12
+ this.inventory
+//#else
+//$$ this.getArmorInventoryList()
+//#endif
+
+fun Minecraft.isOnMainThread() =
+//#if MC < 1.14
+ this.isCallingFromMinecraftThread
+//#else
+//$$ this.isSameThread
+//#endif
+
+fun IChatComponent.getFormattedTextCompat() =
+//#if MC < 1.16
+ this.formattedText
+//#else
+//$$ run {
+//$$ val sb = StringBuilder()
+//$$ for (component in iterator()) {
+//$$ sb.append(component.style.formattingCode)
+//$$ sb.append(component.unformattedComponentText)
+//$$ sb.append("§r")
+//$$ }
+//$$ sb.toString()
+//$$ }
+//#endif
+
+object Effects {
+ val invisibility =
+ //#if MC <1.12
+ Potion.invisibility
+ //#else
+ //$$ net.minecraft.init.PotionTypes.INVISIBILITY
+ //#endif
+}
+
+