mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 03:15:35 -04:00
block outline: save color in config
This commit is contained in:
parent
38248ee9fa
commit
93dc93eea7
@ -14,8 +14,12 @@
|
|||||||
package de.bixilon.minosoft.config.config.game
|
package de.bixilon.minosoft.config.config.game
|
||||||
|
|
||||||
import com.squareup.moshi.Json
|
import com.squareup.moshi.Json
|
||||||
|
import de.bixilon.minosoft.data.text.ChatColors
|
||||||
|
import de.bixilon.minosoft.data.text.RGBColor
|
||||||
|
|
||||||
data class BlockOutline(
|
data class BlockOutline(
|
||||||
@Json(name = "collision_boxes") val collisionBoxes: Boolean = false,
|
@Json(name = "collision_boxes") val collisionBoxes: Boolean = false,
|
||||||
@Json(name = "disable_z_buffer") val disableZBuffer: Boolean = false,
|
@Json(name = "disable_z_buffer") val disableZBuffer: Boolean = false,
|
||||||
|
@Json(name = "outline_color") val outlineColor: RGBColor = ChatColors.RED,
|
||||||
|
@Json(name = "collision_color") val collisionColor: RGBColor = ChatColors.BLUE,
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,6 @@ import de.bixilon.minosoft.Minosoft
|
|||||||
import de.bixilon.minosoft.data.Gamemodes
|
import de.bixilon.minosoft.data.Gamemodes
|
||||||
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.mappings.blocks.BlockState
|
import de.bixilon.minosoft.data.mappings.blocks.BlockState
|
||||||
import de.bixilon.minosoft.data.text.ChatColors
|
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.Renderer
|
import de.bixilon.minosoft.gui.rendering.Renderer
|
||||||
@ -48,9 +47,6 @@ class BlockOutlineRenderer(
|
|||||||
resourceLocation = ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "chunk/block/outline"),
|
resourceLocation = ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "chunk/block/outline"),
|
||||||
)
|
)
|
||||||
|
|
||||||
private val outlineColor = ChatColors.RED
|
|
||||||
private val collisionColor = ChatColors.BLUE
|
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
outlineShader.load(connection.assetsManager)
|
outlineShader.load(connection.assetsManager)
|
||||||
}
|
}
|
||||||
@ -115,10 +111,10 @@ class BlockOutlineRenderer(
|
|||||||
glDepthFunc(GL_ALWAYS)
|
glDepthFunc(GL_ALWAYS)
|
||||||
}
|
}
|
||||||
outlineShader.use()
|
outlineShader.use()
|
||||||
outlineShader.setRGBColor("tintColor", outlineColor)
|
outlineShader.setRGBColor("tintColor", Minosoft.config.config.game.other.blockOutline.outlineColor)
|
||||||
outlineMesh.draw()
|
outlineMesh.draw()
|
||||||
collisionMesh?.let {
|
collisionMesh?.let {
|
||||||
outlineShader.setRGBColor("tintColor", collisionColor)
|
outlineShader.setRGBColor("tintColor", Minosoft.config.config.game.other.blockOutline.collisionColor)
|
||||||
it.draw()
|
it.draw()
|
||||||
}
|
}
|
||||||
glEnable(GL_CULL_FACE)
|
glEnable(GL_CULL_FACE)
|
||||||
|
@ -15,19 +15,23 @@ package de.bixilon.minosoft.util.json
|
|||||||
|
|
||||||
import com.squareup.moshi.*
|
import com.squareup.moshi.*
|
||||||
import de.bixilon.minosoft.data.text.RGBColor
|
import de.bixilon.minosoft.data.text.RGBColor
|
||||||
|
import de.bixilon.minosoft.data.text.RGBColor.Companion.asColor
|
||||||
import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
|
import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
|
||||||
|
|
||||||
object RGBColorSerializer : JsonAdapter<RGBColor>() {
|
object RGBColorSerializer : JsonAdapter<RGBColor>() {
|
||||||
@FromJson
|
@FromJson
|
||||||
override fun fromJson(jsonReader: JsonReader): RGBColor? {
|
override fun fromJson(jsonReader: JsonReader): RGBColor? {
|
||||||
if (jsonReader.peek() == JsonReader.Token.NULL) {
|
return when (jsonReader.peek()) {
|
||||||
return null
|
JsonReader.Token.NUMBER -> {
|
||||||
|
val rgb = jsonReader.nextInt()
|
||||||
|
if (rgb == 0) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
return rgb.asRGBColor()
|
||||||
|
}
|
||||||
|
JsonReader.Token.STRING -> jsonReader.nextString().asColor()
|
||||||
|
else -> null
|
||||||
}
|
}
|
||||||
val rgb = jsonReader.nextInt()
|
|
||||||
if (rgb == 0) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
return rgb.asRGBColor()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ToJson
|
@ToJson
|
||||||
@ -36,9 +40,9 @@ object RGBColorSerializer : JsonAdapter<RGBColor>() {
|
|||||||
jsonWriter.nullValue()
|
jsonWriter.nullValue()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (color.rgb == 0) {
|
if (color.rgba == 0) {
|
||||||
jsonWriter.nullValue()
|
jsonWriter.nullValue()
|
||||||
}
|
}
|
||||||
jsonWriter.value(color.rgb)
|
jsonWriter.value(color.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user