Item spawn saving

This commit is contained in:
ceikry 2023-03-11 22:47:41 -06:00
parent d23e13d5de
commit f8a80f34b8

View file

@ -343,6 +343,38 @@ enum class Editors(val data: EditorData) {
}
TableData.itemSpawns = spawnMap
}
override fun save() {
Logger.logInfo("Saving Item spawn info...")
val spawnMap = HashMap<Int, StringBuilder>()
for ((_, spawns) in TableData.itemSpawns) {
for (spawn in spawns) {
if (!spawnMap.contains(spawn.id)) spawnMap[spawn.id] = StringBuilder()
spawnMap[spawn.id]!!.append("{${spawn.amount},${spawn.location.x},${spawn.location.y},${spawn.location.z},${spawn.respawnTicks}}-")
}
}
val spawnsJsonArray = JSONArray()
for ((id, spawnString) in spawnMap.entries.sortedBy { it.key.toInt() }) {
val spawn = JSONObject()
spawn["item_id"] = id.toString()
spawn["loc_data"] = spawnString.toString()
spawnsJsonArray.add(spawn)
}
val manager = ScriptEngineManager()
val scriptEngine = manager.getEngineByName("JavaScript")
scriptEngine.put("jsonString", spawnsJsonArray.toJSONString())
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)")
val prettyPrintedJson = scriptEngine["result"] as String
try {
FileWriter(EditorConstants.CONFIG_PATH + File.separator + fileName).use { file ->
file.write(prettyPrintedJson)
file.flush()
}
} catch (e: IOException) {
e.printStackTrace()
}
}
})
}