diff options
| author | Linnea Gräf <nea@nea.moe> | 2024-08-11 13:22:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-11 13:22:24 +0200 |
| commit | 8903d9fa783455558d20eb32a2038c87ab5913be (patch) | |
| tree | 2c925d0ecf625f8e8a5505960d0d51d2201e88e2 /src/main/java/at/hannibal2/skyhanni/utils/compat | |
| parent | a8d4861b051298cc8a1db3c5210a32abab866b1e (diff) | |
| download | skyhanni-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')
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 +} + + |
