diff options
| author | Lorenz <lo.scherf@gmail.com> | 2022-09-08 18:11:29 +0200 |
|---|---|---|
| committer | Lorenz <lo.scherf@gmail.com> | 2022-09-08 18:11:29 +0200 |
| commit | 133f6a9bef6317bb9e6c2b54a7b17e0907c30f6a (patch) | |
| tree | 55a4d8c73484a71657f9ea1e6dfa8f08fbbad43f /src/main/java/at/hannibal2/skyhanni/utils | |
| parent | f0407686615a430f19c57cb4ffe12ebd6235cc2b (diff) | |
| download | skyhanni-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')
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 |
