mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-16 05:24:06 +09:00
sign engraver ui
This commit is contained in:
Binary file not shown.
@@ -1,5 +1,6 @@
|
|||||||
package net.torvald.terrarum.modulebasegame.ui
|
package net.torvald.terrarum.modulebasegame.ui
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Input.Keys
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.OrthographicCamera
|
import com.badlogic.gdx.graphics.OrthographicCamera
|
||||||
import com.badlogic.gdx.graphics.Pixmap
|
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.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
import com.badlogic.gdx.graphics.glutils.FrameBuffer
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.App.printdbg
|
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
||||||
import net.torvald.terrarum.blockproperties.Block
|
import net.torvald.terrarum.blockproperties.Block
|
||||||
|
import net.torvald.terrarum.itemproperties.Item
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
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.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
|
import net.torvald.unicode.TIMES
|
||||||
import net.torvald.unicode.getKeycapPC
|
import net.torvald.unicode.getKeycapPC
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@@ -170,13 +173,29 @@ class UIEngravingTextSign : UICanvas(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private val goButton = UIItemTextButton(this,
|
private val resetButton = UIItemTextButton(this,
|
||||||
{ Lang["GAME_ACTION_CRAFT"] }, (width - goButtonWidth) / 2, row3, goButtonWidth, alignment = UIItemTextButton.Companion.Alignment.CENTRE, hasBorder = true).also {
|
{ Lang["MENU_LABEL_RESET"] }, width / 2 - 24 - goButtonWidth, row3, goButtonWidth, alignment = UIItemTextButton.Companion.Alignment.CENTRE, hasBorder = true).also {
|
||||||
|
|
||||||
it.clickOnceListener = { _, _ ->
|
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(panelCountSpinner)
|
||||||
addUIitem(ingredientsPanel)
|
addUIitem(ingredientsPanel)
|
||||||
addUIitem(goButton)
|
addUIitem(goButton)
|
||||||
|
addUIitem(resetButton)
|
||||||
}
|
}
|
||||||
|
|
||||||
private var panelCount = panelCountSpinner.value.toInt()
|
private var panelCount = panelCountSpinner.value.toInt()
|
||||||
|
|||||||
@@ -70,7 +70,10 @@ fun getKeycapPC(c: Char) = when (c.uppercaseChar()) {
|
|||||||
in ' '..'_' -> (0xE000 + c.code - 32).toChar()
|
in ' '..'_' -> (0xE000 + c.code - 32).toChar()
|
||||||
else -> throw IllegalArgumentException("Not in range: ${c.code - 32}")
|
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) {
|
fun getMouseButton(button: Int) = when (button) {
|
||||||
0 -> KEYCAP_LEFT_MOUSE
|
0 -> KEYCAP_LEFT_MOUSE
|
||||||
1 -> KEYCAP_RIGHT_MOUSE
|
1 -> KEYCAP_RIGHT_MOUSE
|
||||||
|
|||||||
Reference in New Issue
Block a user