mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-10 13:51:53 +09:00
load ui to inject remoCon contents to implement its own submenus
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Нов Свят",
|
||||
"CONTEXT_WORLD_NEW": "Нов Свят",
|
||||
"MENU_LABEL_DELETE_WORLD": "Изтриване на Света",
|
||||
"CONTEXT_WORLD_COUNT": "Светове: ",
|
||||
"GAME_INVENTORY_INGREDIENTS": "Съставки",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nový Svět",
|
||||
"CONTEXT_WORLD_NEW": "Nový Svět",
|
||||
"MENU_LABEL_DELETE_WORLD": "Smazat Svět",
|
||||
"CONTEXT_WORLD_COUNT": "Světy: ",
|
||||
"CONTEXT_ITEM_MAP": "Mapa",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Ny Verden",
|
||||
"CONTEXT_WORLD_NEW": "Ny Verden",
|
||||
"MENU_LABEL_DELETE_WORLD": "Slet Verden",
|
||||
"CONTEXT_WORLD_COUNT": "Verdener: ",
|
||||
"CONTEXT_ITEM_MAP": "Kort",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Neue Welt",
|
||||
"CONTEXT_WORLD_NEW": "Neue Welt",
|
||||
"MENU_LABEL_DELETE_WORLD": "Welt Löschen",
|
||||
"CONTEXT_WORLD_COUNT": "Welten: ",
|
||||
"GAME_INVENTORY_INGREDIENTS": "Zutaten",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Νέο Κόσμο",
|
||||
"CONTEXT_WORLD_NEW": "Νέο Κόσμο",
|
||||
"MENU_LABEL_DELETE_WORLD": "Διαγραφή Κόσμο",
|
||||
"CONTEXT_WORLD_COUNT": "Κόσμοι: ",
|
||||
"CONTEXT_ITEM_MAP": "Χαρτης",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "New World",
|
||||
"CONTEXT_WORLD_NEW": "New World",
|
||||
"MENU_LABEL_DELETE_WORLD": "Delete World",
|
||||
"CONTEXT_WORLD_COUNT": "Worlds: ",
|
||||
"GAME_INVENTORY_INGREDIENTS": "Ingredients",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nuevo Mundo",
|
||||
"CONTEXT_WORLD_NEW": "Nuevo Mundo",
|
||||
"MENU_LABEL_DELETE_WORLD": "Eliminar Mundo",
|
||||
"CONTEXT_WORLD_COUNT": "Mundos: ",
|
||||
"CONTEXT_ITEM_MAP": "Mapa",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Uusi Maailma",
|
||||
"CONTEXT_WORLD_NEW": "Uusi Maailma",
|
||||
"MENU_LABEL_DELETE_WORLD": "Poista Maailma",
|
||||
"CONTEXT_WORLD_COUNT": "Maailmoja: ",
|
||||
"MENU_MONITOR_CALI_TITLE": "Tarkista näytön",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nouveau Monde",
|
||||
"CONTEXT_WORLD_NEW": "Nouveau Monde",
|
||||
"MENU_LABEL_DELETE_WORLD": "Supprimer Monde",
|
||||
"CONTEXT_WORLD_COUNT": "Mondes: ",
|
||||
"MENU_MONITOR_CALI_TITLE": "Vérification d'écran",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Új Világ",
|
||||
"CONTEXT_WORLD_NEW": "Új Világ",
|
||||
"MENU_LABEL_DELETE_WORLD": "Világ Törlése",
|
||||
"CONTEXT_ITEM_MAP": "Térkép",
|
||||
"MENU_LABEL_MENU": "Menü"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nýr Heimur",
|
||||
"CONTEXT_WORLD_NEW": "Nýr Heimur",
|
||||
"MENU_LABEL_DELETE_WORLD": "Eyða Heimur",
|
||||
"CONTEXT_WORLD_COUNT": "Heimar: ",
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nuovo Mondo",
|
||||
"CONTEXT_WORLD_NEW": "Nuovo Mondo",
|
||||
"MENU_LABEL_DELETE_WORLD": "Cancella Mondo",
|
||||
"CONTEXT_WORLD_COUNT": "Mondi: ",
|
||||
"CONTEXT_ITEM_MAP": "Mappa",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "新しい世界",
|
||||
"CONTEXT_WORLD_NEW": "新しい世界",
|
||||
"MENU_LABEL_DELETE_WORLD": "世界を削除",
|
||||
"CONTEXT_WORLD_COUNT": "世界: ",
|
||||
"MENU_MONITOR_CALI_TITLE": "モニターチェック",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "あたらしい せかい",
|
||||
"CONTEXT_WORLD_NEW": "あたらしい せかい",
|
||||
"MENU_LABEL_DELETE_WORLD": "せかいを さくじょ",
|
||||
"CONTEXT_WORLD_COUNT": "せかい: ",
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "새 세계",
|
||||
"CONTEXT_WORLD_NEW": "새 세계",
|
||||
"MENU_LABEL_DELETE_WORLD": "새계 삭제",
|
||||
"CONTEXT_WORLD_COUNT": "새계: ",
|
||||
"MENU_MONITOR_CALI_TITLE": "모니터 확인",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nieuwe Wereld",
|
||||
"CONTEXT_WORLD_NEW": "Nieuwe Wereld",
|
||||
"MENU_LABEL_DELETE_WORLD": "Verwijder Wereld",
|
||||
"CONTEXT_WORLD_COUNT": "Werelden: ",
|
||||
"CONTEXT_ITEM_MAP": "Kaart",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Ny Verden",
|
||||
"CONTEXT_WORLD_NEW": "Ny Verden",
|
||||
"MENU_LABEL_DELETE_WORLD": "Slett Verden",
|
||||
"CONTEXT_WORLD_COUNT": "Verdener: ",
|
||||
"CONTEXT_ITEM_MAP": "Kart",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nowy Świat",
|
||||
"CONTEXT_WORLD_NEW": "Nowy Świat",
|
||||
"MENU_LABEL_DELETE_WORLD": "Usuń Świat",
|
||||
"CONTEXT_WORLD_COUNT": "Światy: ",
|
||||
"CONTEXT_ITEM_MAP": "Mapa",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Novo Mundo",
|
||||
"CONTEXT_WORLD_NEW": "Novo Mundo",
|
||||
"MENU_LABEL_DELETE_WORLD": "Excluir Mundo",
|
||||
"CONTEXT_WORLD_COUNT": "Mundos: ",
|
||||
"CONTEXT_ITEM_MAP": "Mapa",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nova Mundo",
|
||||
"CONTEXT_WORLD_NEW": "Nova Mundo",
|
||||
"MENU_LABEL_DELETE_WORLD": "Apagar Mundo",
|
||||
"CONTEXT_WORLD_COUNT": "Mundos: ",
|
||||
"CONTEXT_ITEM_MAP": "Mapa",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Lume Nouă",
|
||||
"CONTEXT_WORLD_NEW": "Lume Nouă",
|
||||
"MENU_LABEL_DELETE_WORLD": "Șterge Lume",
|
||||
"CONTEXT_WORLD_COUNT": "Lumi: ",
|
||||
"CONTEXT_ITEM_MAP": "Hartă",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Новый Мир",
|
||||
"CONTEXT_WORLD_NEW": "Новый Мир",
|
||||
"MENU_LABEL_DELETE_WORLD": "Удалить Мир",
|
||||
"CONTEXT_WORLD_COUNT": "Миры: ",
|
||||
"GAME_INVENTORY_INGREDIENTS": "Ингредиенты",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Ny Värld",
|
||||
"CONTEXT_WORLD_NEW": "Ny Värld",
|
||||
"MENU_LABEL_DELETE_WORLD": "Radera Värld",
|
||||
"CONTEXT_WORLD_COUNT": "Världar: ",
|
||||
"CONTEXT_ITEM_MAP": "Karta",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "โลกใหม่",
|
||||
"CONTEXT_WORLD_NEW": "โลกใหม่",
|
||||
"MENU_LABEL_DELETE_WORLD": "ลบโลก",
|
||||
"CONTEXT_WORLD_COUNT": "โลก: ",
|
||||
"CONTEXT_ITEM_MAP": "แผนที่",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Yeni Dünya",
|
||||
"CONTEXT_WORLD_NEW": "Yeni Dünya",
|
||||
"MENU_LABEL_DELETE_WORLD": "dünyayı Sil",
|
||||
"CONTEXT_WORLD_COUNT": "Dünyalar: ",
|
||||
"CONTEXT_ITEM_MAP": "Harita",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "创新世界",
|
||||
"CONTEXT_WORLD_NEW": "创新世界",
|
||||
"MENU_LABEL_DELETE_WORLD": "删除世界",
|
||||
"CONTEXT_WORLD_COUNT": "世界: ",
|
||||
"CONTEXT_ITEM_MAP": "地图",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "創新世界",
|
||||
"CONTEXT_WORLD_NEW": "創新世界",
|
||||
"MENU_LABEL_DELETE_WORLD": "刪除世界",
|
||||
"CONTEXT_WORLD_COUNT": "世界: ",
|
||||
"CONTEXT_ITEM_MAP": "地圖",
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIRemoCon
|
||||
import net.torvald.terrarum.ui.UICanvas
|
||||
|
||||
class ModOptionsHost : UICanvas() {
|
||||
class ModOptionsHost(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
override var openCloseTime: Second = 0f
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import net.torvald.terrarum.ui.UIItemToggleButton
|
||||
/**
|
||||
* Created by minjaesong on 2021-10-06.
|
||||
*/
|
||||
class GraphicsControlPanel : UICanvas() {
|
||||
class GraphicsControlPanel(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
override var width = 400
|
||||
override var height = 400
|
||||
|
||||
@@ -74,7 +74,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() {
|
||||
)
|
||||
private val savingUI = UIItemSaving(this, (width - UIItemSaving.WIDTH) / 2, (height - UIItemSaving.HEIGHT) / 2)
|
||||
|
||||
private val keyConfigUI = UIKeyboardControlPanel()
|
||||
private val keyConfigUI = UIKeyboardControlPanel(null)
|
||||
|
||||
private var oldScreen = 0
|
||||
private var screen = 0
|
||||
|
||||
@@ -16,7 +16,7 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
/**
|
||||
* Created by minjaesong on 2021-09-15.
|
||||
*/
|
||||
class UIKeyboardControlPanel : UICanvas() {
|
||||
class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
|
||||
|
||||
init {
|
||||
CommonResourcePool.addToLoadingList("inventory_category") {
|
||||
|
||||
@@ -41,7 +41,7 @@ val SAVE_CELL_HEIGHT = 120
|
||||
*
|
||||
* Created by minjaesong on 2021-09-09.
|
||||
*/
|
||||
class UILoadDemoSavefiles : UICanvas() {
|
||||
class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
init {
|
||||
CommonResourcePool.addToLoadingList("inventory_category") {
|
||||
@@ -129,8 +129,6 @@ class UILoadDemoSavefiles : UICanvas() {
|
||||
|
||||
override fun show() {
|
||||
try {
|
||||
val remoCon = (App.getCurrentScreen() as TitleScreen).uiRemoCon
|
||||
|
||||
remoCon.handler.lockToggle()
|
||||
showSpinner = true
|
||||
|
||||
@@ -181,11 +179,24 @@ class UILoadDemoSavefiles : UICanvas() {
|
||||
}
|
||||
|
||||
private fun getCells() = if (mode == 0) playerCells else worldCells
|
||||
private val menuTree = arrayOf(UITitleRemoConYaml.injectedMenuSingleCharSel, UITitleRemoConYaml.injectedMenuSingleWorldSel).map { Yaml(it).parse() }
|
||||
private var loadFired = 0
|
||||
private var oldMode = -1
|
||||
private val remoConParentNode = remoCon.currentRemoConContents
|
||||
|
||||
private fun modeChangedHandler(mode: Int) {
|
||||
remoCon.setNewRemoConContents(menuTree[mode], remoConParentNode)
|
||||
}
|
||||
|
||||
override fun updateUI(delta: Float) {
|
||||
|
||||
if (mode < 2) {
|
||||
|
||||
if (oldMode != mode) {
|
||||
modeChangedHandler(mode)
|
||||
oldMode = mode
|
||||
}
|
||||
|
||||
if (scrollTarget != listScroll) {
|
||||
if (scrollAnimCounter < scrollAnimLen) {
|
||||
scrollAnimCounter += delta
|
||||
@@ -293,7 +304,7 @@ class UILoadDemoSavefiles : UICanvas() {
|
||||
batch.draw(saveTex, (width - uiWidth - 10) / 2f, 0f)
|
||||
|
||||
// draw texts
|
||||
val loadGameTitleStr = Lang["MENU_IO_LOAD_GAME"]
|
||||
val loadGameTitleStr = Lang["MENU_IO_LOAD"]
|
||||
// "Game Load"
|
||||
App.fontGame.draw(batch, loadGameTitleStr, (width - App.fontGame.getWidth(loadGameTitleStr)).div(2).toFloat(), titleTextPosY.toFloat())
|
||||
// Control help
|
||||
|
||||
@@ -8,7 +8,7 @@ import net.torvald.terrarum.ui.UICanvas
|
||||
/**
|
||||
* Created by minjaesong on 2021-09-13.
|
||||
*/
|
||||
class UIProxyLoadLatestSave : UICanvas() {
|
||||
class UIProxyLoadLatestSave(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
override var width: Int = 0
|
||||
override var height: Int = 0
|
||||
|
||||
@@ -17,7 +17,7 @@ import net.torvald.terrarum.utils.RandomWordsName
|
||||
/**
|
||||
* Created by minjaesong on 2018-12-08.
|
||||
*/
|
||||
class UIProxyNewRandomGame : UICanvas() {
|
||||
class UIProxyNewRandomGame(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
override var width: Int = 0
|
||||
override var height: Int = 0
|
||||
|
||||
@@ -59,8 +59,8 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode<St
|
||||
|
||||
private fun loadClass(name: String): UICanvas {
|
||||
val newClass = Class.forName(name)
|
||||
val newClassConstructor = newClass.getConstructor(/* no args defined */)
|
||||
val newClassInstance = newClassConstructor.newInstance(/* no args defined */)
|
||||
val newClassConstructor = newClass.getConstructor(this.javaClass)
|
||||
val newClassInstance = newClassConstructor.newInstance(this)
|
||||
return newClassInstance as UICanvas
|
||||
}
|
||||
|
||||
@@ -118,18 +118,7 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode<St
|
||||
//currentRemoConContents.children.forEach { println("- ${it.data}") }
|
||||
|
||||
if (currentRemoConContents.children.size > selectedIndex ?: 0x7FFFFFFF) {
|
||||
|
||||
|
||||
val newCurrentRemoConContents = currentRemoConContents.children[selectedIndex!!]
|
||||
|
||||
// only go deeper if that node has child to navigate
|
||||
if (currentRemoConContents.children[selectedIndex].children.size != 0) {
|
||||
remoConTray.consume()
|
||||
remoConTray = generateNewRemoCon(newCurrentRemoConContents)
|
||||
currentRemoConContents = newCurrentRemoConContents
|
||||
}
|
||||
|
||||
currentlySelectedRemoConItem = newCurrentRemoConContents.data
|
||||
setNewRemoConContents(currentRemoConContents.children[selectedIndex!!])
|
||||
}
|
||||
else {
|
||||
throw RuntimeException("Index: $selectedIndex, Size: ${currentRemoConContents.children.size}")
|
||||
@@ -165,6 +154,22 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode<St
|
||||
}
|
||||
}
|
||||
|
||||
fun setNewRemoConContents(newCurrentRemoConContents: QNDTreeNode<String>, forceSetParent: QNDTreeNode<String>? = null) {
|
||||
|
||||
if (forceSetParent != null) {
|
||||
newCurrentRemoConContents.parent = forceSetParent
|
||||
}
|
||||
|
||||
// only go deeper if that node has child to navigate
|
||||
if (newCurrentRemoConContents.children.size != 0) {
|
||||
remoConTray.consume()
|
||||
remoConTray = generateNewRemoCon(newCurrentRemoConContents)
|
||||
currentRemoConContents = newCurrentRemoConContents
|
||||
}
|
||||
|
||||
currentlySelectedRemoConItem = newCurrentRemoConContents.data
|
||||
}
|
||||
|
||||
override fun renderUI(batch: SpriteBatch, camera: Camera) {
|
||||
remoConTray.render(batch, camera)
|
||||
openUI?.render(batch, camera)
|
||||
|
||||
@@ -10,7 +10,7 @@ import net.torvald.terrarum.ui.Toolkit
|
||||
import net.torvald.terrarum.ui.UICanvas
|
||||
import net.torvald.terrarum.ui.UIItemTextButtonList
|
||||
|
||||
class UITitleLanguage : UICanvas() {
|
||||
class UITitleLanguage(val remoCon: UIRemoCon) : UICanvas() {
|
||||
|
||||
val menuLabels = arrayOf(
|
||||
"MENU_LABEL_RETURN"
|
||||
|
||||
@@ -11,8 +11,8 @@ object UITitleRemoConYaml {
|
||||
*
|
||||
* The class must be the UICanvas
|
||||
*/
|
||||
private val menuBase = """
|
||||
- MENU_LABEL_NEW_GAME : net.torvald.terrarum.modulebasegame.ui.UIProxyNewRandomGame
|
||||
val menuBase = """
|
||||
- MENU_MODE_SINGLEPLAYER : net.torvald.terrarum.modulebasegame.ui.UILoadDemoSavefiles
|
||||
- MENU_OPTIONS
|
||||
- MENU_LABEL_GRAPHICS : net.torvald.terrarum.modulebasegame.ui.GraphicsControlPanel
|
||||
- MENU_OPTIONS_CONTROLS : net.torvald.terrarum.modulebasegame.ui.UIKeyboardControlPanel
|
||||
@@ -26,18 +26,25 @@ object UITitleRemoConYaml {
|
||||
- MENU_LABEL_QUIT
|
||||
"""
|
||||
|
||||
private val menuWithSavefile = """
|
||||
val menuWithSavefile = """
|
||||
- MENU_LABEL_CONTINUE : net.torvald.terrarum.modulebasegame.ui.UIProxyLoadLatestSave
|
||||
- MENU_IO_LOAD : net.torvald.terrarum.modulebasegame.ui.UILoadDemoSavefiles
|
||||
- MENU_LABEL_NEW_WORLD
|
||||
- MENU_LABEL_RETURN"""
|
||||
|
||||
private val menuNewGame = """
|
||||
"""
|
||||
|
||||
val menuNewGame = """
|
||||
"""
|
||||
|
||||
val injectedMenuSingleCharSel = """
|
||||
- CONTEXT_CHARACTER_NEW
|
||||
- MENU_LABEL_RETURN
|
||||
"""
|
||||
|
||||
val injectedMenuSingleWorldSel = """
|
||||
- CONTEXT_WORLD_NEW
|
||||
- MENU_LABEL_RETURN
|
||||
"""
|
||||
|
||||
operator fun invoke(hasSave: Boolean) =
|
||||
//Yaml((if (hasSave) menuWithSavefile else menuNewGame) + menuBase).parse()
|
||||
Yaml((if (true) menuWithSavefile else menuNewGame) + menuBase).parse()
|
||||
// Yaml((if (hasSave) menuWithSavefile else menuNewGame) + menuBase).parse()
|
||||
Yaml(menuBase).parse()
|
||||
}
|
||||
|
||||
|
||||
@@ -56,5 +56,5 @@ open class UITitleWallOfText(private val text: List<String>) : UICanvas() {
|
||||
}
|
||||
}
|
||||
|
||||
class UITitleCredits : UITitleWallOfText(CreditSingleton.credit)
|
||||
class UITitleGPL3 : UITitleWallOfText(CreditSingleton.gpl3)
|
||||
class UITitleCredits(val remoCon: UIRemoCon) : UITitleWallOfText(CreditSingleton.credit)
|
||||
class UITitleGPL3(val remoCon: UIRemoCon) : UITitleWallOfText(CreditSingleton.gpl3)
|
||||
Reference in New Issue
Block a user