mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
worldgen: estimated time disp
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "WARNING-HEALTH AND SAFETY",
|
||||
"CONTEXT_CHARACTER": "Character",
|
||||
"CONTEXT_ESTIMATED_MINUTES_PLURAL": "Estimated: about {0} minutes",
|
||||
"CONTEXT_TIME_MINUTE_PLURAL": "Minutes",
|
||||
"CONTEXT_TIME_SECOND_PLURAL": "Seconds",
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "All rights reserved",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "경고—건강과 안전을 위하여",
|
||||
"CONTEXT_CHARACTER": "캐릭터",
|
||||
"CONTEXT_ESTIMATED_MINUTES_PLURAL": "예상 시간: 약 {0}분",
|
||||
"CONTEXT_TIME_MINUTE_PLURAL": "분",
|
||||
"CONTEXT_TIME_SECOND_PLURAL": "초",
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "모든 권리 보유",
|
||||
|
||||
@@ -19,6 +19,7 @@ import net.torvald.terrarum.savegame.ByteArray64Reader
|
||||
import net.torvald.terrarum.savegame.VirtualDisk
|
||||
import net.torvald.terrarum.serialise.Common
|
||||
import net.torvald.terrarum.modulebasegame.serialise.ReadActor
|
||||
import net.torvald.terrarum.modulebasegame.worldgenerator.Worldgen
|
||||
import net.torvald.terrarum.savegame.DiskSkimmer
|
||||
import net.torvald.terrarum.savegame.VDFileID.SAVEGAMEINFO
|
||||
import net.torvald.terrarum.serialise.toBigInt64
|
||||
@@ -26,6 +27,7 @@ import net.torvald.terrarum.ui.*
|
||||
import net.torvald.terrarum.utils.PasswordBase32
|
||||
import net.torvald.terrarum.utils.RandomWordsName
|
||||
import java.util.UUID
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2021-10-25.
|
||||
@@ -88,6 +90,7 @@ class UINewWorld(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
private val inputLineY1 = 90
|
||||
private val inputLineY2 = 130
|
||||
private val inputLineY3 = 170
|
||||
private val goButtonWidth = 180
|
||||
private val gridGap = 10
|
||||
private val buttonBaseX = (Toolkit.drawWidth - 3 * goButtonWidth - 2 * gridGap) / 2
|
||||
@@ -291,6 +294,12 @@ class UINewWorld(val remoCon: UIRemoCon) : UICanvas() {
|
||||
// name/seed input labels
|
||||
App.fontGame.draw(batch, Lang["MENU_NAME"], drawX - 4, drawY + sizeSelY + inputLineY1)
|
||||
App.fontGame.draw(batch, Lang["CONTEXT_GENERATOR_SEED"], drawX - 4, drawY + sizeSelY + inputLineY2)
|
||||
|
||||
val (wx, wy) = TerrarumIngame.NEW_WORLD_SIZE[sizeSelector.selection]
|
||||
val etaMin = Worldgen.getEstimationSec(wx, wy).div(60f).roundToInt().coerceAtLeast(1)
|
||||
val etaText = Lang.getAndUseTemplate("CONTEXT_ESTIMATED_MINUTES_PLURAL", true, etaMin)
|
||||
|
||||
Toolkit.drawTextCentered(batch, App.fontGame, etaText, width, drawX, drawY + sizeSelY + inputLineY3)
|
||||
}
|
||||
else if (mode == 1) {
|
||||
// code input labels
|
||||
|
||||
@@ -17,6 +17,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
|
||||
import net.torvald.terrarum.modulebasegame.serialise.ReadActor
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
|
||||
import net.torvald.terrarum.modulebasegame.worldgenerator.Worldgen
|
||||
import net.torvald.terrarum.realestate.LandUtil
|
||||
import net.torvald.terrarum.savegame.ByteArray64Reader
|
||||
import net.torvald.terrarum.savegame.VDFileID
|
||||
@@ -24,6 +25,7 @@ import net.torvald.terrarum.savegame.VirtualDisk
|
||||
import net.torvald.terrarum.serialise.Common
|
||||
import net.torvald.terrarum.ui.*
|
||||
import net.torvald.terrarum.utils.RandomWordsName
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2023-05-19.
|
||||
@@ -53,6 +55,7 @@ class UIWorldPortalSearch(val full: UIWorldPortal) : UICanvas() {
|
||||
private val inputWidth = 350
|
||||
private val inputLineY1 = 90
|
||||
private val inputLineY2 = 130
|
||||
private val inputLineY3 = 170
|
||||
|
||||
private val sizeSelY = 186 + 40
|
||||
|
||||
@@ -199,6 +202,11 @@ class UIWorldPortalSearch(val full: UIWorldPortal) : UICanvas() {
|
||||
App.fontGame.draw(batch, Lang["MENU_NAME"], drawX - 4, drawY + sizeSelY + inputLineY1)
|
||||
App.fontGame.draw(batch, Lang["CONTEXT_PLACE_COORDINATE"], drawX - 4, drawY + sizeSelY + inputLineY2)
|
||||
|
||||
val (wx, wy) = TerrarumIngame.NEW_WORLD_SIZE[sizeSelector.selection]
|
||||
val etaMin = Worldgen.getEstimationSec(wx, wy).div(60f).roundToInt().coerceAtLeast(1)
|
||||
val etaText = Lang.getAndUseTemplate("CONTEXT_ESTIMATED_MINUTES_PLURAL", true, etaMin)
|
||||
|
||||
Toolkit.drawTextCentered(batch, App.fontGame, etaText, width, drawX, drawY + sizeSelY + inputLineY3)
|
||||
|
||||
// memory gauge
|
||||
val chunksUsed = full.chunksUsed
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package net.torvald.terrarum.modulebasegame.worldgenerator
|
||||
|
||||
import net.torvald.terrarum.App
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.App.*
|
||||
import net.torvald.terrarum.BlockCodex
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
import kotlin.math.roundToLong
|
||||
|
||||
/**
|
||||
* New world generator.
|
||||
@@ -62,6 +63,9 @@ object Worldgen {
|
||||
|
||||
private data class Work(val loadingScreenName: String, val theWork: Gen)
|
||||
|
||||
fun getEstimationSec(width: Int, height: Int): Long {
|
||||
return (23.05 * 1.25 * (bogoflops / 47500000.0) * (width * height / 40095000.0) * (THREAD_COUNT / 32.0)).roundToLong()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class Gen(val world: GameWorld, val seed: Long, val params: Any) {
|
||||
|
||||
Reference in New Issue
Block a user