From 07381c027833b8f170c893a1fe7cb7a074b67437 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Fri, 9 Dec 2022 19:15:55 +0600 Subject: ещё немножко и доработаю менюе MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ilotterytea/maxoning/ui/SaveGameWidget.java | 89 --------------- .../com/ilotterytea/maxoning/ui/SavegameInfo.kt | 124 +++++++++++++-------- 2 files changed, 75 insertions(+), 138 deletions(-) delete mode 100644 core/src/com/ilotterytea/maxoning/ui/SaveGameWidget.java (limited to 'core/src/com/ilotterytea/maxoning/ui') diff --git a/core/src/com/ilotterytea/maxoning/ui/SaveGameWidget.java b/core/src/com/ilotterytea/maxoning/ui/SaveGameWidget.java deleted file mode 100644 index e52d1a3..0000000 --- a/core/src/com/ilotterytea/maxoning/ui/SaveGameWidget.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.ilotterytea.maxoning.ui; - - -import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.scenes.scene2d.ui.*; -import com.badlogic.gdx.utils.Align; -import com.badlogic.gdx.utils.Null; -import com.ilotterytea.maxoning.player.MaxonSavegame; -import com.ilotterytea.maxoning.utils.formatters.NumberFormatter; - -public class SaveGameWidget extends Button { - public SaveGameWidget( - Skin skin, - @Null MaxonSavegame sav - ) { - // Setting the stack: - super(skin, "slot"); - - // // // Save slot data: - // // Info row: - Table infoTable = new Table(); - - // Top left label (name): - Label topleftLabel = new Label((sav != null) ? sav.name : "[EMPTY]", skin); - topleftLabel.setAlignment(Align.left); - infoTable.add(topleftLabel).width(256f); - - // Top right label (elapsed time): - String time = "--:--"; - - if (sav != null) { - long h = sav.elapsedTime / 1000 / 60 / 60; - long m = sav.elapsedTime / 1000 / 60; - - time = String.format( - "%s:%s", - ((h < 10) ? "0" : "") + h, - ((m < 10) ? "0" : "") + m - ); - } - - Label toprightLabel = new Label( - time, - skin - ); - toprightLabel.setAlignment(Align.right); - infoTable.add(toprightLabel).width(256f); - - // // Description row: - Table descTable = new Table(); - - // Bottom left label (purchased items): - Label bottomleftLabel = new Label( - String.format( - "%s purchased items", - (sav != null) ? sav.inv.size() : "?" - ), - skin - ); - bottomleftLabel.setAlignment(Align.left); - descTable.add(bottomleftLabel).width(256f); - - // Bottom right label (points/multiplier): - Label pointsLabel = new Label( - String.format( - "%s$/x%s", - (sav != null) ? NumberFormatter.format(sav.points) : "---", - (sav != null) ? NumberFormatter.format(sav.multiplier) : "0" - ), - skin - ); - pointsLabel.setAlignment(Align.right); - descTable.add(pointsLabel).width(256f); - - // Adding the tables to main table: - Table summaryTable = new Table(); - summaryTable.add(infoTable).pad(5f).row(); - summaryTable.add(descTable).pad(5f).row(); - - if (sav == null) { - topleftLabel.setColor(Color.DARK_GRAY); - toprightLabel.setColor(Color.DARK_GRAY); - bottomleftLabel.setColor(Color.DARK_GRAY); - pointsLabel.setColor(Color.DARK_GRAY); - } - - super.add(summaryTable); - } -} diff --git a/core/src/com/ilotterytea/maxoning/ui/SavegameInfo.kt b/core/src/com/ilotterytea/maxoning/ui/SavegameInfo.kt index df4936d..e210ca8 100644 --- a/core/src/com/ilotterytea/maxoning/ui/SavegameInfo.kt +++ b/core/src/com/ilotterytea/maxoning/ui/SavegameInfo.kt @@ -17,7 +17,7 @@ import com.ilotterytea.maxoning.utils.formatters.NumberFormatter class SavegameInfo( game: MaxonGame, skin: Skin, - sav: MaxonSavegame, + sav: MaxonSavegame?, savId: Int ) : Table(skin) { init { @@ -26,64 +26,90 @@ class SavegameInfo( this.height = 324f this.align(Align.top) - val title = Label("Save $savId (${sav.name})", skin, "with_background") + val title = Label(if (sav != null) "Save ${savId + 1}" else "New Game", skin, "with_background") this.add(title).width(506f).pad(6f).row() val content = Table() content.align(Align.top) this.add(content).width(506f).maxWidth(506f).pad(6f).expandY().row() - // - - - P O I N T S - - - : - // Label for points: - val pointsLabel = Label("Points", skin) - content.add(pointsLabel).width(246f).pad(4f) - // Label for points count: - val pointsCLabel = Label(NumberFormatter.format(sav.points.toLong()), skin) - pointsCLabel.setAlignment(Align.right) - content.add(pointsCLabel).width(246f).pad(4f).row() - - // - - - M U L T I P L I E R - - - : - // Label for multiplier: - val mpLabel = Label("Multiplier", skin) - content.add(mpLabel).width(246f).pad(4f) - // Label for multiplier count: - val mpCLabel = Label("+${NumberFormatter.format(sav.multiplier.toLong())}/click", skin) - mpCLabel.setAlignment(Align.right) - content.add(mpCLabel).width(246f).pad(4f).row() - - // - - - P U R C H A S E D I T E M S - - - : - // Label for purchased items: - val piLabel = Label("Inventory size", skin) - content.add(piLabel).width(246f).pad(4f) - // Label for purchased items count: - val piCLabel = Label(sav.inv.size.toString(), skin) - piCLabel.setAlignment(Align.right) - content.add(piCLabel).width(246f).pad(4f).row() - // - - - A C T I O N S - - - : val actions = Table() this.add(actions).width(508f).row() - // Deletion button: - val delButton = ImageButton(skin, "delete") - - delButton.addListener(object : ClickListener() { - override fun clicked(event: InputEvent?, x: Float, y: Float) { - super.clicked(event, x, y) - } - }) - - actions.add(delButton).pad(4f) - // Play button: - val playButton = TextButton("Play!", skin) - - playButton.addListener(object : ClickListener() { - override fun clicked(event: InputEvent, x: Float, y: Float) { - game.screen = GameScreen(game, sav, savId) - } - }) - - actions.add(playButton).width(444f) + if (sav != null) { + // - - - P O I N T S - - - : + // Label for points: + val pointsLabel = Label("Points", skin) + content.add(pointsLabel).width(246f).pad(4f) + // Label for points count: + val pointsCLabel = Label(NumberFormatter.format(sav.points.toLong()), skin) + pointsCLabel.setAlignment(Align.right) + content.add(pointsCLabel).width(246f).pad(4f).row() + + // - - - M U L T I P L I E R - - - : + // Label for multiplier: + val mpLabel = Label("Multiplier", skin) + content.add(mpLabel).width(246f).pad(4f) + // Label for multiplier count: + val mpCLabel = Label("+${NumberFormatter.format(sav.multiplier.toLong())}/click", skin) + mpCLabel.setAlignment(Align.right) + content.add(mpCLabel).width(246f).pad(4f).row() + + // - - - P U R C H A S E D I T E M S - - - : + // Label for purchased items: + val piLabel = Label("Inventory size", skin) + content.add(piLabel).width(246f).pad(4f) + // Label for purchased items count: + val piCLabel = Label(sav.inv.size.toString(), skin) + piCLabel.setAlignment(Align.right) + content.add(piCLabel).width(246f).pad(4f).row() + + // Deletion button: + val delButton = ImageButton(skin, "delete") + + delButton.addListener(object : ClickListener() { + override fun clicked(event: InputEvent?, x: Float, y: Float) { + super.clicked(event, x, y) + } + }) + + actions.add(delButton).pad(4f) + + // Play button: + val playButton = TextButton("Play!", skin) + + playButton.addListener(object : ClickListener() { + override fun clicked(event: InputEvent, x: Float, y: Float) { + game.screen = GameScreen(game, sav, savId) + } + }) + + actions.add(playButton).width(444f) + } else { + // - - - N A M E - - - : + // Label for points: + val nameLabel = Label("Your name", skin) + content.add(nameLabel).width(246f).pad(4f) + // Label for points count: + val nameField = TextField("test", skin) + content.add(nameField).width(246f).pad(4f).row() + + + // Play button: + val playButton = TextButton("START!", skin) + + playButton.addListener(object : ClickListener() { + override fun clicked(event: InputEvent, x: Float, y: Float) { + val _sav = MaxonSavegame() + _sav.name = nameField.messageText + + game.screen = GameScreen(game, _sav, savId) + } + }) + + actions.add(playButton).width(502f) + } } -- cgit v1.2.3