Basic config class

This commit is contained in:
nelle 2023-10-29 12:40:19 -06:00
parent a768347701
commit a12acc388b
4 changed files with 50 additions and 1 deletions

View file

@ -43,6 +43,9 @@ dependencies {
implementation("com.fasterxml.jackson.core:jackson-databind:2.7.1-1") implementation("com.fasterxml.jackson.core:jackson-databind:2.7.1-1")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.7.1-2") implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.7.1-2")
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.7.1") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.7.1")
implementation("org.freedesktop:xdg-java:0.0.1-SNAPSHOT@jar")
implementation("org.assertj:assertj-core:3.6.2")
} }
tasks { tasks {

3
run/conf.properties Normal file
View file

@ -0,0 +1,3 @@
#some comment
#Sun Oct 29 12:37:06 MDT 2023
myKey=myValue

View file

@ -0,0 +1,41 @@
package group.ouroboros.potrogue.config
import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.OutputStream
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import java.util.*
class Config {
init {
//Config Stage
val file = File("./run/conf.properties")
val prop = Properties()
var fileExists = file.exists()
if(fileExists){
FileInputStream(file).use { prop.load(it) }
}
else{
Files.createDirectories(Paths.get("./run"))
Files.createFile(Path.of("./run/conf.properties"))
FileInputStream(file).use { prop.load(it) }
}
FileInputStream(file).use {
prop.load(it)
prop.setProperty("myKey", "myValue")
val out: OutputStream = FileOutputStream(file)
prop.store(out, "some comment")
}
// Print all properties
prop.stringPropertyNames()
.associateWith {prop.getProperty(it)}
.forEach { println(it) }
}
}

View file

@ -1,14 +1,16 @@
package group.ouroboros.potrogue package group.ouroboros.potrogue
import group.ouroboros.potrogue.config.Config
import group.ouroboros.potrogue.view.StartView import group.ouroboros.potrogue.view.StartView
import org.hexworks.zircon.api.SwingApplications 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";
fun main(args: Array<String>) { fun main(args: Array<String>) {
Config()
//Start Application //Start Application
val grid = SwingApplications.startTileGrid(GameConfig.buildAppConfig()) val grid = SwingApplications.startTileGrid(GameConfig.buildAppConfig())
StartView(grid).dock() StartView(grid).dock()