mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-08 12:51:51 +09:00
fix: creating new game works again
This commit is contained in:
@@ -64,7 +64,7 @@ open class IngameInstance(val batch: FlippingSpriteBatch, val isMultiplayer: Boo
|
||||
lateinit var playerDisk: VirtualDisk; internal set
|
||||
lateinit var worldSavefileName: String; internal set
|
||||
lateinit var playerSavefileName: String; internal set
|
||||
var savegameNickname: String = "SplinesReticulated"; internal set
|
||||
var worldName: String = "SplinesReticulated"; internal set // worldName is stored as a name of the disk
|
||||
|
||||
var screenZoom = 1.0f
|
||||
val ZOOM_MAXIMUM = 4.0f
|
||||
|
||||
@@ -28,7 +28,6 @@ import net.torvald.terrarum.gameparticles.ParticleBase
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
import net.torvald.terrarum.gameworld.WorldSimulator
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.clut.Skybox
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.*
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.physicssolver.CollisionSolver
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore
|
||||
@@ -57,7 +56,9 @@ import net.torvald.terrarum.worlddrawer.WorldCamera
|
||||
import net.torvald.unicode.EMDASH
|
||||
import net.torvald.util.CircularArray
|
||||
import org.khelekore.prtree.PRTree
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import java.util.logging.Level
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
|
||||
@@ -400,15 +401,11 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
|
||||
worldDisk = VDUtil.createNewDisk(
|
||||
1L shl 60,
|
||||
savegameNickname,
|
||||
worldName,
|
||||
Common.CHARSET
|
||||
)
|
||||
|
||||
playerDisk = VDUtil.createNewDisk(
|
||||
1L shl 60,
|
||||
actorGamer.actorValue.getAsString(AVKey.NAME) ?: "",
|
||||
Common.CHARSET
|
||||
)
|
||||
playerDisk = VDUtil.readDiskArchive(App.savegamePlayers[actorGamer.uuid]!!.loadable().diskFile, Level.INFO)
|
||||
|
||||
// go to spawn position
|
||||
printdbg(this, "World Spawn position: (${world.spawnX}, ${world.spawnY})")
|
||||
@@ -435,6 +432,9 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
|
||||
makeSavegameBackupCopy(getWorldSaveFiledesc(worldSavefileName)) // don't put it on the postInit() or render(); must be called using callback
|
||||
uiAutosaveNotifier.setAsClose()
|
||||
|
||||
App.savegameWorlds[world.worldIndex] = SavegameCollection.collectFromBaseFilename(File(worldsDir), worldSavefileName)
|
||||
App.savegameWorldsName[world.worldIndex] = worldName
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -476,7 +476,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
|
||||
historicalFigureIDBucket = ArrayList<Int>()
|
||||
|
||||
savegameNickname = worldParams.savegameName
|
||||
worldName = worldParams.savegameName
|
||||
|
||||
|
||||
world.worldCreator = UUID.fromString(player.uuid.toString())
|
||||
@@ -489,6 +489,8 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
forceAddActor(player)
|
||||
|
||||
WeatherMixer.internalReset()
|
||||
|
||||
UILoadGovernor.worldUUID = world.worldIndex
|
||||
}
|
||||
|
||||
KeyToggler.forceSet(Input.Keys.Q, false)
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Pixmap
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.console.Echo
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.gameworld.BlockLayer
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
@@ -112,7 +111,7 @@ object WriteSavegame {
|
||||
*/
|
||||
object LoadSavegame {
|
||||
|
||||
fun getSavegameNickname(worldDisk: SimpleFileSystem) = worldDisk.getDiskName(Common.CHARSET)
|
||||
fun getWorldName(worldDisk: SimpleFileSystem) = worldDisk.getDiskName(Common.CHARSET)
|
||||
fun getWorldSavefileName(world: GameWorld) = "${world.worldIndex}"
|
||||
fun getPlayerSavefileName(player: IngamePlayer) = "${player.uuid}"
|
||||
|
||||
@@ -144,7 +143,7 @@ object LoadSavegame {
|
||||
newIngame.world = world // must be set before the loadscreen, otherwise the loadscreen will try to read from the NullWorld which is already destroyed
|
||||
newIngame.worldDisk = VDUtil.readDiskArchive(worldDisk.diskFile, Level.INFO)
|
||||
newIngame.playerDisk = VDUtil.readDiskArchive(playerDisk.diskFile, Level.INFO)
|
||||
newIngame.savegameNickname = getSavegameNickname(worldDisk)
|
||||
newIngame.worldName = getWorldName(worldDisk)
|
||||
newIngame.worldSavefileName = getWorldSavefileName(world)
|
||||
newIngame.playerSavefileName = getPlayerSavefileName(player)
|
||||
|
||||
|
||||
@@ -3,10 +3,9 @@ package net.torvald.terrarum.modulebasegame.ui
|
||||
import com.badlogic.gdx.graphics.Camera
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import net.torvald.terrarum.App
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.playersDir
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.Second
|
||||
import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.PlayerBuilderTestSubject1
|
||||
@@ -18,6 +17,7 @@ import net.torvald.terrarum.modulebasegame.serialise.LoadSavegame
|
||||
import net.torvald.terrarum.modulebasegame.serialise.WritePlayer
|
||||
import net.torvald.terrarum.ui.*
|
||||
import net.torvald.terrarum.utils.RandomWordsName
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2021-12-09.
|
||||
@@ -75,10 +75,14 @@ class UINewCharacter(val remoCon: UIRemoCon) : UICanvas() {
|
||||
WritePlayer(player, disk, null, time_t)
|
||||
VDUtil.dumpToRealMachine(disk, outFile)
|
||||
|
||||
App.savegamePlayers[player.uuid] = SavegameCollection.collectFromBaseFilename(File(playersDir), outFile.name)
|
||||
App.savegamePlayersName[player.uuid] = player.actorValue.getAsString(AVKey.NAME)
|
||||
UILoadGovernor.playerUUID = player.uuid
|
||||
|
||||
|
||||
uiLocked = false
|
||||
returnedFromChargen = true
|
||||
|
||||
|
||||
// comment below if chargen must send gamers back to the charcters list
|
||||
// UILoadGovernor.playerDisk = DiskSkimmer(outFile)
|
||||
// comment above if chargen must send gamers back to the charcters list
|
||||
|
||||
Reference in New Issue
Block a user