diff --git a/src/main/java/de/bixilon/minosoft/config/config/game/GameConfig.kt b/src/main/java/de/bixilon/minosoft/config/config/game/GameConfig.kt
index c08806fd6..4e2647ace 100644
--- a/src/main/java/de/bixilon/minosoft/config/config/game/GameConfig.kt
+++ b/src/main/java/de/bixilon/minosoft/config/config/game/GameConfig.kt
@@ -18,7 +18,7 @@ import de.bixilon.minosoft.config.config.game.entities.EntitiesConfig
import de.bixilon.minosoft.config.config.game.graphics.GraphicsGameConfig
import de.bixilon.minosoft.config.config.game.sound.SoundConfig
import de.bixilon.minosoft.config.config.game.world.WorldConfig
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.hud.elements.primitive.HUDElement
data class GameConfig(
diff --git a/src/main/java/de/bixilon/minosoft/config/config/game/elements/ElementsGameConfig.kt b/src/main/java/de/bixilon/minosoft/config/config/game/elements/ElementsGameConfig.kt
deleted file mode 100644
index 55853a263..000000000
--- a/src/main/java/de/bixilon/minosoft/config/config/game/elements/ElementsGameConfig.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Minosoft
- * Copyright (C) 2021 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 distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with this program. If not, see .
- *
- * This software is not affiliated with Mojang AB, the original developer of Minecraft.
- */
-
-package de.bixilon.minosoft.config.config.game.elements
-
-import de.bixilon.minosoft.data.mappings.ResourceLocation
-import de.bixilon.minosoft.gui.rendering.hud.elements.primitive.HUDElement
-
-data class ElementsGameConfig(
- val entries: MutableMap = mutableMapOf(),
-)
diff --git a/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt b/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt
index bed42d6e1..dc504c91a 100644
--- a/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt
+++ b/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt
@@ -17,7 +17,10 @@ import com.google.gson.JsonElement
import com.google.gson.JsonObject
import de.bixilon.minosoft.data.locale.minecraft.Translator
import de.bixilon.minosoft.data.text.RGBColor.Companion.asColor
+import de.bixilon.minosoft.data.text.events.ClickEvent
+import de.bixilon.minosoft.data.text.events.HoverEvent
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
+import de.bixilon.minosoft.util.KUtil.nullCast
import javafx.collections.ObservableList
import javafx.scene.Node
import java.text.CharacterIterator
@@ -54,9 +57,8 @@ class BaseComponent : ChatComponent {
val formattingChar = iterator.next()
- ChatColors.getColorByFormattingChar(formattingChar)?.let {
+ ChatColors.VALUES.getOrNull(Character.digit(formattingChar, 16))?.let {
push()
- currentColor = it
} ?: ChatFormattingCodes.getChatFormattingCodeByChar(formattingChar)?.let {
push()
@@ -92,7 +94,7 @@ class BaseComponent : ChatComponent {
if (colorName.startsWith("#")) {
colorName.asColor()
} else {
- ChatColors.getColorByName(colorName)
+ ChatCode.FORMATTING_CODES[colorName]?.nullCast()
}
} ?: parent?.color
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderer.kt
index af88f3278..562ab27e2 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderer.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderer.kt
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.hud
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.config.config.game.controls.KeyBindingsNames
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.RenderConstants
import de.bixilon.minosoft.gui.rendering.RenderWindow
import de.bixilon.minosoft.gui.rendering.Renderer
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/atlas/HUDAtlasElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/atlas/HUDAtlasElement.kt
index a453406a5..5ac03bd51 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/atlas/HUDAtlasElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/atlas/HUDAtlasElement.kt
@@ -32,15 +32,6 @@ data class HUDAtlasElement(
override val size: Vec2i
get() = binding.size
- val uvs: Array get() {
- return arrayOf(
- Vec2(uvStart.x, uvStart.y),
- Vec2(uvStart.x, uvEnd.y),
- Vec2(uvEnd.x, uvStart.y),
- Vec2(uvEnd.x, uvEnd.y),
- )
- }
-
fun postInit() {
uvStart = (Vec2(binding.start) + RenderConstants.PIXEL_UV_PIXEL_ADD) * texture.arraySinglePixelFactor
uvEnd = Vec2(binding.end) * texture.arraySinglePixelFactor
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/HUDElementPositionAnchors.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/HUDElementPositionAnchors.kt
index 32e715dc5..fc952b309 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/HUDElementPositionAnchors.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/HUDElementPositionAnchors.kt
@@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.hud.elements
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
import glm_.vec2.Vec2i
enum class HUDElementPositionAnchors(val resourceLocation: ResourceLocation, val quadTransform: (Vec2i, Vec2i) -> Array) {
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/position/HUDElementPositionAnchors.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/position/HUDElementPositionAnchors.kt
index 0571e9c12..91df911c3 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/position/HUDElementPositionAnchors.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/position/HUDElementPositionAnchors.kt
@@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.hud.elements.position
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY
import de.bixilon.minosoft.gui.rendering.util.VecUtil.ONES
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec2
@@ -8,9 +8,9 @@ import glm_.vec2.Vec2
import glm_.vec2.Vec2i
enum class HUDElementPositionAnchors(
- val resourceLocation: ResourceLocation,
- val quadTransform: (Vec2i, Vec2i) -> Array,
- val positionTransform: Vec2
+ val resourceLocation: ResourceLocation,
+ val quadTransform: (Vec2i, Vec2i) -> Array,
+ val positionTransform: Vec2
) {
// quad transform order: top left, bottom left, bottom right, top right
CENTER(ResourceLocation("minosoft:center"),
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElement.kt
index 01086ff49..abd9d11d3 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElement.kt
@@ -13,12 +13,6 @@
package de.bixilon.minosoft.gui.rendering.hud.elements.primitive
-import de.bixilon.minosoft.data.mappings.ResourceLocation
-import de.bixilon.minosoft.data.text.RGBColor
-import de.bixilon.minosoft.gui.rendering.hud.HUDRenderer
-import de.bixilon.minosoft.gui.rendering.hud.elements.HUDElementPositionAnchors
-import de.bixilon.minosoft.gui.rendering.hud.elements.HUDElementVec2
-import glm_.mat4x4.Mat4
import de.bixilon.minosoft.gui.rendering.hud.HUDRenderer
import de.bixilon.minosoft.gui.rendering.hud.elements.position.HUDElementPositionAnchors
import de.bixilon.minosoft.gui.rendering.hud.elements.position.HUDElementVec2
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementPosition.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementPosition.kt
index 14e88d2a5..354cc8888 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementPosition.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementPosition.kt
@@ -1,7 +1,7 @@
package de.bixilon.minosoft.gui.rendering.hud.elements.primitive
import de.bixilon.minosoft.Minosoft
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.hud.HUDRenderer
import de.bixilon.minosoft.gui.rendering.hud.elements.position.HUDElementPositionAnchors
import de.bixilon.minosoft.gui.rendering.hud.elements.position.HUDElementVec2
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementSerializer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementSerializer.kt
index de8e3bb6f..71a405419 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementSerializer.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDElementSerializer.kt
@@ -3,10 +3,7 @@ package de.bixilon.minosoft.gui.rendering.hud.elements.primitive
import com.squareup.moshi.FromJson
import com.squareup.moshi.JsonWriter
import com.squareup.moshi.ToJson
-import de.bixilon.minosoft.data.mappings.ResourceLocation
-import de.bixilon.minosoft.gui.rendering.hud.elements.HUDElementPositionAnchors
-import de.bixilon.minosoft.gui.rendering.hud.elements.HUDElementVec2
-import de.bixilon.minosoft.util.json.RGBColorSerializer
+import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.gui.rendering.hud.elements.position.HUDElementVec2
import de.bixilon.minosoft.gui.rendering.hud.elements.text.HUDTextElement
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDImageElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDImageElement.kt
index c91ec80ac..efde511e5 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDImageElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/primitive/HUDImageElement.kt
@@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.hud.elements.primitive
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.text.ChatColors
import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.RenderConstants
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDTextElementAlignments.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDTextElementAlignments.kt
index 7a293927e..8d2545733 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDTextElementAlignments.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDTextElementAlignments.kt
@@ -1,6 +1,6 @@
package de.bixilon.minosoft.gui.rendering.hud.elements.text
-import de.bixilon.minosoft.data.mappings.ResourceLocation
+import de.bixilon.minosoft.data.registries.ResourceLocation
enum class HUDTextElementAlignments(val resourceLocation: ResourceLocation, val transform: (Float, Float) -> Float) {
LEFT(ResourceLocation("minosoft:left"), { _, position ->
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt
index 9c5dcf057..b5232fd7e 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt
@@ -64,13 +64,12 @@ object VecUtil {
val Vec2.Companion.ONES: Vec2
get() = Vec2(1f, 1f)
-
- fun JsonElement.toVec3(): Vec3 {
+ fun JsonElement.toVec3(default: Vec3? = null): Vec3 {
return when (this) {
is JsonArray -> Vec3(this[0].asFloat, this[1].asFloat, this[2].asFloat)
is JsonObject -> Vec3(this["x"]?.asFloat ?: 0, this["y"]?.asFloat ?: 0, this["z"]?.asFloat ?: 0)
is JsonPrimitive -> Vec3(this.asFloat)
- else -> throw IllegalArgumentException("Not a Vec3!")
+ else -> default ?: throw IllegalArgumentException("Not a Vec3!")
}
}
@@ -514,20 +513,4 @@ object VecUtil {
z = 0.0
}
}
-
- operator fun Vec2i.get(axis: Axes): Int {
- return when (axis) {
- Axes.X -> this.x
- Axes.Y -> this.y
- Axes.Z -> throw java.lang.IllegalArgumentException("Z does not exist")
- }
- }
-
- operator fun Vec2.get(axis: Axes): Float {
- return when (axis) {
- Axes.X -> this.x
- Axes.Y -> this.y
- Axes.Z -> throw java.lang.IllegalArgumentException("Z does not exist")
- }
- }
}