mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-06 08:38:30 +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 playerDisk: VirtualDisk; internal set
|
||||||
lateinit var worldSavefileName: String; internal set
|
lateinit var worldSavefileName: String; internal set
|
||||||
lateinit var playerSavefileName: 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
|
var screenZoom = 1.0f
|
||||||
val ZOOM_MAXIMUM = 4.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.GameWorld
|
||||||
import net.torvald.terrarum.gameworld.WorldSimulator
|
import net.torvald.terrarum.gameworld.WorldSimulator
|
||||||
import net.torvald.terrarum.langpack.Lang
|
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.*
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.physicssolver.CollisionSolver
|
import net.torvald.terrarum.modulebasegame.gameactors.physicssolver.CollisionSolver
|
||||||
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore
|
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.unicode.EMDASH
|
||||||
import net.torvald.util.CircularArray
|
import net.torvald.util.CircularArray
|
||||||
import org.khelekore.prtree.PRTree
|
import org.khelekore.prtree.PRTree
|
||||||
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import java.util.logging.Level
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
|
|
||||||
@@ -400,15 +401,11 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
|||||||
|
|
||||||
worldDisk = VDUtil.createNewDisk(
|
worldDisk = VDUtil.createNewDisk(
|
||||||
1L shl 60,
|
1L shl 60,
|
||||||
savegameNickname,
|
worldName,
|
||||||
Common.CHARSET
|
Common.CHARSET
|
||||||
)
|
)
|
||||||
|
|
||||||
playerDisk = VDUtil.createNewDisk(
|
playerDisk = VDUtil.readDiskArchive(App.savegamePlayers[actorGamer.uuid]!!.loadable().diskFile, Level.INFO)
|
||||||
1L shl 60,
|
|
||||||
actorGamer.actorValue.getAsString(AVKey.NAME) ?: "",
|
|
||||||
Common.CHARSET
|
|
||||||
)
|
|
||||||
|
|
||||||
// go to spawn position
|
// go to spawn position
|
||||||
printdbg(this, "World Spawn position: (${world.spawnX}, ${world.spawnY})")
|
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
|
makeSavegameBackupCopy(getWorldSaveFiledesc(worldSavefileName)) // don't put it on the postInit() or render(); must be called using callback
|
||||||
uiAutosaveNotifier.setAsClose()
|
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>()
|
historicalFigureIDBucket = ArrayList<Int>()
|
||||||
|
|
||||||
savegameNickname = worldParams.savegameName
|
worldName = worldParams.savegameName
|
||||||
|
|
||||||
|
|
||||||
world.worldCreator = UUID.fromString(player.uuid.toString())
|
world.worldCreator = UUID.fromString(player.uuid.toString())
|
||||||
@@ -489,6 +489,8 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
|||||||
forceAddActor(player)
|
forceAddActor(player)
|
||||||
|
|
||||||
WeatherMixer.internalReset()
|
WeatherMixer.internalReset()
|
||||||
|
|
||||||
|
UILoadGovernor.worldUUID = world.worldIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyToggler.forceSet(Input.Keys.Q, false)
|
KeyToggler.forceSet(Input.Keys.Q, false)
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Pixmap
|
|||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.console.Echo
|
import net.torvald.terrarum.console.Echo
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
|
||||||
import net.torvald.terrarum.gameworld.BlockLayer
|
import net.torvald.terrarum.gameworld.BlockLayer
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
@@ -112,7 +111,7 @@ object WriteSavegame {
|
|||||||
*/
|
*/
|
||||||
object LoadSavegame {
|
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 getWorldSavefileName(world: GameWorld) = "${world.worldIndex}"
|
||||||
fun getPlayerSavefileName(player: IngamePlayer) = "${player.uuid}"
|
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.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.worldDisk = VDUtil.readDiskArchive(worldDisk.diskFile, Level.INFO)
|
||||||
newIngame.playerDisk = VDUtil.readDiskArchive(playerDisk.diskFile, Level.INFO)
|
newIngame.playerDisk = VDUtil.readDiskArchive(playerDisk.diskFile, Level.INFO)
|
||||||
newIngame.savegameNickname = getSavegameNickname(worldDisk)
|
newIngame.worldName = getWorldName(worldDisk)
|
||||||
newIngame.worldSavefileName = getWorldSavefileName(world)
|
newIngame.worldSavefileName = getWorldSavefileName(world)
|
||||||
newIngame.playerSavefileName = getPlayerSavefileName(player)
|
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.Camera
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
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.App.printdbg
|
||||||
import net.torvald.terrarum.Second
|
|
||||||
import net.torvald.terrarum.Terrarum
|
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
import net.torvald.terrarum.gameactors.AVKey
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.PlayerBuilderTestSubject1
|
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.modulebasegame.serialise.WritePlayer
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.terrarum.utils.RandomWordsName
|
import net.torvald.terrarum.utils.RandomWordsName
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2021-12-09.
|
* Created by minjaesong on 2021-12-09.
|
||||||
@@ -75,10 +75,14 @@ class UINewCharacter(val remoCon: UIRemoCon) : UICanvas() {
|
|||||||
WritePlayer(player, disk, null, time_t)
|
WritePlayer(player, disk, null, time_t)
|
||||||
VDUtil.dumpToRealMachine(disk, outFile)
|
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
|
uiLocked = false
|
||||||
returnedFromChargen = true
|
returnedFromChargen = true
|
||||||
|
|
||||||
|
|
||||||
// comment below if chargen must send gamers back to the charcters list
|
// comment below if chargen must send gamers back to the charcters list
|
||||||
// UILoadGovernor.playerDisk = DiskSkimmer(outFile)
|
// UILoadGovernor.playerDisk = DiskSkimmer(outFile)
|
||||||
// comment above if chargen must send gamers back to the charcters list
|
// comment above if chargen must send gamers back to the charcters list
|
||||||
|
|||||||
Reference in New Issue
Block a user