mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
prettier text print on Notification
This commit is contained in:
@@ -114,7 +114,7 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
|
|||||||
// screenshot key
|
// screenshot key
|
||||||
if (keycode == Input.Keys.F12 && !f12Down) {
|
if (keycode == Input.Keys.F12 && !f12Down) {
|
||||||
AppLoader.requestScreenshot()
|
AppLoader.requestScreenshot()
|
||||||
ingame.sendNotification(arrayOf("Screenshot taken", ""))
|
ingame.sendNotification("Screenshot taken")
|
||||||
f12Down = true
|
f12Down = true
|
||||||
println("Screenshot taken.")
|
println("Screenshot taken.")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import net.torvald.terrarum.gameactors.Actor
|
|||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gamecontroller.IngameController
|
import net.torvald.terrarum.gamecontroller.IngameController
|
||||||
import net.torvald.terrarum.gamecontroller.KeyToggler
|
import net.torvald.terrarum.gamecontroller.KeyToggler
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
|
||||||
import net.torvald.terrarum.itemproperties.GameItem
|
import net.torvald.terrarum.itemproperties.GameItem
|
||||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
import net.torvald.terrarum.itemproperties.ItemCodex
|
||||||
import net.torvald.terrarum.modulebasegame.console.AVTracker
|
import net.torvald.terrarum.modulebasegame.console.AVTracker
|
||||||
@@ -250,7 +249,7 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
val timeNow = System.currentTimeMillis() / 1000
|
val timeNow = System.currentTimeMillis() / 1000
|
||||||
gameworld = GameWorldExtension(1, worldParams.width, worldParams.height, timeNow, timeNow, 0) // new game, so the creation time is right now
|
gameworld = GameWorldExtension(1, worldParams.width, worldParams.height, timeNow, timeNow, 0) // new game, so the creation time is right now
|
||||||
gameworldCount++
|
gameworldCount++
|
||||||
world = gameworld as GameWorld
|
world = gameworld
|
||||||
|
|
||||||
// generate terrain for the map
|
// generate terrain for the map
|
||||||
WorldGenerator.attachMap(world)
|
WorldGenerator.attachMap(world)
|
||||||
@@ -594,8 +593,8 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Send message to notifier UI and toggle the UI as opened. */
|
/** Send message to notifier UI and toggle the UI as opened. */
|
||||||
fun sendNotification(msg: Array<String>) {
|
fun sendNotification(msg1: String, msg2: String? = null) {
|
||||||
(notifier as Notification).sendNotification(msg)
|
(notifier as Notification).sendNotification(if (msg2 != null) arrayOf(msg1, msg2) else arrayOf(msg1))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun wakeDormantActors() {
|
fun wakeDormantActors() {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.AppLoader
|
import net.torvald.terrarum.AppLoader
|
||||||
import net.torvald.terrarum.blendNormal
|
import net.torvald.terrarum.blendNormal
|
||||||
import net.torvald.terrarum.blendScreen
|
|
||||||
import net.torvald.terrarum.fillRect
|
import net.torvald.terrarum.fillRect
|
||||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
import net.torvald.terrarum.itemproperties.ItemCodex
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_WHITE
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
import net.torvald.terrarum.ui.UIItemImageButton
|
import net.torvald.terrarum.ui.UIItemImageButton
|
||||||
import net.torvald.terrarum.ui.UIItemTextButtonList
|
import net.torvald.terrarum.ui.UIItemTextButtonList
|
||||||
@@ -104,7 +104,7 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val addCol = Color(0x242424ff)
|
private val scrollbarBackCol = Color(0x000000_70)
|
||||||
private var scrollBarPos = 0
|
private var scrollBarPos = 0
|
||||||
private var paletteScroll = 0
|
private var paletteScroll = 0
|
||||||
private val paletteScrollMax = 256f - 14f
|
private val paletteScrollMax = 256f - 14f
|
||||||
@@ -125,18 +125,19 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() {
|
|||||||
|
|
||||||
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||||
palette.forEach { it.render(batch, camera) }
|
palette.forEach { it.render(batch, camera) }
|
||||||
|
blendNormal(batch)
|
||||||
|
|
||||||
// gaps between tabs and close button
|
// gaps between tabs and close button
|
||||||
batch.color = DEFAULT_BACKGROUNDCOL
|
batch.color = DEFAULT_BACKGROUNDCOL
|
||||||
batch.fillRect(0f, tabs.height.toFloat(), MENUBAR_SIZE.toFloat(), height.toFloat() - (tabs.height + closeButton.height))
|
batch.fillRect(0f, tabs.height.toFloat(), MENUBAR_SIZE.toFloat(), height.toFloat() - (tabs.height + closeButton.height))
|
||||||
// scrollbar back
|
// scrollbar back
|
||||||
|
batch.color = DEFAULT_BACKGROUNDCOL
|
||||||
batch.fillRect(width - SCROLLBAR_SIZE.toFloat(), 0f, SCROLLBAR_SIZE.toFloat(), height.toFloat())
|
batch.fillRect(width - SCROLLBAR_SIZE.toFloat(), 0f, SCROLLBAR_SIZE.toFloat(), height.toFloat())
|
||||||
blendScreen(batch)
|
batch.color = scrollbarBackCol
|
||||||
batch.color = addCol
|
|
||||||
batch.fillRect(width - SCROLLBAR_SIZE.toFloat(), 0f, SCROLLBAR_SIZE.toFloat(), height.toFloat())
|
batch.fillRect(width - SCROLLBAR_SIZE.toFloat(), 0f, SCROLLBAR_SIZE.toFloat(), height.toFloat())
|
||||||
// scrollbar
|
// scrollbar
|
||||||
|
batch.color = CELLCOLOUR_WHITE
|
||||||
batch.fillRect(width - SCROLLBAR_SIZE.toFloat(), scrollBarPos.toFloat(), SCROLLBAR_SIZE.toFloat(), scrollBarHeight)
|
batch.fillRect(width - SCROLLBAR_SIZE.toFloat(), scrollBarPos.toFloat(), SCROLLBAR_SIZE.toFloat(), scrollBarHeight)
|
||||||
blendNormal(batch)
|
|
||||||
|
|
||||||
// the actual buttons
|
// the actual buttons
|
||||||
tabs.render(batch, camera)
|
tabs.render(batch, camera)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package net.torvald.terrarum.modulebasegame.console
|
package net.torvald.terrarum.modulebasegame.console
|
||||||
|
|
||||||
import net.torvald.terrarum.langpack.Lang
|
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.console.ConsoleCommand
|
import net.torvald.terrarum.console.ConsoleCommand
|
||||||
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.Ingame
|
import net.torvald.terrarum.modulebasegame.Ingame
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -10,11 +10,7 @@ import net.torvald.terrarum.modulebasegame.Ingame
|
|||||||
*/
|
*/
|
||||||
internal object SetBulletin : ConsoleCommand {
|
internal object SetBulletin : ConsoleCommand {
|
||||||
override fun execute(args: Array<String>) {
|
override fun execute(args: Array<String>) {
|
||||||
val testMsg = arrayOf(
|
send(Lang["ERROR_SAVE_CORRUPTED"], Lang["MENU_LABEL_CONTINUE_QUESTION"])
|
||||||
Lang["ERROR_SAVE_CORRUPTED"],
|
|
||||||
Lang["MENU_LABEL_CONTINUE_QUESTION"]
|
|
||||||
)
|
|
||||||
send(testMsg)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun printUsage() {
|
override fun printUsage() {
|
||||||
@@ -25,8 +21,8 @@ internal object SetBulletin : ConsoleCommand {
|
|||||||
* Actually send notifinator
|
* Actually send notifinator
|
||||||
* @param message real message
|
* @param message real message
|
||||||
*/
|
*/
|
||||||
fun send(message: Array<String>) {
|
fun send(msg1: String, msg2: String? = null) {
|
||||||
(Terrarum.ingame!! as Ingame).sendNotification(message)
|
(Terrarum.ingame!! as Ingame).sendNotification(msg1, msg2)
|
||||||
println("sent notifinator")
|
println("sent notifinator")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,18 +61,30 @@ class Notification : UICanvas() {
|
|||||||
drawColor.a = handler.opacity
|
drawColor.a = handler.opacity
|
||||||
fontCol.a = handler.opacity
|
fontCol.a = handler.opacity
|
||||||
|
|
||||||
val textWidth = width//maxOf(width, messagesList.map { Terrarum.fontGame.getWidth(it) }.sorted()[1])
|
val realTextWidth = 12 + if (message.size == 1)
|
||||||
|
Terrarum.fontGame.getWidth(message[0])
|
||||||
|
else
|
||||||
|
maxOf(Terrarum.fontGame.getWidth(message[0]), Terrarum.fontGame.getWidth(message[1]))
|
||||||
|
val displayedTextWidth = maxOf(240, realTextWidth)
|
||||||
|
|
||||||
|
// force the UI to the centre of the screen
|
||||||
|
this.posX = (Terrarum.WIDTH - displayedTextWidth) / 2
|
||||||
|
|
||||||
|
|
||||||
batch.color = drawColor
|
batch.color = drawColor
|
||||||
|
|
||||||
batch.draw(segment.get(0, 0), -segment.tileW.toFloat(), 0f)
|
batch.draw(segment.get(0, 0), -segment.tileW.toFloat(), 0f)
|
||||||
batch.draw(segment.get(1, 0), 0f, 0f, textWidth.toFloat(), segment.tileH.toFloat())
|
batch.draw(segment.get(1, 0), 0f, 0f, displayedTextWidth.toFloat(), segment.tileH.toFloat())
|
||||||
batch.draw(segment.get(2, 0), textWidth.toFloat(), 0f)
|
batch.draw(segment.get(2, 0), displayedTextWidth.toFloat(), 0f)
|
||||||
|
|
||||||
batch.color = fontCol
|
batch.color = fontCol
|
||||||
message.forEachIndexed { index, s ->
|
message.forEachIndexed { index, s ->
|
||||||
val y = imageToTextAreaDelta + index * (textAreaHeight / 2) + (textAreaHeight / 2 - Terrarum.fontGame.lineHeight) / 2
|
val xoff = 6 + (displayedTextWidth - realTextWidth) / 2
|
||||||
Terrarum.fontGame.draw(batch, s, LRmargin, y)
|
val y = if (message.size == 1)
|
||||||
|
-2 + imageToTextAreaDelta + 0.5f * (textAreaHeight / 2) + (textAreaHeight / 2 - Terrarum.fontGame.lineHeight) / 2
|
||||||
|
else
|
||||||
|
-1 + imageToTextAreaDelta + index * (textAreaHeight / 2) + (textAreaHeight / 2 - Terrarum.fontGame.lineHeight) / 2
|
||||||
|
Terrarum.fontGame.draw(batch, s, LRmargin + xoff, y)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
work_files/UI/chest_view.psd
LFS
Normal file
BIN
work_files/UI/chest_view.psd
LFS
Normal file
Binary file not shown.
Reference in New Issue
Block a user