и масштаб тоже нормально считать надо

This commit is contained in:
YuRaNnNzZZ 2025-03-04 22:41:58 +03:00
parent 18b89b4031
commit e8222216e0
Signed by: YuRaNnNzZZ
GPG Key ID: 5F71738C85A6006D

View File

@ -4,6 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack
import net.minecraft.client.renderer.MultiBufferSource
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
import net.minecraft.network.chat.MutableComponent
import ru.dbotthepony.mc.otm.block.entity.decorative.HoloSignBlockEntity
import ru.dbotthepony.mc.otm.client.font
import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource
@ -34,7 +35,8 @@ class HoloSignRenderer(private val context: BlockEntityRendererProvider.Context)
poseStack.translate(0.5f, 0.5f, 0.75f)
poseStack.scale(0.01f, 0.01f, 0.01f)
val lines = tile.signText.split('\n')
val style = if (tile.smallerFont) SMALL_FONT_STYLE else STANDARD_FONT_STYLE
val lines: List<MutableComponent> = tile.signText.split('\n').map { TextComponent(it).withStyle(style) }
val totalHeight = lines.size * font.lineHeight + (lines.size - 1) * 2f
var y = -totalHeight / 2f
@ -45,9 +47,8 @@ class HoloSignRenderer(private val context: BlockEntityRendererProvider.Context)
poseStack.scale(mul, mul, mul)
}
val style = if (tile.smallerFont) SMALL_FONT_STYLE else STANDARD_FONT_STYLE
for (line in lines) {
font.draw(poseStack = poseStack, buffer = bufferSource, text = TextComponent(line).withStyle(style), gravity = RenderGravity.TOP_CENTER, y = y, color = RGBAColor(tile.textRed, tile.textGreen, tile.textBlue, tile.textAlpha))
font.draw(poseStack = poseStack, buffer = bufferSource, text = line, gravity = RenderGravity.TOP_CENTER, y = y, color = RGBAColor(tile.textRed, tile.textGreen, tile.textBlue, tile.textAlpha))
y += font.lineHeight + 2f
}