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
}
}