diff --git a/assets/mods/basegame/items/items24.tga b/assets/mods/basegame/items/items24.tga index a59902371..0566170f9 100644 --- a/assets/mods/basegame/items/items24.tga +++ b/assets/mods/basegame/items/items24.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aec24cbb5ae1e488d40869788a8c534a986647d078a56fbc988837283a4587e4 +oid sha256:95a922065b83a6db139c84edfcbe84b95ace1d597131de52ac581c39ed430a72 size 589842 diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt index d83114f64..74549d24a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt @@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* +import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.App.printdbgerr import net.torvald.terrarum.serialise.WriteConfig import net.torvald.terrarum.ui.Toolkit @@ -39,13 +40,17 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode + registerUIclasses(treeRepresentation) + } + + private fun registerUIclasses(tree: QNDTreeNode) { + tree.traversePreorder { node, _ -> val splittedNodeName = node.data?.split(yamlSep) if (splittedNodeName?.size == 2 && node.data != null) { try { - val attachedClass = loadClass(splittedNodeName[1]) // check existance - screenNames[node.data!!] = splittedNodeName[1] + val attachedClass = loadClass(splittedNodeName[1]) // check existence + screenNames[node.data!!] = splittedNodeName[1] // actual loading will by dynamic as some UIs need to be re-initialised as they're called } catch (e: java.lang.ClassNotFoundException) { printdbgerr(this, "class '${splittedNodeName[1]}' was not found, skipping") @@ -128,6 +133,7 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode