mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-13 01:16:46 -04:00
rename LayoutedElement
This commit is contained in:
parent
162d298917
commit
eeb44b5552
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Minosoft
|
* Minosoft
|
||||||
* Copyright (C) 2020-2022 Moritz Zwerger
|
* Copyright (C) 2020-2023 Moritz Zwerger
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
@ -15,6 +15,6 @@ package de.bixilon.minosoft.gui.rendering.gui.elements
|
|||||||
|
|
||||||
import de.bixilon.kotlinglm.vec2.Vec2
|
import de.bixilon.kotlinglm.vec2.Vec2
|
||||||
|
|
||||||
interface LayoutedElement {
|
interface ScreenPositionedElement {
|
||||||
val layoutOffset: Vec2
|
val screenOffset: Vec2
|
||||||
}
|
}
|
@ -25,8 +25,8 @@ import de.bixilon.minosoft.config.key.KeyCodes
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.GUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Pollable
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Pollable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.dragged.Dragged
|
import de.bixilon.minosoft.gui.rendering.gui.gui.dragged.Dragged
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.screen.CreditsScreen
|
import de.bixilon.minosoft.gui.rendering.gui.gui.screen.CreditsScreen
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.screen.SignEditorScreen
|
import de.bixilon.minosoft.gui.rendering.gui.gui.screen.SignEditorScreen
|
||||||
@ -283,7 +283,7 @@ class GUIManager(
|
|||||||
onMouseMove(guiRenderer.currentMousePosition)
|
onMouseMove(guiRenderer.currentMousePosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun push(element: LayoutedElement) {
|
fun push(element: ScreenPositionedElement) {
|
||||||
val layouted = LayoutedGUIElement(element)
|
val layouted = LayoutedGUIElement(element)
|
||||||
layouted.init()
|
layouted.init()
|
||||||
layouted.postInit()
|
layouted.postInit()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Minosoft
|
* Minosoft
|
||||||
* Copyright (C) 2020-2022 Moritz Zwerger
|
* Copyright (C) 2020-2023 Moritz Zwerger
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
@ -16,21 +16,21 @@ package de.bixilon.minosoft.gui.rendering.gui.gui
|
|||||||
import de.bixilon.kotlinglm.vec2.Vec2
|
import de.bixilon.kotlinglm.vec2.Vec2
|
||||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.dragged.Dragged
|
import de.bixilon.minosoft.gui.rendering.gui.gui.dragged.Dragged
|
||||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.isGreater
|
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.isGreater
|
||||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.isSmaller
|
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.isSmaller
|
||||||
|
|
||||||
open class LayoutedGUIElement<T : LayoutedElement>(
|
open class LayoutedGUIElement<T : ScreenPositionedElement>(
|
||||||
val layout: T,
|
val layout: T,
|
||||||
) : GUIMeshElement<Element>(layout.unsafeCast()) {
|
) : GUIMeshElement<Element>(layout.unsafeCast()) {
|
||||||
|
|
||||||
override fun prepareAsync() {
|
override fun prepareAsync() {
|
||||||
prepareAsync(layout.layoutOffset)
|
prepareAsync(layout.screenOffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun getOffset(position: Vec2): Vec2? {
|
protected open fun getOffset(position: Vec2): Vec2? {
|
||||||
val layoutOffset = layout.layoutOffset
|
val layoutOffset = layout.screenOffset
|
||||||
val size = element.size
|
val size = element.size
|
||||||
if (position isSmaller layoutOffset) {
|
if (position isSmaller layoutOffset) {
|
||||||
return null
|
return null
|
||||||
|
@ -18,7 +18,7 @@ import de.bixilon.minosoft.data.text.formatting.color.RGBColor
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GuiDelegate
|
import de.bixilon.minosoft.gui.rendering.gui.GuiDelegate
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
@ -29,10 +29,10 @@ abstract class Popper(
|
|||||||
guiRenderer: GUIRenderer,
|
guiRenderer: GUIRenderer,
|
||||||
position: Vec2,
|
position: Vec2,
|
||||||
val background: Boolean = true,
|
val background: Boolean = true,
|
||||||
) : Element(guiRenderer), LayoutedElement {
|
) : Element(guiRenderer), ScreenPositionedElement {
|
||||||
private val backgroundElement = ColorElement(guiRenderer, Vec2.EMPTY, color = RGBColor(10, 10, 20, 230))
|
private val backgroundElement = ColorElement(guiRenderer, Vec2.EMPTY, color = RGBColor(10, 10, 20, 230))
|
||||||
open var dead = false
|
open var dead = false
|
||||||
override var layoutOffset: Vec2 = EMPTY
|
override var screenOffset: Vec2 = EMPTY
|
||||||
protected set
|
protected set
|
||||||
var position by GuiDelegate(position)
|
var position by GuiDelegate(position)
|
||||||
|
|
||||||
@ -65,12 +65,12 @@ abstract class Popper(
|
|||||||
layoutOffset = position - Vec2(0, size.y + POSITION_OFFSET)
|
layoutOffset = position - Vec2(0, size.y + POSITION_OFFSET)
|
||||||
if (!(layoutOffset isSmaller EMPTY)) {
|
if (!(layoutOffset isSmaller EMPTY)) {
|
||||||
layoutOffset.x = minOf(maxOf(layoutOffset.x - size.x / 2 - POSITION_OFFSET, 0.0f), windowSize.x - size.x) // try to center element, but clamp on edges (try not to make the popper go out of the window)
|
layoutOffset.x = minOf(maxOf(layoutOffset.x - size.x / 2 - POSITION_OFFSET, 0.0f), windowSize.x - size.x) // try to center element, but clamp on edges (try not to make the popper go out of the window)
|
||||||
this.layoutOffset = layoutOffset
|
this.screenOffset = layoutOffset
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// failover
|
// failover
|
||||||
this.layoutOffset = EMPTY
|
this.screenOffset = EMPTY
|
||||||
}
|
}
|
||||||
|
|
||||||
fun show() {
|
fun show() {
|
||||||
|
@ -19,7 +19,7 @@ import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.ChildedElement
|
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.ChildedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.collection.SetChildrenManager
|
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.collection.SetChildrenManager
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.AtlasImageElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.AtlasImageElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
@ -27,10 +27,10 @@ import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2Util.EMPTY
|
|||||||
|
|
||||||
abstract class Screen(
|
abstract class Screen(
|
||||||
guiRenderer: GUIRenderer,
|
guiRenderer: GUIRenderer,
|
||||||
) : Element(guiRenderer), LayoutedElement, ChildedElement {
|
) : Element(guiRenderer), ScreenPositionedElement, ChildedElement {
|
||||||
override val children = SetChildrenManager(this)
|
override val children = SetChildrenManager(this)
|
||||||
protected val background = AtlasImageElement(guiRenderer, context.textures.whiteTexture, size = guiRenderer.screen.scaled, tint = RGBColor(0.0f, 0.0f, 0.0f, 0.8f))
|
protected val background = AtlasImageElement(guiRenderer, context.textures.whiteTexture, size = guiRenderer.screen.scaled, tint = RGBColor(0.0f, 0.0f, 0.0f, 0.8f))
|
||||||
override val layoutOffset: Vec2 = Vec2(0, 0)
|
override val screenOffset: Vec2 = Vec2(0, 0)
|
||||||
|
|
||||||
|
|
||||||
override fun update() {
|
override fun update() {
|
||||||
|
@ -20,18 +20,18 @@ import de.bixilon.minosoft.data.bossbar.Bossbar
|
|||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.layout.RowLayout
|
import de.bixilon.minosoft.gui.rendering.gui.elements.layout.RowLayout
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
import de.bixilon.minosoft.util.Initializable
|
import de.bixilon.minosoft.util.Initializable
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class BossbarLayout(guiRenderer: GUIRenderer) : RowLayout(guiRenderer, HorizontalAlignments.CENTER, 2.0f), LayoutedElement, Initializable {
|
class BossbarLayout(guiRenderer: GUIRenderer) : RowLayout(guiRenderer, HorizontalAlignments.CENTER, 2.0f), ScreenPositionedElement, Initializable {
|
||||||
private val connection = context.connection
|
private val connection = context.connection
|
||||||
private val bossbars: MutableMap<Bossbar, BossbarElement> = synchronizedMapOf()
|
private val bossbars: MutableMap<Bossbar, BossbarElement> = synchronizedMapOf()
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() = Vec2((guiRenderer.screen.scaled.x - super.size.x) / 2, 2)
|
get() = Vec2((guiRenderer.screen.scaled.x - super.size.x) / 2, 2)
|
||||||
|
|
||||||
val atlasManager = guiRenderer.atlasManager
|
val atlasManager = guiRenderer.atlasManager
|
||||||
|
@ -26,7 +26,7 @@ import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
|||||||
import de.bixilon.minosoft.gui.rendering.font.renderer.element.TextRenderProperties
|
import de.bixilon.minosoft.gui.rendering.font.renderer.element.TextRenderProperties
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.GUIBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.gui.GUIBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.elements.input.node.NodeTextInputElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.elements.input.node.NodeTextInputElement
|
||||||
@ -39,7 +39,7 @@ import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companio
|
|||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
import de.bixilon.minosoft.util.delegate.RenderingDelegate.observeRendering
|
import de.bixilon.minosoft.util.delegate.RenderingDelegate.observeRendering
|
||||||
|
|
||||||
class ChatElement(guiRenderer: GUIRenderer) : AbstractChatElement(guiRenderer), LayoutedElement {
|
class ChatElement(guiRenderer: GUIRenderer) : AbstractChatElement(guiRenderer), ScreenPositionedElement {
|
||||||
private val chatProfile = profile.chat
|
private val chatProfile = profile.chat
|
||||||
private val input = NodeTextInputElement(guiRenderer, ChatNode("", allowCLI = true), maxLength = connection.version.maxChatMessageSize).apply { parent = this@ChatElement }
|
private val input = NodeTextInputElement(guiRenderer, ChatNode("", allowCLI = true), maxLength = connection.version.maxChatMessageSize).apply { parent = this@ChatElement }
|
||||||
private val internal = InternalChatElement(guiRenderer).apply { parent = this@ChatElement }
|
private val internal = InternalChatElement(guiRenderer).apply { parent = this@ChatElement }
|
||||||
@ -61,7 +61,7 @@ class ChatElement(guiRenderer: GUIRenderer) : AbstractChatElement(guiRenderer),
|
|||||||
override val activeWhenHidden: Boolean
|
override val activeWhenHidden: Boolean
|
||||||
get() = true
|
get() = true
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() = Vec2(0, guiRenderer.screen.scaled.y - maxOf(messages.size.y, internal.size.y) - (LINES * TEXT_PROPERTIES.lineHeight) - CHAT_INPUT_MARGIN * 2)
|
get() = Vec2(0, guiRenderer.screen.scaled.y - maxOf(messages.size.y, internal.size.y) - (LINES * TEXT_PROPERTIES.lineHeight) - CHAT_INPUT_MARGIN * 2)
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.colle
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTextElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTextElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTimes
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTimes
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
@ -44,7 +44,7 @@ import de.bixilon.minosoft.util.Initializable
|
|||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
import de.bixilon.minosoft.util.delegate.RenderingDelegate.observeRendering
|
import de.bixilon.minosoft.util.delegate.RenderingDelegate.observeRendering
|
||||||
|
|
||||||
class HotbarElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, ChildedElement {
|
class HotbarElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, Initializable, ChildedElement {
|
||||||
override val children = ListChildrenManager(this)
|
override val children = ListChildrenManager(this)
|
||||||
val core = HotbarCoreElement(guiRenderer)
|
val core = HotbarCoreElement(guiRenderer)
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ class HotbarElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedEl
|
|||||||
private var itemTextSize: Vec2? = null
|
private var itemTextSize: Vec2? = null
|
||||||
|
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() = size.let { Vec2((guiRenderer.screen.scaled.x - it.x) / 2, guiRenderer.screen.scaled.y - it.y) }
|
get() = size.let { Vec2((guiRenderer.screen.scaled.x - it.x) / 2, guiRenderer.screen.scaled.y - it.y) }
|
||||||
|
|
||||||
private var renderElements = setOf(
|
private var renderElements = setOf(
|
||||||
|
@ -22,7 +22,7 @@ import de.bixilon.minosoft.gui.rendering.gui.GuiDelegate
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.ChildedElement
|
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.ChildedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.SingleChildrenManager
|
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.SingleChildrenManager
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
@ -31,10 +31,10 @@ import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class PerformanceHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, ChildedElement {
|
class PerformanceHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, ChildedElement {
|
||||||
override val children = SingleChildrenManager()
|
override val children = SingleChildrenManager()
|
||||||
private val text = TextElement(guiRenderer, "", parent = this)
|
private val text = TextElement(guiRenderer, "", parent = this)
|
||||||
override val layoutOffset: Vec2 = Vec2(2, 2)
|
override val screenOffset: Vec2 = Vec2(2, 2)
|
||||||
private var fps by GuiDelegate(0.0)
|
private var fps by GuiDelegate(0.0)
|
||||||
private var hide by GuiDelegate(false)
|
private var hide by GuiDelegate(false)
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ import de.bixilon.minosoft.gui.rendering.font.renderer.element.TextRenderPropert
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.layout.RowLayout
|
import de.bixilon.minosoft.gui.rendering.gui.elements.layout.RowLayout
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.spacer.LineSpacerElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.spacer.LineSpacerElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.AutoTextElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.AutoTextElement
|
||||||
@ -60,11 +60,11 @@ import de.bixilon.minosoft.util.KUtil.format
|
|||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
import de.bixilon.minosoft.util.SystemInformation
|
import de.bixilon.minosoft.util.SystemInformation
|
||||||
|
|
||||||
class DebugHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable {
|
class DebugHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, Initializable {
|
||||||
private val connection = context.connection
|
private val connection = context.connection
|
||||||
private val left = initLeft()
|
private val left = initLeft()
|
||||||
private val right = initRight()
|
private val right = initRight()
|
||||||
override val layoutOffset: Vec2 = Vec2.EMPTY
|
override val screenOffset: Vec2 = Vec2.EMPTY
|
||||||
override val ignoreScreenDimensions: Boolean get() = true
|
override val ignoreScreenDimensions: Boolean get() = true
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.Singl
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
@ -44,14 +44,14 @@ import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companio
|
|||||||
import de.bixilon.minosoft.util.Initializable
|
import de.bixilon.minosoft.util.Initializable
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class ScoreboardSideElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, AsyncDrawable, ChildedElement {
|
class ScoreboardSideElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, Initializable, AsyncDrawable, ChildedElement {
|
||||||
override val children = SingleChildrenManager()
|
override val children = SingleChildrenManager()
|
||||||
private val backgroundElement = ColorElement(guiRenderer, size = Vec2.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
private val backgroundElement = ColorElement(guiRenderer, size = Vec2.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
||||||
private val nameBackgroundElement = ColorElement(guiRenderer, size = Vec2.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
private val nameBackgroundElement = ColorElement(guiRenderer, size = Vec2.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
||||||
private val nameElement = TextElement(guiRenderer, "", background = null, parent = this)
|
private val nameElement = TextElement(guiRenderer, "", background = null, parent = this)
|
||||||
private val scores: LockMap<ScoreboardScore, ScoreboardScoreElement> = lockMapOf()
|
private val scores: LockMap<ScoreboardScore, ScoreboardScoreElement> = lockMapOf()
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() = super.size.let { return@let Vec2(guiRenderer.screen.scaled.x - it.x, (guiRenderer.screen.scaled.y - it.y) / 2) }
|
get() = super.size.let { return@let Vec2(guiRenderer.screen.scaled.x - it.x, (guiRenderer.screen.scaled.y - it.y) / 2) }
|
||||||
override val skipDraw: Boolean
|
override val skipDraw: Boolean
|
||||||
get() = objective == null
|
get() = objective == null
|
||||||
|
@ -32,7 +32,7 @@ import de.bixilon.minosoft.gui.rendering.gui.atlas.AtlasElement
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
@ -48,7 +48,7 @@ import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.locks.ReentrantLock
|
import java.util.concurrent.locks.ReentrantLock
|
||||||
|
|
||||||
class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, AsyncDrawable, ChildedElement {
|
class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, Initializable, AsyncDrawable, ChildedElement {
|
||||||
override val children = ListChildrenManager(this)
|
override val children = ListChildrenManager(this)
|
||||||
val header = TextElement(guiRenderer, "", background = null, properties = TextRenderProperties(HorizontalAlignments.CENTER), parent = this)
|
val header = TextElement(guiRenderer, "", background = null, properties = TextRenderProperties(HorizontalAlignments.CENTER), parent = this)
|
||||||
val footer = TextElement(guiRenderer, "", background = null, properties = TextRenderProperties(HorizontalAlignments.CENTER), parent = this)
|
val footer = TextElement(guiRenderer, "", background = null, properties = TextRenderProperties(HorizontalAlignments.CENTER), parent = this)
|
||||||
@ -65,7 +65,7 @@ class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedE
|
|||||||
private set
|
private set
|
||||||
private var columns = 0
|
private var columns = 0
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() = Vec2((guiRenderer.screen.scaled.x - super.size.x) / 2, 20)
|
get() = Vec2((guiRenderer.screen.scaled.x - super.size.x) / 2, 20)
|
||||||
|
|
||||||
private val atlasManager = guiRenderer.atlasManager
|
private val atlasManager = guiRenderer.atlasManager
|
||||||
|
@ -22,7 +22,7 @@ import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.colle
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments.Companion.getOffset
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTextElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTextElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTimes
|
import de.bixilon.minosoft.gui.rendering.gui.elements.text.fade.FadingTimes
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
@ -37,7 +37,7 @@ import de.bixilon.minosoft.util.Initializable
|
|||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
// ToDo: Remove subtitle when hidden
|
// ToDo: Remove subtitle when hidden
|
||||||
class TitleElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, ChildedElement {
|
class TitleElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, Initializable, ChildedElement {
|
||||||
override val children = SetChildrenManager(this)
|
override val children = SetChildrenManager(this)
|
||||||
val title = FadingTextElement(guiRenderer, "", background = null, properties = TextRenderProperties(scale = 4.0f), parent = this)
|
val title = FadingTextElement(guiRenderer, "", background = null, properties = TextRenderProperties(scale = 4.0f), parent = this)
|
||||||
val subtitle = FadingTextElement(guiRenderer, "", background = null, properties = TextRenderProperties(scale = 2.0f), parent = this)
|
val subtitle = FadingTextElement(guiRenderer, "", background = null, properties = TextRenderProperties(scale = 2.0f), parent = this)
|
||||||
@ -49,7 +49,7 @@ class TitleElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedEle
|
|||||||
subtitle.times = value
|
subtitle.times = value
|
||||||
}
|
}
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() {
|
get() {
|
||||||
val layoutOffset = Vec2.EMPTY
|
val layoutOffset = Vec2.EMPTY
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.ChildedElement
|
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.ChildedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.collection.SetChildrenManager
|
import de.bixilon.minosoft.gui.rendering.gui.abstractions.children.manager.collection.SetChildrenManager
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.ScreenPositionedElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.primitive.ColorElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
@ -35,13 +35,13 @@ import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
|||||||
import de.bixilon.minosoft.input.interaction.AttackHandler
|
import de.bixilon.minosoft.input.interaction.AttackHandler
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class WawlaHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, AsyncDrawable, ChildedElement {
|
class WawlaHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), ScreenPositionedElement, AsyncDrawable, ChildedElement {
|
||||||
override val children = SetChildrenManager(this)
|
override val children = SetChildrenManager(this)
|
||||||
private var element: WawlaElement? = null
|
private var element: WawlaElement? = null
|
||||||
|
|
||||||
val profile = guiRenderer.connection.profiles.gui.hud.wawla
|
val profile = guiRenderer.connection.profiles.gui.hud.wawla
|
||||||
|
|
||||||
override val layoutOffset: Vec2
|
override val screenOffset: Vec2
|
||||||
get() = Vec2((guiRenderer.screen.scaled.x - ((element?.size?.x ?: 0.0f) + BACKGROUND_SIZE)) / 2, BACKGROUND_SIZE)
|
get() = Vec2((guiRenderer.screen.scaled.x - ((element?.size?.x ?: 0.0f) + BACKGROUND_SIZE)) / 2, BACKGROUND_SIZE)
|
||||||
override val skipDraw: Boolean
|
override val skipDraw: Boolean
|
||||||
get() = !profile.enabled
|
get() = !profile.enabled
|
||||||
|
Loading…
x
Reference in New Issue
Block a user