From 4db50e521e6e5467be3c67ad28257580f7c47fdc Mon Sep 17 00:00:00 2001 From: Bixilon Date: Wed, 20 Apr 2022 15:23:45 +0200 Subject: [PATCH] block entity: fix sign nbt reading --- .../data/entities/block/SignBlockEntity.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/data/entities/block/SignBlockEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/block/SignBlockEntity.kt index a71ee5e2d..db19cdd43 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/block/SignBlockEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/block/SignBlockEntity.kt @@ -14,10 +14,12 @@ package de.bixilon.minosoft.data.entities.block import de.bixilon.kotlinglm.vec3.Vec3i -import de.bixilon.kutil.cast.CastUtil.nullCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState +import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.ChatComponent +import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.world.entities.renderer.sign.SignBlockEntityRenderer import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection @@ -25,13 +27,17 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition class SignBlockEntity(connection: PlayConnection) : MeshedBlockEntity(connection) { var lines: Array = Array(ProtocolDefinition.SIGN_LINES) { ChatComponent.of("") } + var color: RGBColor = ChatColors.BLACK + var glowing = false override fun updateNBT(nbt: Map) { - for (i in 0 until ProtocolDefinition.SIGN_LINES) { - val tag = nbt["Text$i"].nullCast() ?: continue + color = nbt["Color"]?.toString()?.lowercase()?.let { ChatColors.NAME_MAP[it] } ?: ChatColors.BLACK + glowing = nbt["GlowingText"]?.toBoolean() ?: false + for (i in 1..ProtocolDefinition.SIGN_LINES) { + val tag = nbt["Text$i"]?.toString() ?: continue - lines[i] = ChatComponent.of(tag, translator = connection.language) + lines[i - 1] = ChatComponent.of(tag, translator = connection.language) } }