-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
177 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
90 changes: 90 additions & 0 deletions
90
render/src/main/kotlin/io/github/spair/tauwebmap/configuration.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
package io.github.spair.tauwebmap | ||
|
||
import com.eclipsesource.json.Json | ||
import com.eclipsesource.json.JsonObject | ||
|
||
private const val CONFIG_FILE = "config.json" | ||
|
||
private const val MORE_EQUAL_ENTRY = ">=" | ||
private const val MORE_ENTRY = ">" | ||
private const val EQUAL_ENTRY = "==" | ||
private const val LESS_ENTRY = "<" | ||
private const val LESS_EQUAL_ENTRY = "<=" | ||
|
||
val RENDER_CONFIG = mutableMapOf<String, MutableList<String>>() | ||
|
||
fun readConfigForRevisions(revisionList: List<String>) { | ||
val configJson = Json.parse(readResource(CONFIG_FILE)).asObject() | ||
|
||
configJson.entryForEach(MORE_EQUAL_ENTRY) { config -> | ||
for (revision in revisionList) { | ||
addToRenderConfig(revision, config) | ||
if (config.getRevision() == revision) { | ||
break | ||
} | ||
} | ||
} | ||
configJson.entryForEach(MORE_ENTRY) { config -> | ||
for (revision in revisionList) { | ||
if (config.getRevision() == revision) { | ||
break | ||
} | ||
addToRenderConfig(revision, config) | ||
} | ||
} | ||
configJson.entryForEach(EQUAL_ENTRY) { config -> | ||
for (revision in revisionList) { | ||
if (config.getRevision() == revision) { | ||
addToRenderConfig(revision, config) | ||
} | ||
} | ||
} | ||
configJson.entryForEach(LESS_ENTRY) { config -> | ||
for (revision in revisionList.reversed()) { | ||
if (config.getRevision() == revision) { | ||
break | ||
} | ||
addToRenderConfig(revision, config) | ||
} | ||
} | ||
configJson.entryForEach(LESS_EQUAL_ENTRY) { config -> | ||
for (revision in revisionList.reversed()) { | ||
addToRenderConfig(revision, config) | ||
if (config.getRevision() == revision) { | ||
break | ||
} | ||
} | ||
} | ||
} | ||
|
||
private fun addToRenderConfig(revision: String, config: JsonObject) { | ||
if (config.renderExcluded(revision)) | ||
return | ||
RENDER_CONFIG.getOrPut(revision) { mutableListOf() }.let { list -> | ||
config.getRender().forEach { renderFileName -> | ||
list.add(renderFileName.asString()) | ||
} | ||
} | ||
} | ||
|
||
private fun JsonObject.entryForEach(entryName: String, action: (JsonObject) -> (Unit)) { | ||
get(entryName)?.asArray()?.forEach { action(it.asObject()) } | ||
} | ||
|
||
private fun JsonObject.getRender() = get("render").asArray() | ||
private fun JsonObject.getRevision() = get("revision").asString() | ||
|
||
private fun JsonObject.renderExcluded(revision: String): Boolean { | ||
val exclude = get("render_exclude")?.asArray() | ||
if (exclude != null) { | ||
for (excl in exclude) { | ||
if (revision == excl.asString()) { | ||
return true | ||
} | ||
} | ||
} | ||
return false | ||
} | ||
|
||
internal class Resource | ||
fun readResource(path: String) = Resource::class.java.classLoader.getResource(path).readText() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
">=": [ | ||
{ | ||
"revision": "887f80dff", | ||
"render": [ | ||
"common_render.json" | ||
] | ||
}, | ||
{ | ||
"revision": "1f995d5f7", | ||
"render": [ | ||
"specific_render/from_1f995d5f7.json" | ||
] | ||
} | ||
] | ||
} |
47 changes: 47 additions & 0 deletions
47
render/src/main/resources/specific_render/from_1f995d5f7.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
{ | ||
"definitions": [ | ||
{ | ||
"type": "/turf/simulated/floor", | ||
"parent": "/turf/simulated", | ||
"subtypes": [], | ||
"vars": { | ||
"plane": -1 | ||
} | ||
},{ | ||
"type": "/obj/machinery/ai_slipper", | ||
"parent": "/obj/machinery", | ||
"subtypes": [], | ||
"vars": { | ||
"plane": -1 | ||
} | ||
},{ | ||
"type": "/obj/machinery/hologram/holopad", | ||
"parent": "/obj/machinery/hologram", | ||
"subtypes": [], | ||
"vars": { | ||
"plane": -1 | ||
} | ||
},{ | ||
"type": "/obj/machinery/igniter", | ||
"parent": "/obj/machinery", | ||
"subtypes": [], | ||
"vars": { | ||
"plane": -1 | ||
} | ||
},{ | ||
"type": "/obj/structure/lattice", | ||
"parent": "/obj/structure", | ||
"subtypes": [], | ||
"vars": { | ||
"plane": -1 | ||
} | ||
},{ | ||
"type": "/obj/structure/alien/weeds", | ||
"parent": "/obj/structure/alien", | ||
"subtypes": [], | ||
"vars": { | ||
"plane": -1 | ||
} | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters