mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 18:44:05 +09:00
mod meta update; translations for description
This commit is contained in:
@@ -5,7 +5,7 @@ propername=Terrarum
|
|||||||
description=The base game
|
description=The base game
|
||||||
|
|
||||||
# Author of the module
|
# Author of the module
|
||||||
author=Terrarum
|
author=CuriousTo\uA75Bvald
|
||||||
|
|
||||||
# Root package name for the module
|
# Root package name for the module
|
||||||
# The game will look for certain classes base on this package string, so don't mess up!
|
# 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
|
entrypoint=net.torvald.terrarum.modulebasegame.EntryPoint
|
||||||
|
|
||||||
# Release date in YYYY-MM-DD
|
# 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/)
|
# 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";
|
# 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.
|
# Due to security reasons, loading an arbitrary JAR is not allowed.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
propername=Dwarven Techs
|
propername=Dwarven Techs
|
||||||
description=Dwarven technicians are emerged from their hiding
|
description=Dwarven technicians are emerged from their hiding
|
||||||
author=Terrarum
|
author=CuriousTo\uA75Bvald
|
||||||
package=net.torvald.terrarum.modulecomputers
|
package=net.torvald.terrarum.modulecomputers
|
||||||
entrypoint=net.torvald.terrarum.modulecomputers.EntryPoint
|
entrypoint=net.torvald.terrarum.modulecomputers.EntryPoint
|
||||||
releasedate=2021-12-03
|
releasedate=2021-12-03
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ object ModMgr {
|
|||||||
val iconFile: FileHandle,
|
val iconFile: FileHandle,
|
||||||
val properName: String,
|
val properName: String,
|
||||||
val description: String,
|
val description: String,
|
||||||
|
val descTranslations: Map<String, String>,
|
||||||
val author: String,
|
val author: String,
|
||||||
val packageName: String,
|
val packageName: String,
|
||||||
val entryPoint: String,
|
val entryPoint: String,
|
||||||
@@ -136,6 +137,7 @@ object ModMgr {
|
|||||||
val moduleName = it[0]
|
val moduleName = it[0]
|
||||||
this.loadOrder.add(moduleName)
|
this.loadOrder.add(moduleName)
|
||||||
printmsg(this, "Loading module $moduleName")
|
printmsg(this, "Loading module $moduleName")
|
||||||
|
var module: ModuleMetadata? = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val modMetadata = Properties()
|
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 properName = modMetadata.getProperty("propername")
|
||||||
val description = modMetadata.getProperty("description")
|
val description = modMetadata.getProperty("description")
|
||||||
@@ -184,10 +191,12 @@ object ModMgr {
|
|||||||
val dependency = modMetadata.getProperty("dependency").split(Regex(""";[ ]*""")).filter { it.isNotEmpty() }.toTypedArray()
|
val dependency = modMetadata.getProperty("dependency").split(Regex(""";[ ]*""")).filter { it.isNotEmpty() }.toTypedArray()
|
||||||
val isDir = FileSystems.getDefault().getPath("$modDir/$moduleName").toFile().isDirectory
|
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 versionNumeral = version.split('.')
|
||||||
val versionNumber = versionNumeral.toVersionNumber()
|
val versionNumber = versionNumeral.toVersionNumber()
|
||||||
|
|
||||||
|
|
||||||
dependency.forEach { nameAndVersionStr ->
|
dependency.forEach { nameAndVersionStr ->
|
||||||
val (moduleName, moduleVersionStr) = nameAndVersionStr.split(' ')
|
val (moduleName, moduleVersionStr) = nameAndVersionStr.split(' ')
|
||||||
val numbers = moduleVersionStr.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
|
// do retexturing if retextures directory exists
|
||||||
if (hasFile(moduleName, "retextures")) {
|
if (hasFile(moduleName, "retextures")) {
|
||||||
@@ -268,7 +277,8 @@ object ModMgr {
|
|||||||
|
|
||||||
logError(LoadErrorType.YOUR_FAULT, moduleName, e)
|
logError(LoadErrorType.YOUR_FAULT, moduleName, e)
|
||||||
|
|
||||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
moduleInfo.remove(moduleName)
|
||||||
|
moduleInfoErrored[moduleName] = module
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newClass != null) {
|
if (newClass != null) {
|
||||||
@@ -281,7 +291,8 @@ object ModMgr {
|
|||||||
printdbg(this, "$moduleName loaded successfully")
|
printdbg(this, "$moduleName loaded successfully")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
moduleInfo.remove(moduleName)
|
||||||
|
moduleInfoErrored[moduleName] = module
|
||||||
printdbg(this, "$moduleName did not load...")
|
printdbg(this, "$moduleName did not load...")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -294,14 +305,16 @@ object ModMgr {
|
|||||||
|
|
||||||
logError(LoadErrorType.NOT_EVEN_THERE, moduleName, noSuchModule)
|
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) {
|
catch (noSuchModule2: ModuleDependencyNotSatisfied) {
|
||||||
printmsgerr(this, noSuchModule2.message)
|
printmsgerr(this, noSuchModule2.message)
|
||||||
|
|
||||||
logError(LoadErrorType.NOT_EVEN_THERE, moduleName, noSuchModule2)
|
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) {
|
catch (e: Throwable) {
|
||||||
// TODO: Instead of skipping module with error, just display the error message onto the face?
|
// 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)
|
logError(LoadErrorType.YOUR_FAULT, moduleName, e)
|
||||||
|
|
||||||
moduleInfo.remove(moduleName)?.let { moduleInfoErrored[moduleName] = it }
|
moduleInfo.remove(moduleName)
|
||||||
|
if (module != null) moduleInfoErrored[moduleName] = module
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,16 @@ class UIItemModuleInfoCell(
|
|||||||
private val modVer = modProp.version
|
private val modVer = modProp.version
|
||||||
private val modDate = modProp.releaseDate
|
private val modDate = modProp.releaseDate
|
||||||
private val modAuthor = modProp.author
|
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 {
|
init {
|
||||||
modIcon.flip(false, false)
|
modIcon.flip(false, false)
|
||||||
|
|||||||
Reference in New Issue
Block a user