mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
mod meta update; translations for description
This commit is contained in:
@@ -5,7 +5,7 @@ propername=Terrarum
|
||||
description=The base game
|
||||
|
||||
# Author of the module
|
||||
author=Terrarum
|
||||
author=CuriousTo\uA75Bvald
|
||||
|
||||
# Root package name for the module
|
||||
# The game will look for certain classes base on this package string, so don't mess up!
|
||||
@@ -16,10 +16,10 @@ package=net.torvald.terrarum.modulebasegame
|
||||
entrypoint=net.torvald.terrarum.modulebasegame.EntryPoint
|
||||
|
||||
# Release date in YYYY-MM-DD
|
||||
releasedate=2022-01-24
|
||||
releasedate=2023-09-08
|
||||
|
||||
# The version, must follow Semver 2.0.0 scheme (https://semver.org/)
|
||||
version=0.3.0
|
||||
version=0.3.3
|
||||
|
||||
# External JAR that the module is compiled. If your module requires yet another library, the JAR must be compiled as a "Fatjar";
|
||||
# Due to security reasons, loading an arbitrary JAR is not allowed.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
propername=Dwarven Techs
|
||||
description=Dwarven technicians are emerged from their hiding
|
||||
author=Terrarum
|
||||
author=CuriousTo\uA75Bvald
|
||||
package=net.torvald.terrarum.modulecomputers
|
||||
entrypoint=net.torvald.terrarum.modulecomputers.EntryPoint
|
||||
releasedate=2021-12-03
|
||||
|
||||
@@ -58,6 +58,7 @@ object ModMgr {
|
||||
val iconFile: FileHandle,
|
||||
val properName: String,
|
||||
val description: String,
|
||||
val descTranslations: Map<String, String>,
|
||||
val author: String,
|
||||
val packageName: String,
|
||||
val entryPoint: String,
|
||||
@@ -136,6 +137,7 @@ object ModMgr {
|
||||
val moduleName = it[0]
|
||||
this.loadOrder.add(moduleName)
|
||||
printmsg(this, "Loading module $moduleName")
|
||||
var module: ModuleMetadata? = null
|
||||
|
||||
try {
|
||||
val modMetadata = Properties()
|
||||
@@ -171,6 +173,11 @@ object ModMgr {
|
||||
}
|
||||
|
||||
|
||||
val descTranslations = HashMap<String, String>()
|
||||
modMetadata.stringPropertyNames().filter { it.startsWith("description_") }.forEach { key ->
|
||||
val langCode = key.substringAfter('_')
|
||||
descTranslations[langCode] = modMetadata.getProperty(key)
|
||||
}
|
||||
|
||||
val properName = modMetadata.getProperty("propername")
|
||||
val description = modMetadata.getProperty("description")
|
||||
@@ -184,10 +191,12 @@ object ModMgr {
|
||||
val dependency = modMetadata.getProperty("dependency").split(Regex(""";[ ]*""")).filter { it.isNotEmpty() }.toTypedArray()
|
||||
val isDir = FileSystems.getDefault().getPath("$modDir/$moduleName").toFile().isDirectory
|
||||
|
||||
module = ModuleMetadata(index, isDir, getGdxFile("$modDir/$moduleName/icon.png"), properName, description, descTranslations, author, packageName, entryPoint, releaseDate, version, jar, dependency, isInternal)
|
||||
|
||||
val versionNumeral = version.split('.')
|
||||
val versionNumber = versionNumeral.toVersionNumber()
|
||||
|
||||
|
||||
dependency.forEach { nameAndVersionStr ->
|
||||
val (moduleName, moduleVersionStr) = nameAndVersionStr.split(' ')
|
||||
val numbers = moduleVersionStr.split('.')
|
||||
@@ -204,9 +213,9 @@ object ModMgr {
|
||||
}
|
||||
|
||||
|
||||
moduleInfo[moduleName] = ModuleMetadata(index, isDir, getGdxFile("$modDir/$moduleName/icon.png"), properName, description, author, packageName, entryPoint, releaseDate, version, jar, dependency, isInternal)
|
||||
moduleInfo[moduleName] = module
|
||||
|
||||
printdbg(this, moduleInfo[moduleName])
|
||||
printdbg(this, module)
|
||||
|
||||
// do retexturing if retextures directory exists
|
||||
if (hasFile(moduleName, "retextures")) {
|
||||
@@ -268,7 +277,8 @@ object ModMgr {
|
||||
|
||||
logError(LoadErrorType.YOUR_FAULT, moduleName, e)
|
||||
|
||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
||||
moduleInfo.remove(moduleName)
|
||||
moduleInfoErrored[moduleName] = module
|
||||
}
|
||||
|
||||
if (newClass != null) {
|
||||
@@ -281,7 +291,8 @@ object ModMgr {
|
||||
printdbg(this, "$moduleName loaded successfully")
|
||||
}
|
||||
else {
|
||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
||||
moduleInfo.remove(moduleName)
|
||||
moduleInfoErrored[moduleName] = module
|
||||
printdbg(this, "$moduleName did not load...")
|
||||
}
|
||||
|
||||
@@ -294,14 +305,16 @@ object ModMgr {
|
||||
|
||||
logError(LoadErrorType.NOT_EVEN_THERE, moduleName, noSuchModule)
|
||||
|
||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
||||
moduleInfo.remove(moduleName)
|
||||
if (module != null) moduleInfoErrored[moduleName] = module
|
||||
}
|
||||
catch (noSuchModule2: ModuleDependencyNotSatisfied) {
|
||||
printmsgerr(this, noSuchModule2.message)
|
||||
|
||||
logError(LoadErrorType.NOT_EVEN_THERE, moduleName, noSuchModule2)
|
||||
|
||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
||||
moduleInfo.remove(moduleName)
|
||||
if (module != null) moduleInfoErrored[moduleName] = module
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
// TODO: Instead of skipping module with error, just display the error message onto the face?
|
||||
@@ -313,7 +326,8 @@ object ModMgr {
|
||||
|
||||
logError(LoadErrorType.YOUR_FAULT, moduleName, e)
|
||||
|
||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
||||
moduleInfo.remove(moduleName)
|
||||
if (module != null) moduleInfoErrored[moduleName] = module
|
||||
}
|
||||
finally {
|
||||
|
||||
|
||||
@@ -37,7 +37,16 @@ class UIItemModuleInfoCell(
|
||||
private val modVer = modProp.version
|
||||
private val modDate = modProp.releaseDate
|
||||
private val modAuthor = modProp.author
|
||||
private val modDesc = modProp.description
|
||||
|
||||
private val modDesc = App.getConfigString("language").let { lang ->
|
||||
val la = lang.substring(0..1)
|
||||
if (modProp.descTranslations.contains(lang))
|
||||
modProp.descTranslations[lang]
|
||||
else if (modProp.descTranslations.contains(la))
|
||||
modProp.descTranslations[la]
|
||||
else
|
||||
modProp.description
|
||||
}
|
||||
|
||||
init {
|
||||
modIcon.flip(false, false)
|
||||
|
||||
Reference in New Issue
Block a user