summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorLorenz <lo.scherf@gmail.com>2022-09-08 18:11:29 +0200
committerLorenz <lo.scherf@gmail.com>2022-09-08 18:11:29 +0200
commit133f6a9bef6317bb9e6c2b54a7b17e0907c30f6a (patch)
tree55a4d8c73484a71657f9ea1e6dfa8f08fbbad43f /src/main/java/at/hannibal2/skyhanni/utils
parentf0407686615a430f19c57cb4ffe12ebd6235cc2b (diff)
downloadskyhanni-133f6a9bef6317bb9e6c2b54a7b17e0907c30f6a.tar.gz
skyhanni-133f6a9bef6317bb9e6c2b54a7b17e0907c30f6a.tar.bz2
skyhanni-133f6a9bef6317bb9e6c2b54a7b17e0907c30f6a.zip
updated config structure from neu
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/ChromaUtils.kt61
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt46
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt18
3 files changed, 119 insertions, 6 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/ChromaUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/ChromaUtils.kt
new file mode 100644
index 000000000..c1326fe8e
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/ChromaUtils.kt
@@ -0,0 +1,61 @@
+//package at.hannibal2.skyhanni.utils
+//
+//import at.hannibal2.skyhanni.utils.StringUtils.removeColor
+//import net.minecraft.client.Minecraft
+//import net.minecraft.util.EnumChatFormatting
+//import java.util.regex.Matcher
+//import java.util.regex.Pattern
+//
+//object ChromaUtils {
+//
+// private val CHROMA_REPLACE_PATTERN = Pattern.compile("\u00a7z(.+?)(?=\u00a7|$)")
+// private val startTime = 0
+//
+// fun chromaStringByColourCode(str: String): String? {
+// var str = str
+// if (str.contains("\u00a7z")) {
+// val matcher: Matcher = CHROMA_REPLACE_PATTERN.matcher(str)
+// val sb = StringBuffer()
+// while (matcher.find()) {
+// matcher.appendReplacement(
+// sb,
+// chromaString(matcher.group(1))
+// .replace("\\", "\\\\")
+// .replace("$", "\\$")
+// )
+// }
+// matcher.appendTail(sb)
+// str = sb.toString()
+// }
+// return str
+// }
+//
+// fun chromaString(str: String): String? {
+// return chromaString(str, 0f, false)
+// }
+//
+// fun chromaString(str: String, offset: Float, bold: Boolean): String {
+// var str = str
+// str = str.removeColor()
+// val currentTimeMillis = System.currentTimeMillis()
+// if (startTime == 0L) startTime =
+// currentTimeMillis
+// var chromaSpeed: Int = NotEnoughUpdates.INSTANCE.config.misc.chromaSpeed
+// if (chromaSpeed < 10) chromaSpeed = 10
+// if (chromaSpeed > 5000) chromaSpeed = 5000
+// val rainbowText = java.lang.StringBuilder()
+// var len = 0
+// for (i in 0 until str.length) {
+// val c = str[i]
+// var index: Int =
+// (offset + len / 12f - (currentTimeMillis - startTime) / chromaSpeed).toInt() % io..Utils.rainbow.size
+// len += Minecraft.getMinecraft().fontRendererObj.getCharWidth(c)
+// if (bold) len++
+// if (index < 0) index += io.github.moulberry.notenoughupdates.util.Utils.rainbow.size
+// rainbowText.append(io.github.moulberry.notenoughupdates.util.Utils.rainbow.get(index))
+// if (bold) rainbowText.append(EnumChatFormatting.BOLD)
+// rainbowText.append(c)
+// }
+// return rainbowText.toString()
+// }
+//} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt
index 58de5dcff..ce58f983e 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt
@@ -1,8 +1,10 @@
package at.hannibal2.skyhanni.utils
-import at.hannibal2.skyhanni.config.gui.core.config.Position
+import at.hannibal2.skyhanni.config.core.config.Position
+import at.hannibal2.skyhanni.config.core.util.render.TextRenderUtils.drawStringScaled
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraft.client.Minecraft
+import net.minecraft.client.gui.FontRenderer
import net.minecraft.client.gui.Gui
import net.minecraft.client.gui.ScaledResolution
import net.minecraft.client.renderer.GlStateManager
@@ -48,7 +50,12 @@ object RenderUtils {
if (lightingState) GlStateManager.enableLighting()
}
- fun RenderWorldLastEvent.drawColor(location: LorenzVec, color: LorenzColor, beacon: Boolean = false, alpha: Float = -1f) {
+ fun RenderWorldLastEvent.drawColor(
+ location: LorenzVec,
+ color: LorenzColor,
+ beacon: Boolean = false,
+ alpha: Float = -1f,
+ ) {
val (viewerX, viewerY, viewerZ) = getViewerPos(partialTicks)
val x = location.x - viewerX
val y = location.y - viewerY
@@ -402,11 +409,13 @@ object RenderUtils {
GlStateManager.disableLighting()
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0)
GlStateManager.enableTexture2D()
- minecraft.fontRendererObj.drawString(finalText,
+ minecraft.fontRendererObj.drawString(
+ finalText,
(-width).toFloat(),
yOff,
LorenzColor.WHITE.toColor().rgb,
- shadow)
+ shadow
+ )
GlStateManager.disableBlend()
GlStateManager.popMatrix()
}
@@ -495,7 +504,16 @@ object RenderUtils {
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f)
GlStateManager.popMatrix()
}
- fun drawCylinderInWorld(color: Color,x: Double, y: Double, z: Double, radius: Float, height: Float, partialTicks: Float) {
+
+ fun drawCylinderInWorld(
+ color: Color,
+ x: Double,
+ y: Double,
+ z: Double,
+ radius: Float,
+ height: Float,
+ partialTicks: Float,
+ ) {
GlStateManager.pushMatrix()
GL11.glNormal3f(0.0f, 1.0f, 0.0f)
@@ -545,5 +563,21 @@ object RenderUtils {
GlStateManager.popMatrix()
}
- private fun Color.bindColor() = GlStateManager.color(this.red / 255f, this.green / 255f, this.blue / 255f, this.alpha / 255f)
+ private fun Color.bindColor() =
+ GlStateManager.color(this.red / 255f, this.green / 255f, this.blue / 255f, this.alpha / 255f)
+
+ fun drawStringScaledMaxWidth(
+ str: String?,
+ fr: FontRenderer,
+ x: Float,
+ y: Float,
+ shadow: Boolean,
+ len: Int,
+ colour: Int,
+ ) {
+ val strLen = fr.getStringWidth(str)
+ var factor = len / strLen.toFloat()
+ factor = Math.min(1f, factor)
+ drawStringScaled(str, fr, x, y, shadow, colour, factor)
+ }
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt
index 55c87c3a8..039cf0e21 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.utils
import java.text.DecimalFormat
+import java.util.*
object StringUtils {
@@ -66,4 +67,21 @@ object StringUtils {
return "Now"
}
+
+ /**
+ * From https://stackoverflow.com/questions/10711494/get-values-in-treemap-whose-string-keys-start-with-a-pattern
+ */
+ fun <T> subMapWithKeysThatAreSuffixes(prefix: String, map: NavigableMap<String?, T>): Map<String?, T>? {
+ if ("" == prefix) return map
+ val lastKey = createLexicographicallyNextStringOfTheSameLength(prefix)
+ return map.subMap(prefix, true, lastKey, false)
+ }
+
+ fun createLexicographicallyNextStringOfTheSameLength(input: String): String {
+ val lastCharPosition = input.length - 1
+ val inputWithoutLastChar = input.substring(0, lastCharPosition)
+ val lastChar = input[lastCharPosition]
+ val incrementedLastChar = (lastChar.code + 1).toChar()
+ return inputWithoutLastChar + incrementedLastChar
+ }
} \ No newline at end of file