mod meta update; translations for description

This commit is contained in:
minjaesong
2023-09-09 15:19:03 +09:00
parent bae94bee48
commit 290b11eb96
4 changed files with 35 additions and 12 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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 {

View File

@@ -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)