From 76260cbc18877ba3bff476a1a4421547cd972140 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sat, 14 Oct 2017 02:48:52 +0900 Subject: [PATCH] renderFront is fixed --- src/net/torvald/terrarum/Ingame.kt | 12 +++++++++--- src/net/torvald/terrarum/TitleScreen.kt | 1 + .../terrarum/worlddrawer/BlocksDrawerNew.kt | 17 +++++++++++------ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/net/torvald/terrarum/Ingame.kt b/src/net/torvald/terrarum/Ingame.kt index d643f9dbb..744611bde 100644 --- a/src/net/torvald/terrarum/Ingame.kt +++ b/src/net/torvald/terrarum/Ingame.kt @@ -592,7 +592,7 @@ class Ingame(val batch: SpriteBatch) : Screen { worldDrawFrameBuffer.inAction(camera, batch) { - // draw-with-poly doesn't want to co-op with peasant spriteBatch... + // draw-with-poly doesn't want to co-op with peasant spriteBatch... (it hides sprites) batch.inUse { batch.shader = null @@ -636,10 +636,16 @@ class Ingame(val batch: SpriteBatch) : Screen { ///////////////////////////// // draw map related stuffs // ///////////////////////////// + } - setCameraPosition(0f, 0f) - //BlocksDrawer.renderFront(batch, false) + + setCameraPosition(0f, 0f) + BlocksDrawer.renderFront(batch, false) + + + + batch.inUse { // --> blendNormal() <-- by BlocksDrawer.renderFront FeaturesDrawer.drawEnvOverlay(batch) diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index 6f601166c..0afc790a7 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -271,6 +271,7 @@ class TitleScreen(val batch: SpriteBatch) : Screen { // draw tiles // BlocksDrawer.renderWall(batch) BlocksDrawer.renderTerrain(batch) + BlocksDrawer.renderFront(batch, false) FeaturesDrawer.drawEnvOverlay(batch) diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index d06847d13..e4a57ff05 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -397,26 +397,28 @@ object BlocksDrawer { renderUsingBuffer(TERRAIN, batch.projectionMatrix) } - @Deprecated("It's broken right now; don't use it") - // FIXME biatch fun renderFront(batch: SpriteBatch, drawWires: Boolean) { // blend mul Gdx.gl.glEnable(GL20.GL_TEXTURE_2D) Gdx.gl.glEnable(GL20.GL_BLEND) Gdx.gl.glBlendFunc(GL20.GL_DST_COLOR, GL20.GL_ONE_MINUS_SRC_ALPHA) + drawTiles(TERRAIN, true) // blendmul tiles renderUsingBuffer(TERRAIN, batch.projectionMatrix) - if (drawWires) { - drawTiles(WIRE, false) - renderUsingBuffer(WIRE, batch.projectionMatrix) - } + + // blend normal Gdx.gl.glEnable(GL20.GL_TEXTURE_2D) Gdx.gl.glEnable(GL20.GL_BLEND) Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA) + + if (drawWires) { + drawTiles(WIRE, false) + renderUsingBuffer(WIRE, batch.projectionMatrix) + } } private val tileDrawLightThreshold = 2f / LightmapRenderer.MUL @@ -522,6 +524,9 @@ object BlocksDrawer { if (isBlendMul(thisTile)) { writeToBuffer(mode, x - for_x_start, y - for_y_start, thisTileX, thisTileY) } + else { + writeToBuffer(mode, x - for_x_start, y - for_y_start, 0, 0) + } } else { // do NOT add "if (!isBlendMul(thisTile))"!