mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-11 22:31:52 +09:00
sign engraver ui
This commit is contained in:
Binary file not shown.
@@ -1,5 +1,6 @@
|
||||
package net.torvald.terrarum.modulebasegame.ui
|
||||
|
||||
import com.badlogic.gdx.Input.Keys
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.OrthographicCamera
|
||||
import com.badlogic.gdx.graphics.Pixmap
|
||||
@@ -7,16 +8,18 @@ import com.badlogic.gdx.graphics.Texture
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
import net.torvald.terrarum.itemproperties.Item
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.ItemTextSignCopper
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||
import net.torvald.terrarum.ui.*
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
import net.torvald.unicode.TIMES
|
||||
import net.torvald.unicode.getKeycapPC
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
@@ -170,13 +173,29 @@ class UIEngravingTextSign : UICanvas(
|
||||
}
|
||||
|
||||
|
||||
private val goButton = UIItemTextButton(this,
|
||||
{ Lang["GAME_ACTION_CRAFT"] }, (width - goButtonWidth) / 2, row3, goButtonWidth, alignment = UIItemTextButton.Companion.Alignment.CENTRE, hasBorder = true).also {
|
||||
private val resetButton = UIItemTextButton(this,
|
||||
{ Lang["MENU_LABEL_RESET"] }, width / 2 - 24 - goButtonWidth, row3, goButtonWidth, alignment = UIItemTextButton.Companion.Alignment.CENTRE, hasBorder = true).also {
|
||||
|
||||
it.clickOnceListener = { _, _ ->
|
||||
resetUI()
|
||||
}
|
||||
}
|
||||
|
||||
private val goButton = UIItemTextButton(this,
|
||||
{ Lang["GAME_ACTION_CRAFT"] }, width / 2 + 24, row3, goButtonWidth, alignment = UIItemTextButton.Companion.Alignment.CENTRE, hasBorder = true).also {
|
||||
|
||||
it.clickOnceListener = { _, _ ->
|
||||
val actorInventory = getPlayerInventory()
|
||||
val text = textInput.getText()
|
||||
val item = ItemTextSignCopper(Item.COPPER_SIGN).makeDynamic(actorInventory).also {
|
||||
it.extra["signContent"] = text
|
||||
it.extra["signPanelCount"] = panelCount
|
||||
it.nameSecondary = "[$panelCount${TIMES}2] $text"
|
||||
}
|
||||
|
||||
actorInventory.add(item)
|
||||
|
||||
resetUI()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,6 +218,7 @@ class UIEngravingTextSign : UICanvas(
|
||||
addUIitem(panelCountSpinner)
|
||||
addUIitem(ingredientsPanel)
|
||||
addUIitem(goButton)
|
||||
addUIitem(resetButton)
|
||||
}
|
||||
|
||||
private var panelCount = panelCountSpinner.value.toInt()
|
||||
|
||||
@@ -70,7 +70,10 @@ fun getKeycapPC(c: Char) = when (c.uppercaseChar()) {
|
||||
in ' '..'_' -> (0xE000 + c.code - 32).toChar()
|
||||
else -> throw IllegalArgumentException("Not in range: ${c.code - 32}")
|
||||
}
|
||||
fun getKeycapPC(keycode: Int) = getKeycapPC(com.badlogic.gdx.Input.Keys.toString(keycode)[0])
|
||||
fun getKeycapPC(keycode: Int) =
|
||||
if (keycode == com.badlogic.gdx.Input.Keys.ESCAPE)
|
||||
"\uE09E\uE09F"
|
||||
else getKeycapPC(com.badlogic.gdx.Input.Keys.toString(keycode)[0])
|
||||
fun getMouseButton(button: Int) = when (button) {
|
||||
0 -> KEYCAP_LEFT_MOUSE
|
||||
1 -> KEYCAP_RIGHT_MOUSE
|
||||
|
||||
Reference in New Issue
Block a user