From ffb69813ede99e28c5cfacd85f8efdf49f794e65 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 18 Feb 2019 16:57:28 +0900 Subject: [PATCH] buildingmaker: can hide/show selection overlay --- .../terrarum/modulebasegame/BuildingMaker.kt | 23 +++++++++++++++++-- .../torvald/terrarum/modulebasegame/Ingame.kt | 4 ++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt index 70e8fa8fe..d416215ab 100644 --- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt @@ -47,6 +47,9 @@ class BuildingMaker(batch: SpriteBatch) : IngameInstance(batch) { - Remove Sel. : net.torvald.terrarum.modulebasegame.YamlCommandToolMarqueeErase - Clear Sel. : net.torvald.terrarum.modulebasegame.YamlCommandToolMarqueeClear - Move Selected + - + - Hide/Show Sel. : net.torvald.terrarum.modulebasegame.YamlCommandToolToggleMarqueeOverlay + - - Undo - Redo - Time @@ -97,13 +100,23 @@ class BuildingMaker(batch: SpriteBatch) : IngameInstance(batch) { val uiContainer = ArrayList() + private val pensMustShowSelection = arrayOf( + PENMODE_MARQUEE, PENMODE_MARQUEE_ERASE + ) + var currentPenMode = PENMODE_PENCIL + set(value) { + field = value + if (value in pensMustShowSelection) { + showSelection = true + } + } var currentPenTarget = PENTARGET_TERRAIN val selection = ArrayList() val blockMarkings = TextureRegionPack(Gdx.files.internal("assets/graphics/blocks/block_markings_common.tga"), 16, 16) - + internal var showSelection = true val blockPointingCursor = object : ActorWithBody(Actor.RenderOrder.OVERLAY) { override var referenceID: ActorID? = 1048575 // custom refID @@ -326,7 +339,7 @@ class BuildingMaker(batch: SpriteBatch) : IngameInstance(batch) { } private fun renderGame() { - IngameRenderer.invoke(world as GameWorldExtension, actorsRenderOverlay = actorsRenderOverlay + essentialOverlays, uisToDraw = uiContainer) + IngameRenderer.invoke(world as GameWorldExtension, actorsRenderOverlay = if (showSelection) actorsRenderOverlay + essentialOverlays else essentialOverlays, uisToDraw = uiContainer) } override fun resize(width: Int, height: Int) { @@ -532,3 +545,9 @@ class YamlCommandToolMarqueeClear : YamlInvokable { } } } + +class YamlCommandToolToggleMarqueeOverlay : YamlInvokable { + override fun invoke(args: Array) { + (args[0] as BuildingMaker).showSelection = !(args[0] as BuildingMaker).showSelection + } +} diff --git a/src/net/torvald/terrarum/modulebasegame/Ingame.kt b/src/net/torvald/terrarum/modulebasegame/Ingame.kt index 9e839b727..de9c3050a 100644 --- a/src/net/torvald/terrarum/modulebasegame/Ingame.kt +++ b/src/net/torvald/terrarum/modulebasegame/Ingame.kt @@ -1,6 +1,7 @@ package net.torvald.terrarum.modulebasegame import com.badlogic.gdx.Gdx +import com.badlogic.gdx.Input import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.dataclass.CircularArray @@ -13,6 +14,7 @@ import net.torvald.terrarum.console.Authenticator import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gamecontroller.IngameController +import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.modulebasegame.console.AVTracker @@ -251,6 +253,8 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) { historicalFigureIDBucket = ArrayList() } + + KeyToggler.forceSet(Input.Keys.Q, false) } val ingameController = IngameController(this)