From bbc68110d96fe0bed79620a135f8b01accc2d185 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 2 Jul 2017 21:53:50 +0900 Subject: [PATCH] fixed bad color rendering on blocksdrawer and lightmaprenderer --- .../terrarum-sans-bitmap/hayeren_variable.tga | 2 +- src/net/torvald/terrarum/StateInGameGDX.kt | 4 +++ src/net/torvald/terrarum/TerrarumGDX.kt | 17 +++++++++--- .../torvald/terrarum/console/CodexEdictis.kt | 3 +-- .../terrarum/console/CommandInterpreter.kt | 7 +---- src/net/torvald/terrarum/console/GetAV.kt | 8 +----- src/net/torvald/terrarum/console/Seed.kt | 4 +-- src/net/torvald/terrarum/console/SetAV.kt | 7 +---- .../terrarum/debuggerapp/ActorValueTracker.kt | 3 ++- .../terrarum/gamecontroller/GameController.kt | 4 +++ .../terrarum/ui/BasicDebugInfoWindow.kt | 26 ++++--------------- src/net/torvald/terrarum/ui/ConsoleWindow.kt | 15 ++++++++--- .../terrarum/worlddrawer/BlocksDrawer_old.kt | 17 ++++++------ .../terrarum/worlddrawer/LightmapRenderer.kt | 6 ++++- .../graphics/fonts/hayeren_variable.psd | 4 +-- 15 files changed, 61 insertions(+), 66 deletions(-) diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/hayeren_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/hayeren_variable.tga index aa1669fe8..9ca7a6223 100644 --- a/assets/graphics/fonts/terrarum-sans-bitmap/hayeren_variable.tga +++ b/assets/graphics/fonts/terrarum-sans-bitmap/hayeren_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9fc5b918a0fd6803a0609256ff3620e54c5cc9c6f5094851f221e807da5d176 +oid sha256:dc47cef77ec40d8d3ba03aa3cd7315818e463b2979094de39a3817fac1f7c541 size 122924 diff --git a/src/net/torvald/terrarum/StateInGameGDX.kt b/src/net/torvald/terrarum/StateInGameGDX.kt index 073a6925f..fe71b9e6f 100644 --- a/src/net/torvald/terrarum/StateInGameGDX.kt +++ b/src/net/torvald/terrarum/StateInGameGDX.kt @@ -424,6 +424,10 @@ class StateInGameGDX(val batch: SpriteBatch) : Screen { FeaturesDrawer.drawEnvOverlay(batch) + if (KeyToggler.isOn(Input.Keys.F7)) + blendNormal() + else + blendMul() LightmapRenderer.draw(batch) diff --git a/src/net/torvald/terrarum/TerrarumGDX.kt b/src/net/torvald/terrarum/TerrarumGDX.kt index 811974913..764eb0b9e 100644 --- a/src/net/torvald/terrarum/TerrarumGDX.kt +++ b/src/net/torvald/terrarum/TerrarumGDX.kt @@ -479,9 +479,9 @@ object TerrarumGDX : ApplicationAdapter() { inline val mouseY: Double get() = GameController.mouseY.toDouble() @JvmStatic inline val mouseTileX: Int - get() = mouseX.toInt() / TILE_SIZE + get() = GameController.mouseTileX @JvmStatic inline val mouseTileY: Int - get() = mouseY.toInt() / TILE_SIZE + get() = GameController.mouseTileY inline val mouseScreenX: Int get() = Gdx.input.x inline val mouseScreenY: Int @@ -602,6 +602,17 @@ infix fun Color.minus(other: Color) = Color( // don't turn into an operator! fun Int.toHex() = this.toLong().and(0xFFFFFFFF).toString(16).padStart(8, '0').toUpperCase() - +val ccW = GameFontBase.toColorCode(0xFFFF) +val ccY = GameFontBase.toColorCode(0xFE8F) +val ccO = GameFontBase.toColorCode(0xFB2F) +val ccR = GameFontBase.toColorCode(0xF88F) +val ccF = GameFontBase.toColorCode(0xFAEF) +val ccM = GameFontBase.toColorCode(0xEAFF) +val ccB = GameFontBase.toColorCode(0x88FF) +val ccC = GameFontBase.toColorCode(0x8FFF) +val ccG = GameFontBase.toColorCode(0x8F8F) +val ccV = GameFontBase.toColorCode(0x080F) +val ccX = GameFontBase.toColorCode(0x853F) +val ccK = GameFontBase.toColorCode(0x888F) diff --git a/src/net/torvald/terrarum/console/CodexEdictis.kt b/src/net/torvald/terrarum/console/CodexEdictis.kt index 82dec8ada..159bc9e4b 100644 --- a/src/net/torvald/terrarum/console/CodexEdictis.kt +++ b/src/net/torvald/terrarum/console/CodexEdictis.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.ccW import net.torvald.terrarum.langpack.Lang import java.util.Formatter @@ -9,8 +10,6 @@ import java.util.Formatter */ internal object CodexEdictis : ConsoleCommand { - val ccW = 0.toChar()//GameFontBase.colToCode["o"] - override fun execute(args: Array) { if (args.size == 1) { printList() diff --git a/src/net/torvald/terrarum/console/CommandInterpreter.kt b/src/net/torvald/terrarum/console/CommandInterpreter.kt index 1e5db8864..16fa8ffb8 100644 --- a/src/net/torvald/terrarum/console/CommandInterpreter.kt +++ b/src/net/torvald/terrarum/console/CommandInterpreter.kt @@ -1,8 +1,8 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.* import net.torvald.terrarum.langpack.Lang import java.time.ZonedDateTime - import java.util.ArrayList import java.util.Formatter import java.util.regex.Pattern @@ -23,11 +23,6 @@ internal object CommandInterpreter { "tips" ) - private val ccW = 0.toChar()//GameFontBase.colToCode["w"] - private val ccG = 0.toChar()//GameFontBase.colToCode["g"] - private val ccY = 0.toChar()//GameFontBase.colToCode["y"] - private val ccR = 0.toChar()//GameFontBase.colToCode["r"] - internal fun execute(command: String) { val cmd: Array = parse(command) diff --git a/src/net/torvald/terrarum/console/GetAV.kt b/src/net/torvald/terrarum/console/GetAV.kt index 4158a34d8..64aa2fa91 100644 --- a/src/net/torvald/terrarum/console/GetAV.kt +++ b/src/net/torvald/terrarum/console/GetAV.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumGDX /** @@ -7,13 +8,6 @@ import net.torvald.terrarum.TerrarumGDX */ internal object GetAV : ConsoleCommand { - val ccW = 0.toChar()//GameFontBase.colToCode["w"] - val ccG = 0.toChar()//GameFontBase.colToCode["g"] - val ccY = 0.toChar()//GameFontBase.colToCode["y"] - val ccM = 0.toChar()//GameFontBase.colToCode["m"] - val ccK = 0.toChar()//GameFontBase.colToCode["k"] - val ccO = 0.toChar()//GameFontBase.colToCode["o"] - override fun execute(args: Array) { try { if (args.size == 1 && TerrarumGDX.ingame!!.player != null) { diff --git a/src/net/torvald/terrarum/console/Seed.kt b/src/net/torvald/terrarum/console/Seed.kt index 94f4805c0..69864e346 100644 --- a/src/net/torvald/terrarum/console/Seed.kt +++ b/src/net/torvald/terrarum/console/Seed.kt @@ -1,14 +1,12 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumGDX /** * Created by minjaesong on 16-06-16. */ internal object Seed : ConsoleCommand { - val ccG = 0.toChar()//GameFontBase.colToCode["g"] - val ccW = 0.toChar()//GameFontBase.colToCode["w"] - val ccY = 0.toChar()//GameFontBase.colToCode["y"] override fun execute(args: Array) { Echo("Map$ccW: $ccG${TerrarumGDX.ingame!!.world.generatorSeed}") diff --git a/src/net/torvald/terrarum/console/SetAV.kt b/src/net/torvald/terrarum/console/SetAV.kt index 387cce556..470fb516c 100644 --- a/src/net/torvald/terrarum/console/SetAV.kt +++ b/src/net/torvald/terrarum/console/SetAV.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumGDX /** @@ -7,12 +8,6 @@ import net.torvald.terrarum.TerrarumGDX */ internal object SetAV : ConsoleCommand { - val ccW = 0.toChar()//GameFontBase.colToCode["w"] - val ccG = 0.toChar()//GameFontBase.colToCode["g"] - val ccY = 0.toChar()//GameFontBase.colToCode["y"] - val ccR = 0.toChar()//GameFontBase.colToCode["r"] - val ccM = 0.toChar()//GameFontBase.colToCode["m"] - override fun printUsage() { Echo("${ccW}Set actor value of specific target to desired value.") Echo("${ccW}Usage: ${ccY}setav ${ccG}(id) ") diff --git a/src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt b/src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt index 86c6bf5d5..e23fff9be 100644 --- a/src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt +++ b/src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.debuggerapp +import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.ActorValue import net.torvald.terrarum.TerrarumGDX import net.torvald.terrarum.console.Echo @@ -74,7 +75,7 @@ class ActorValueTracker constructor() : JFrame() { override fun mousePressed(e: MouseEvent?) { if (actorValue != null && modavInputKey.text.isNotBlank()) { actorValue!!.remove(modavInputKey.text) - Echo("${SetAV.ccW}Removed ${SetAV.ccM}${modavInputKey.text} ${SetAV.ccW}of ${SetAV.ccY}${actor!!.referenceID}") + Echo("${ccW}Removed ${ccM}${modavInputKey.text} ${ccW}of ${ccY}${actor!!.referenceID}") println("[ActorValueTracker] Removed ActorValue '${modavInputKey.text}' of $actor") } } diff --git a/src/net/torvald/terrarum/gamecontroller/GameController.kt b/src/net/torvald/terrarum/gamecontroller/GameController.kt index 2f76be70f..ff5016f85 100644 --- a/src/net/torvald/terrarum/gamecontroller/GameController.kt +++ b/src/net/torvald/terrarum/gamecontroller/GameController.kt @@ -103,9 +103,13 @@ object GameController : InputAdapter() { ingame.uiContainer.forEach { it.keyDown(keycode) } // for KeyboardControlled UIcanvases + // Debug UIs if (keycode == Input.Keys.F3) { ingame.debugWindow.toggleOpening() } + if (keycode == Input.Keys.GRAVE) { + ingame.consoleHandler.toggleOpening() + } return true diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index a003f886c..bd8b710d8 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -4,14 +4,14 @@ import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.jme3.math.FastMath +import net.torvald.terrarum.* import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarum.worlddrawer.FeaturesDrawer -import net.torvald.terrarum.TerrarumGDX -import net.torvald.terrarum.blendNormal -import net.torvald.terrarum.blendScreen -import net.torvald.terrarum.fillRect -import net.torvald.terrarum.worlddrawer.WorldCamera import net.torvald.terrarumsansbitmap.gdx.GameFontBase +import net.torvald.terrarum.TerrarumGDX.mouseTileX +import net.torvald.terrarum.TerrarumGDX.mouseTileY +import net.torvald.terrarum.TerrarumGDX.mouseScreenX +import net.torvald.terrarum.TerrarumGDX.mouseScreenY /** * Created by minjaesong on 16-03-14. @@ -31,19 +31,6 @@ class BasicDebugInfoWindow : UICanvas { private var xdelta = 0.0 private var ydelta = 0.0 - val ccW = GameFontBase.toColorCode(0xFFFF) - val ccY = GameFontBase.toColorCode(0xFE8F) - val ccO = GameFontBase.toColorCode(0xFB2F) - val ccR = GameFontBase.toColorCode(0xF88F) - val ccF = GameFontBase.toColorCode(0xFAEF) - val ccM = GameFontBase.toColorCode(0xEAFF) - val ccB = GameFontBase.toColorCode(0x88FF) - val ccC = GameFontBase.toColorCode(0x8FFF) - val ccG = GameFontBase.toColorCode(0x8F8F) - val ccV = GameFontBase.toColorCode(0x080F) - val ccX = GameFontBase.toColorCode(0x853F) - val ccK = GameFontBase.toColorCode(0x888F) - override fun update(delta: Float) { @@ -64,9 +51,6 @@ class BasicDebugInfoWindow : UICanvas { val player = TerrarumGDX.ingame!!.player - val mouseTileX = ((WorldCamera.x + TerrarumGDX.mouseX / TerrarumGDX.ingame!!.screenZoom) / FeaturesDrawer.TILE_SIZE).toInt() - val mouseTileY = ((WorldCamera.y + TerrarumGDX.mouseY / TerrarumGDX.ingame!!.screenZoom) / FeaturesDrawer.TILE_SIZE).toInt() - batch.color = Color(0xFFEE88FF.toInt()) val hitbox = player?.hitbox diff --git a/src/net/torvald/terrarum/ui/ConsoleWindow.kt b/src/net/torvald/terrarum/ui/ConsoleWindow.kt index 6b9097567..97a24ebc1 100644 --- a/src/net/torvald/terrarum/ui/ConsoleWindow.kt +++ b/src/net/torvald/terrarum/ui/ConsoleWindow.kt @@ -123,11 +123,18 @@ class ConsoleWindow : UICanvas, KeyControlled { return true } - override fun keyTyped(character: Char): Boolean { - commandInputPool!!.append(character) - inputCursorPos += 1 + val acceptedChars = "1234567890-=qwfpgjluy;[]\\arstdhneio'zxcvbkm,./!@#$%^&*()_+QWFPGJLUY:{}|ARSTDHNEIO\"ZXCVBKM<>? ".toSet() - return true + override fun keyTyped(character: Char): Boolean { + if (character in acceptedChars) { + commandInputPool!!.append(character) + inputCursorPos += 1 + + return true + } + else { + return false + } } override fun keyUp(keycode: Int): Boolean { diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt index df3be9d0b..76538d616 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt @@ -352,8 +352,7 @@ object BlocksDrawer { */ blendNormal() - batch.color = wallOverlayColour - drawTiles(batch, WALL, false) + drawTiles(batch, WALL, false, wallOverlayColour) } fun renderTerrain(batch: SpriteBatch) { @@ -362,8 +361,7 @@ object BlocksDrawer { */ blendNormal() - batch.color = Color.WHITE - drawTiles(batch, TERRAIN, false) // regular tiles + drawTiles(batch, TERRAIN, false, Color.WHITE) // regular tiles } fun renderFront(batch: SpriteBatch, drawWires: Boolean) { @@ -372,11 +370,10 @@ object BlocksDrawer { */ blendMul() - batch.color = Color.WHITE - drawTiles(batch, TERRAIN, true) // blendmul tiles + drawTiles(batch, TERRAIN, true, Color.WHITE) // blendmul tiles if (drawWires) { - drawTiles(batch, WIRE, false) + drawTiles(batch, WIRE, false, Color.WHITE) } blendNormal() @@ -384,7 +381,7 @@ object BlocksDrawer { private val tileDrawLightThreshold = 2 - private fun drawTiles(batch: SpriteBatch, mode: Int, drawModeTilesBlendMul: Boolean) { + private fun drawTiles(batch: SpriteBatch, mode: Int, drawModeTilesBlendMul: Boolean, color: Color) { val for_y_start = y / TILE_SIZE val for_y_end = BlocksDrawer.clampHTile(for_y_start + (height / TILE_SIZE) + 2) @@ -393,6 +390,8 @@ object BlocksDrawer { var zeroTileCounter = 0 + batch.color = color + // loop for (y in for_y_start..for_y_end) { for (x in for_x_start..for_x_end - 1) { @@ -490,7 +489,7 @@ object BlocksDrawer { batch.fillRect(x.toFloat(), y.toFloat(), TILE_SIZEF, TILE_SIZEF) - batch.color = Color.WHITE + batch.color = color } } // end if (not an air) } catch (e: NullPointerException) { diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt index faca50174..1f3861d9b 100644 --- a/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt +++ b/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt @@ -320,6 +320,8 @@ object LightmapRenderer { val this_y_end = for_y_end// + overscan_open + val originalColour = batch.color.cpy() + // draw to the try { // loop for "scanlines" @@ -329,7 +331,7 @@ object LightmapRenderer { while (x < this_x_end) { // smoothing enabled and zoom is 0.75 or greater // (zoom of 0.5 should not smoothed, for performance) - if (TerrarumGDX.getConfigBoolean("smoothlighting") ?: false && + if (TerrarumGDX.getConfigBoolean("smoothlighting") && TerrarumGDX.ingame!!.screenZoom >= 0.75) { val thisLightLevel = getLightForOpaque(x, y) ?: 0 @@ -435,6 +437,8 @@ object LightmapRenderer { } + batch.color = originalColour + } val lightScalingMagic = 8f diff --git a/work_files/graphics/fonts/hayeren_variable.psd b/work_files/graphics/fonts/hayeren_variable.psd index e58b4074a..37bd152c3 100644 --- a/work_files/graphics/fonts/hayeren_variable.psd +++ b/work_files/graphics/fonts/hayeren_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83b4b8e5bc041273ebb5543667329a6a72748265e74fa78d3f787b5c0f532993 -size 133314 +oid sha256:cfa6f97b4550a21d5b6386dba5b27fdcc937d98790b43afe9097fa784d0fe04c +size 133318