block outline: save color in config

This commit is contained in:
Bixilon 2021-05-16 17:48:56 +02:00
parent 38248ee9fa
commit 93dc93eea7
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 19 additions and 15 deletions

View File

@ -14,8 +14,12 @@
package de.bixilon.minosoft.config.config.game
import com.squareup.moshi.Json
import de.bixilon.minosoft.data.text.ChatColors
import de.bixilon.minosoft.data.text.RGBColor
data class BlockOutline(
@Json(name = "collision_boxes") val collisionBoxes: 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,
)

View File

@ -17,7 +17,6 @@ import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.Gamemodes
import de.bixilon.minosoft.data.mappings.ResourceLocation
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.RenderWindow
import de.bixilon.minosoft.gui.rendering.Renderer
@ -48,9 +47,6 @@ class BlockOutlineRenderer(
resourceLocation = ResourceLocation(ProtocolDefinition.MINOSOFT_NAMESPACE, "chunk/block/outline"),
)
private val outlineColor = ChatColors.RED
private val collisionColor = ChatColors.BLUE
override fun init() {
outlineShader.load(connection.assetsManager)
}
@ -115,10 +111,10 @@ class BlockOutlineRenderer(
glDepthFunc(GL_ALWAYS)
}
outlineShader.use()
outlineShader.setRGBColor("tintColor", outlineColor)
outlineShader.setRGBColor("tintColor", Minosoft.config.config.game.other.blockOutline.outlineColor)
outlineMesh.draw()
collisionMesh?.let {
outlineShader.setRGBColor("tintColor", collisionColor)
outlineShader.setRGBColor("tintColor", Minosoft.config.config.game.other.blockOutline.collisionColor)
it.draw()
}
glEnable(GL_CULL_FACE)

View File

@ -15,20 +15,24 @@ package de.bixilon.minosoft.util.json
import com.squareup.moshi.*
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
object RGBColorSerializer : JsonAdapter<RGBColor>() {
@FromJson
override fun fromJson(jsonReader: JsonReader): RGBColor? {
if (jsonReader.peek() == JsonReader.Token.NULL) {
return null
}
return when (jsonReader.peek()) {
JsonReader.Token.NUMBER -> {
val rgb = jsonReader.nextInt()
if (rgb == 0) {
return null
}
return rgb.asRGBColor()
}
JsonReader.Token.STRING -> jsonReader.nextString().asColor()
else -> null
}
}
@ToJson
override fun toJson(jsonWriter: JsonWriter, color: RGBColor?) {
@ -36,9 +40,9 @@ object RGBColorSerializer : JsonAdapter<RGBColor>() {
jsonWriter.nullValue()
return
}
if (color.rgb == 0) {
if (color.rgba == 0) {
jsonWriter.nullValue()
}
jsonWriter.value(color.rgb)
jsonWriter.value(color.toString())
}
}