@@ -44,10 +44,10 @@ class FontRenderer {
4444 private val shader = Shader (" renderer/font" )
4545 private val pipeline = VertexPipeline (VertexMode .TRIANGLES , VertexAttrib .Group .FONT )
4646
47- val shadowShift get() = RenderSettings .shadowShift * 5.0
48- val baselineOffset get() = RenderSettings .baselineOffset * 2.0f - 10f
49- val gap get() = RenderSettings .gap * 0.5f - 0.8f
50- val scaleMultiplier: Double get() = ClickGui .settingsFontScale
47+ private val shadowShift get() = RenderSettings .shadowShift * 5.0
48+ private val baselineOffset get() = RenderSettings .baselineOffset * 2.0f - 10f
49+ private val gap get() = RenderSettings .gap * 0.5f - 0.8f
50+ private val scaleMultiplier: Double get() = ClickGui .settingsFontScale
5151
5252 /* *
5353 * Builds the vertex array for rendering the provided text string at a specified position.
@@ -145,7 +145,7 @@ class FontRenderer {
145145 val emojiColor = color.setAlpha(color.a)
146146
147147 var posX = 0.0
148- val posY = getHeight(scale) * - 0.5 + baselineOffset * actualScale
148+ var posY = getHeight(scale) * - 0.5 + baselineOffset * actualScale
149149
150150 fun drawGlyph (info : GlyphInfo ? , color : Color , offset : Double = 0.0) {
151151 if (info == null ) return
@@ -164,12 +164,17 @@ class FontRenderer {
164164 if (section.isEmpty()) return
165165 if (! parseEmoji || parsed.isEmpty() || ! hasEmojis) {
166166 // Draw simple characters if no emojis are present
167- section
168- .mapNotNull { chars[it] }
169- .forEach { charGlyph ->
170- if (shadow && shadowShift > 0.0 ) drawGlyph(charGlyph, shadowColor, shadowShift)
171- drawGlyph(charGlyph, color)
167+ section.forEach { char ->
168+ // Logic for control characters
169+ when (char) {
170+ ' \n ' , ' \r ' -> { posX = 0.0 ; posY + = chars.height * actualScale; return @forEach }
172171 }
172+
173+ val glyph = chars[char] ? : return @forEach
174+
175+ if (shadow && shadowShift > 0.0 ) drawGlyph(glyph, shadowColor, shadowShift)
176+ drawGlyph(glyph, color)
177+ }
173178 } else {
174179 // Only compute the first parsed emoji to avoid duplication
175180 // This is important in order to keep the parsed ranges valid
0 commit comments