mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 02:15:34 -04:00
hud: fix experience bar offset
This commit is contained in:
parent
1330911287
commit
7dbb07e2de
@ -37,7 +37,6 @@ open class TextElement(
|
||||
var backgroundColor: RGBColor = RenderConstants.TEXT_BACKGROUND_COLOR,
|
||||
parent: Element? = null,
|
||||
) : LabeledElement(hudRenderer) {
|
||||
private var previousMaxSize = Vec2i.EMPTY
|
||||
var renderInfo = TextRenderInfo()
|
||||
|
||||
override var text: Any = text
|
||||
@ -57,7 +56,6 @@ open class TextElement(
|
||||
ChatComponentRenderer.render(Vec2i.EMPTY, Vec2i.EMPTY, prefSize, 0, InfiniteSizeElement(hudRenderer), fontAlignment, renderWindow, null, TextRenderInfo(), value)
|
||||
}
|
||||
_prefSize = prefSize
|
||||
cacheUpToDate = false
|
||||
forceApply()
|
||||
}
|
||||
|
||||
@ -67,7 +65,6 @@ open class TextElement(
|
||||
}
|
||||
|
||||
override fun forceSilentApply() {
|
||||
val maxSize = maxSize
|
||||
val size = Vec2i.EMPTY
|
||||
if (!emptyMessage) {
|
||||
val renderInfo = TextRenderInfo()
|
||||
@ -76,16 +73,12 @@ open class TextElement(
|
||||
this.renderInfo = renderInfo
|
||||
}
|
||||
|
||||
|
||||
this.previousMaxSize = maxSize
|
||||
this.cacheUpToDate = false
|
||||
_size = size
|
||||
}
|
||||
|
||||
override fun onChildChange(child: Element?) = error("A TextElement can not have a child!")
|
||||
|
||||
|
||||
|
||||
override fun forceRender(offset: Vec2i, z: Int, consumer: GUIVertexConsumer): Int {
|
||||
if (emptyMessage) {
|
||||
return 0
|
||||
|
@ -60,13 +60,13 @@ class HotbarElement(hudRenderer: HUDRenderer) : Element(hudRenderer) {
|
||||
forceSilentApply()
|
||||
var maxZ = 0
|
||||
|
||||
val maxSize = topLeft.size.max(topRight.size)
|
||||
val topMaxSize = topLeft.size.max(topRight.size)
|
||||
|
||||
maxZ = max(maxZ, topLeft.render(offset + Vec2i(0, VerticalAlignments.TOP.getOffset(maxSize.y, topLeft.size.y)), z, consumer))
|
||||
maxZ = max(maxZ, topRight.render(offset + Vec2i(HorizontalAlignments.RIGHT.getOffset(size.x, topRight.size.x), VerticalAlignments.BOTTOM.getOffset(maxSize.y, topRight.size.y)), z, consumer))
|
||||
offset.y += maxSize.y
|
||||
maxZ = max(maxZ, topLeft.render(offset + Vec2i(0, VerticalAlignments.BOTTOM.getOffset(topMaxSize.y, topLeft.size.y)), z, consumer))
|
||||
maxZ = max(maxZ, topRight.render(offset + Vec2i(HorizontalAlignments.RIGHT.getOffset(size.x, topRight.size.x), VerticalAlignments.BOTTOM.getOffset(topMaxSize.y, topRight.size.y)), z, consumer))
|
||||
offset.y += topMaxSize.y
|
||||
|
||||
maxZ = max(maxZ, experience.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(maxSize.y, experience.size.y), 0), z, consumer))
|
||||
maxZ = max(maxZ, experience.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(size.x, experience.size.x), 0), z, consumer))
|
||||
offset.y += experience.size.y
|
||||
maxZ = max(maxZ, base.render(offset, z, consumer))
|
||||
|
||||
|
@ -64,10 +64,12 @@ class HotbarExperienceBarElement(hudRenderer: HUDRenderer) : Element(hudRenderer
|
||||
|
||||
progress.render(offset, z + 1, consumer)
|
||||
|
||||
// level
|
||||
val text = TextElement(hudRenderer, TextComponent(level).apply { color = RenderConstants.EXPERIENCE_BAR_LEVEL_COLOR }, fontAlignment = HorizontalAlignments.CENTER, true)
|
||||
if (level > 0) {
|
||||
// level
|
||||
val text = TextElement(hudRenderer, TextComponent(level).apply { color = RenderConstants.EXPERIENCE_BAR_LEVEL_COLOR }, fontAlignment = HorizontalAlignments.CENTER, true)
|
||||
|
||||
text.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(size.x, text.size.x), -5), z + 2, consumer)
|
||||
text.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(size.x, text.size.x), -5), z + 2, consumer)
|
||||
}
|
||||
|
||||
return 2 + TextElement.LAYERS // background + foreground + text(level)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user