Config Version
This commit is contained in:
parent
5d397e10cf
commit
5ef0f2c9e3
2 changed files with 20 additions and 11 deletions
|
@ -12,23 +12,26 @@ import java.util.*
|
||||||
|
|
||||||
val prop = Properties()
|
val prop = Properties()
|
||||||
class Config {
|
class Config {
|
||||||
private val file = File("./run/potrogue.conf")
|
val runDir = File("./run")
|
||||||
|
val confFile = File("./run/potrogue.conf")
|
||||||
private val prop = Properties()
|
private val prop = Properties()
|
||||||
private var fileExists = file.exists()
|
private var runDirExists = runDir.exists()
|
||||||
init {
|
init {
|
||||||
//Check if config file exists, if it does, load it
|
//Check if the directories and files exist, if not, create them. Also check if config version is incorrect.
|
||||||
if(fileExists){
|
//TODO: DataPacks and Advanced configuration system (see values.conf in jar)
|
||||||
FileInputStream(file).use { prop.load(it) }
|
//Files.createDirectories(Paths.get("./run/data"))
|
||||||
|
if(!runDirExists){
|
||||||
|
Files.createDirectories(Paths.get("./run"))
|
||||||
|
}
|
||||||
|
if(confFile.exists()) {
|
||||||
|
FileInputStream(confFile).use { prop.load(it) }
|
||||||
}
|
}
|
||||||
//Otherwise create the necessary directories
|
//Otherwise create the necessary directories
|
||||||
else{
|
else{
|
||||||
Files.createDirectories(Paths.get("./run"))
|
|
||||||
Files.createDirectories(Paths.get("./run/tiles"))
|
|
||||||
//TODO: DataPacks and Advanced configuration system (see values.conf in jar)
|
|
||||||
//Files.createDirectories(Paths.get("./run/data"))
|
|
||||||
Files.createFile(Path.of("./run/potrogue.conf"))
|
Files.createFile(Path.of("./run/potrogue.conf"))
|
||||||
FileInputStream(file).use {
|
FileInputStream(confFile).use {
|
||||||
prop.load(it)
|
prop.load(it)
|
||||||
|
prop.setProperty("configVersion", "1")
|
||||||
prop.setProperty("windowWidth", "80")
|
prop.setProperty("windowWidth", "80")
|
||||||
prop.setProperty("windowHeight", "54")
|
prop.setProperty("windowHeight", "54")
|
||||||
prop.setProperty("dungeonLevels", "2")
|
prop.setProperty("dungeonLevels", "2")
|
||||||
|
@ -38,7 +41,7 @@ class Config {
|
||||||
prop.setProperty("creaturesPerLevel", "15")
|
prop.setProperty("creaturesPerLevel", "15")
|
||||||
prop.setProperty("creatureMaxSpread", "20")
|
prop.setProperty("creatureMaxSpread", "20")
|
||||||
}
|
}
|
||||||
val out: OutputStream = FileOutputStream(file)
|
val out: OutputStream = FileOutputStream(confFile)
|
||||||
prop.store(out, "PotRogue Configuration File, restart game if changed value. HERE BE DRAGONS.")
|
prop.store(out, "PotRogue Configuration File, restart game if changed value. HERE BE DRAGONS.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,4 +62,6 @@ class Config {
|
||||||
val creaturesPerLevel: Int = (prop.getProperty("creaturesPerLevel")).toInt()
|
val creaturesPerLevel: Int = (prop.getProperty("creaturesPerLevel")).toInt()
|
||||||
|
|
||||||
val creatureMaxSpread: Int = (prop.getProperty("creatureMaxSpread")).toInt()
|
val creatureMaxSpread: Int = (prop.getProperty("creatureMaxSpread")).toInt()
|
||||||
|
|
||||||
|
val configVersion: Int = (prop.getProperty("configVersion")).toInt()
|
||||||
}
|
}
|
|
@ -8,9 +8,13 @@ import org.hexworks.zircon.api.SwingApplications
|
||||||
// Important Values
|
// Important Values
|
||||||
const val GAME_ID = "PotRogue"
|
const val GAME_ID = "PotRogue"
|
||||||
const val GAME_VER = "0.1.0-DEV"
|
const val GAME_VER = "0.1.0-DEV"
|
||||||
|
const val confVers = 1
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
Config()
|
Config()
|
||||||
|
if (Config().configVersion != confVers){
|
||||||
|
Config().confFile.delete()
|
||||||
|
}
|
||||||
// Start Application
|
// Start Application
|
||||||
val grid = SwingApplications.startTileGrid(GameConfig.buildAppConfig())
|
val grid = SwingApplications.startTileGrid(GameConfig.buildAppConfig())
|
||||||
StartView(grid).dock()
|
StartView(grid).dock()
|
||||||
|
|
Loading…
Reference in a new issue