From 50509358479064a1fc4138879ecf767eea9aee0b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 9 Sep 2021 22:16:56 +0900 Subject: [PATCH] ingame uis will blur the background --- src/net/torvald/terrarum/TitleScreen.kt | 2 +- src/net/torvald/terrarum/UIFakeGradOverlay.kt | 20 +++++++++-------- .../terrarum/modulebasegame/TerrarumIngame.kt | 22 +++++++++++++++---- .../modulebasegame/console/ExportCodices.kt | 1 - .../gameactors/FixtureStorageChest.kt | 7 ++---- .../modulebasegame/ui/UICheatDetected.kt | 3 +++ .../modulebasegame/ui/UIInventoryFull.kt | 8 +++---- 7 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index 72b2e0adc..abb21846a 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -184,7 +184,7 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) { // fake UI for blur - uiFakeBlurOverlay = UIFakeBlurOverlay() + uiFakeBlurOverlay = UIFakeBlurOverlay(2f, false) uiFakeBlurOverlay.setPosition(0,0) uiContainer.add(uiFakeBlurOverlay) diff --git a/src/net/torvald/terrarum/UIFakeGradOverlay.kt b/src/net/torvald/terrarum/UIFakeGradOverlay.kt index e29002a1f..94536f109 100644 --- a/src/net/torvald/terrarum/UIFakeGradOverlay.kt +++ b/src/net/torvald/terrarum/UIFakeGradOverlay.kt @@ -1,9 +1,9 @@ package net.torvald.terrarum -import com.badlogic.gdx.graphics.* +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.graphics.g2d.SpriteBatch -import com.badlogic.gdx.graphics.glutils.FrameBuffer -import net.torvald.terrarum.modulebasegame.IngameRenderer import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas @@ -43,7 +43,7 @@ class UIFakeGradOverlay : UICanvas() { override fun dispose() {} } -class UIFakeBlurOverlay : UICanvas() { +class UIFakeBlurOverlay(val blurRadius: Float, val nodarken: Boolean) : UICanvas() { override var width: Int get() = App.scr.width @@ -61,13 +61,15 @@ class UIFakeBlurOverlay : UICanvas() { override fun updateUI(delta: Float) {} override fun renderUI(batch: SpriteBatch, camera: Camera) { - Toolkit.blurEntireScreen(batch, camera as OrthographicCamera, 2f,0, 0, width, height) + Toolkit.blurEntireScreen(batch, camera as OrthographicCamera, blurRadius, 0, 0, width, height) - blendMul(batch) - batch.color = darken - batch.fillRect(0f, 0f, width.toFloat(), height.toFloat()) + if (!nodarken) { + blendMul(batch) + batch.color = darken + batch.fillRect(0f, 0f, width.toFloat(), height.toFloat()) - blendNormal(batch) + blendNormal(batch) + } } override fun doOpening(delta: Float) {} diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index d2acbcc4a..1afe817cb 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -140,9 +140,10 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { } - lateinit var uiPieMenu: UICanvas - lateinit var uiQuickBar: UICanvas - lateinit var uiInventoryPlayer: UICanvas + lateinit var uiBlur: UIFakeBlurOverlay + lateinit var uiPieMenu: UIQuickslotPie + lateinit var uiQuickBar: UIQuickslotBar + lateinit var uiInventoryPlayer: UIInventoryFull /** * This is a dedicated property for the fixtures' UI. * @@ -166,7 +167,6 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { } } - lateinit var uiInventoryContainer: UICanvas lateinit var uiVitalPrimary: UICanvas lateinit var uiVitalSecondary: UICanvas lateinit var uiVitalItem: UICanvas // itemcount/durability of held block or active ammo of held gun. As for the block, max value is 500. @@ -366,6 +366,10 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { //uiVitalItem = UIVitalMetre(player, { null }, { null }, Color(0xffcc00), 0, customPositioning = true) //uiVitalItem.setAsAlwaysVisible() + // fake UI for blurring the background + uiBlur = UIFakeBlurOverlay(1f, true) + uiBlur.setPosition(0,0) + uiWatchTierOne = UITierOneWatch() uiWatchTierOne.setAsAlwaysVisible() uiWatchTierOne.setPosition( @@ -391,6 +395,8 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { //uiVitalSecondary, //uiVitalItem, + uiBlur, + uiPieMenu, uiQuickBar, uiBasicInfo, @@ -627,6 +633,14 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { //uiContainer.forEach { it.update(delta) } //debugWindow.update(delta) //notifier.update(delta) + // open/close fake blur UI according to what's opened + if (uiInventoryPlayer.isVisible || + getUIFixture.get()?.isVisible == true) { + uiBlur.setAsOpen() + } + else { + uiBlur.setAsClose() + } // update debuggers using javax.swing // if (Authenticator.b()) { diff --git a/src/net/torvald/terrarum/modulebasegame/console/ExportCodices.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportCodices.kt index f0fecf5ee..7cf493c21 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/ExportCodices.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportCodices.kt @@ -13,6 +13,5 @@ object ExportCodices : ConsoleCommand { } override fun printUsage() { - TODO("Not yet implemented") } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt index c8beac68a..32502d4a8 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt @@ -18,9 +18,6 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTOR import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.catBarWidth import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.controlHelpHeight -import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.gradEndCol -import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.gradHeight -import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.gradStartCol import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalHeight import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.listGap @@ -191,7 +188,7 @@ internal class UIStorageChest : UICanvas( override fun renderUI(batch: SpriteBatch, camera: Camera) { // background fill - batch.end() + /*batch.end() gdxSetBlendNormal() @@ -210,7 +207,7 @@ internal class UIStorageChest : UICanvas( - batch.begin() + batch.begin()*/ // UI items batch.color = Color.WHITE diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt b/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt index e8474bc01..cd8693749 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt @@ -2,12 +2,14 @@ package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.App import net.torvald.terrarum.Second import net.torvald.terrarum.Terrarum import net.torvald.terrarum.fillRect import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas /** @@ -33,6 +35,7 @@ class UICheatDetected : UICanvas() { Terrarum.ingame?.consoleHandler?.setAsClose() Terrarum.ingame?.consoleHandler?.isVisible = false + Toolkit.blurEntireScreen(batch, camera as OrthographicCamera, 2f, 0, 0, width, height) batch.color = backgroundCol batch.fillRect(0f, 0f, width.toFloat(), height.toFloat()) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index f53888508..883105aee 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -1,6 +1,7 @@ package net.torvald.terrarum.modulebasegame.ui -import com.badlogic.gdx.graphics.* +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.ShapeRenderer import net.torvald.ENDASH @@ -10,7 +11,8 @@ import net.torvald.terrarum.blockstats.MinimapComposer import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid -import net.torvald.terrarum.ui.* +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemHorizontalFadeSlide import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** @@ -180,8 +182,6 @@ class UIInventoryFull( override fun renderUI(batch: SpriteBatch, camera: Camera) { - Toolkit.blurEntireScreen(batch, camera as OrthographicCamera, 1f,0, 0, width, height) - // background fill batch.end() gdxSetBlendNormal()