buildingmaker: can hide/show selection overlay

This commit is contained in:
minjaesong
2019-02-18 16:57:28 +09:00
parent 6c7e1c30c7
commit ffb69813ed
2 changed files with 25 additions and 2 deletions

View File

@@ -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<UICanvas>()
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<Point2i>()
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<Any>) {
(args[0] as BuildingMaker).showSelection = !(args[0] as BuildingMaker).showSelection
}
}

View File

@@ -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<Int>()
}
KeyToggler.forceSet(Input.Keys.Q, false)
}
val ingameController = IngameController(this)