diff --git a/assets/mods/basegame/locales/en/blocks.json b/assets/mods/basegame/locales/en/blocks.json index 55ceceda5..2411c4d0e 100644 --- a/assets/mods/basegame/locales/en/blocks.json +++ b/assets/mods/basegame/locales/en/blocks.json @@ -1,4 +1,6 @@ { + "BLOCK_WALL_NAME_TEMPLATE": "%1$s Wall", + "BLOCK_AIR": "Air", "BLOCK_STONE": "Stone", diff --git a/assets/mods/basegame/locales/fiFI/blocks.json b/assets/mods/basegame/locales/fiFI/blocks.json new file mode 100644 index 000000000..12e8aa011 --- /dev/null +++ b/assets/mods/basegame/locales/fiFI/blocks.json @@ -0,0 +1,3 @@ +{ + "BLOCK_WALL_NAME_TEMPLATE": "%1$sseinä" +} \ No newline at end of file diff --git a/assets/mods/basegame/locales/koKR/blocks.json b/assets/mods/basegame/locales/koKR/blocks.json index 4f6dfc604..3924141eb 100644 --- a/assets/mods/basegame/locales/koKR/blocks.json +++ b/assets/mods/basegame/locales/koKR/blocks.json @@ -1,4 +1,6 @@ { + "BLOCK_WALL_NAME_TEMPLATE": "%1$s 벽", + "BLOCK_STONE": "돌", "BLOCK_STONE_PLURAL": "돌", "BLOCK_DIRT": "흙", @@ -21,8 +23,8 @@ "BLOCK_TRUNK_BIRCH_PLURAL": "자작나무", "BLOCK_TRUNK_BLOODROSE": "자단나무", "BLOCK_TRUNK_BLOODROSE_PLURAL": "자단나무", - "BLOCK_STONE_QUARRIED": "석재", - "BLOCK_STONE_QUARRIED_PLURAL": "석재", + "BLOCK_STONE_QUARRIED": "조약돌", + "BLOCK_STONE_QUARRIED_PLURAL": "조약돌", "BLOCK_SAND": "모래", "BLOCK_SAND_PLURAL": "모래", "BLOCK_GRAVEL": "자갈", diff --git a/src/net/torvald/spriteanimation/HasAssembledSprite.kt b/src/net/torvald/spriteanimation/HasAssembledSprite.kt index 6a79831af..3faa4b349 100644 --- a/src/net/torvald/spriteanimation/HasAssembledSprite.kt +++ b/src/net/torvald/spriteanimation/HasAssembledSprite.kt @@ -2,8 +2,8 @@ package net.torvald.spriteanimation import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion -import net.torvald.spriteassembler.ADProperties -import net.torvald.spriteassembler.AssembleSheetPixmap +import net.torvald.terrarum.spriteassembler.ADProperties +import net.torvald.terrarum.spriteassembler.AssembleSheetPixmap import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack diff --git a/src/net/torvald/terrarum/gamecontroller/EnumKeyFunc.kt b/src/net/torvald/terrarum/gamecontroller/EnumKeyFunc.kt deleted file mode 100644 index c120c05d5..000000000 --- a/src/net/torvald/terrarum/gamecontroller/EnumKeyFunc.kt +++ /dev/null @@ -1,10 +0,0 @@ -package net.torvald.terrarum.gamecontroller - -/** - * Created by minjaesong on 2015-12-31. - */ -enum class EnumKeyFunc { - UI_CONSOLE, UI_BASIC_INFO, - MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN, JUMP, - HAND_PRIMARY, HAND_SECONDARY -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gamecontroller/Key.kt b/src/net/torvald/terrarum/gamecontroller/Key.kt deleted file mode 100644 index 7900478a7..000000000 --- a/src/net/torvald/terrarum/gamecontroller/Key.kt +++ /dev/null @@ -1,93 +0,0 @@ -package net.torvald.terrarum.gamecontroller - -/** - * Created by minjaesong on 2016-01-15. - */ -/*@Deprecated("Use Gdx.Input.Keys") -object DeprecatedAsFuckKey { - - val RETURN = 28 - val BACKSPACE = 14 - val GRAVE = 41 - val TAB = 15 - val ESCAPE = 1 - val SPACE = 57 - val CAPS_LOCK = 58 - val L_CONTROL = 29 - - // same position keys - val L_ALT = 56 - val L_COMMAND = 219 // Mac - - val DELETE = 211 - - val L_SHIFT = 42 - val R_SHIFT = 54 - - val UP = 200 - val DOWN = 208 - val LEFT = 203 - val RIGHT = 205 - - val F1 = 59 - val F2 = 60 - val F3 = 61 - val F4 = 62 - - val F5 = 63 - val F6 = 64 - val F7 = 65 - val F8 = 66 - - val F9 = 67 - val F10 = 68 - val F11 = 87 - val F12 = 88 - - val NUM_1 = 8 - val NUM_2 = 9 - val NUM_3 = 10 - val NUM_4 = 11 - val NUM_5 = 12 - val NUM_6 = 13 - val NUM_7 = 14 - val NUM_8 = 15 - val NUM_9 = 16 - val NUM_0 = 7 - - // JInput is QWERTY-based - val Q = 16 - val W = 17 - val E = 18 - val R = 19 - val T = 20 - val Y = 21 - val U = 22 - val I = 23 - val O = 24 - val P = 25 - - val A = 30 - val S = 31 - val D = 32 - val F = 33 - val G = 34 - val H = 35 - val J = 36 - val K = 37 - val L = 38 - val SEMICOLON = 39 - - val Z = 44 - val X = 45 - val C = 46 - val V = 47 - val B = 48 - val N = 49 - val M = 50 - - val PGUP = 201 - val PGDN = 209 - val HOME = 199 - val END = 207 -}*/ diff --git a/src/net/torvald/terrarum/gamecontroller/KeyLayout.kt b/src/net/torvald/terrarum/gamecontroller/KeyLayout.kt deleted file mode 100644 index dffedf719..000000000 --- a/src/net/torvald/terrarum/gamecontroller/KeyLayout.kt +++ /dev/null @@ -1,86 +0,0 @@ -package net.torvald.terrarum.gamecontroller - -import com.badlogic.gdx.utils.JsonValue -import net.torvald.terrarum.utils.JsonFetcher -import java.util.* - - - - -/** - * Created by minjaesong on 2016-07-28. - */ -object KeyLayout { - - /** - * HashMap - */ - val layouts: HashMap - - init { - layouts = HashMap() - - val map = net.torvald.terrarum.utils.JsonFetcher("./res/keylayout.json") - JsonFetcher.forEach(map) { name, entry -> - layouts.put( - name, - KeyLayoutClass( - entry.getString("layout"), - entry.getString("name"), - entry.getString("capslock") - ) - ) - } - - } - -} - -class KeyLayoutClass(layoutString: String, val layoutName: String, capsMode: String) { - val disposition = intArrayOf( - // alphanumeric - 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13, - 16,17,18,19,20,21,22,23,24,25,26,27, - 30,31,32,33,34,35,36,37,38,39,40, - 44,45,46,47,48,49,50,51,52,53, - // control keys - 14, // back - 15, // tab - 58, 28, // capslock, return/enter - 42, // lshift - 29, 57 // lcontrol, space - ) - val engraving = ArrayList(disposition.size) - - init { - /* ================== * - * parse layoutString * - * ================== */ - // zero-fill engraving - for (i in 1..disposition.size) engraving.add("") - - // Backspace - engraving[disposition.indexOf(14)] = "BACK" - // Tab - engraving[disposition.indexOf(15)] = "TAB" - // Capslock - engraving[disposition.indexOf(58)] = "CAPS" - // Enter - engraving[disposition.indexOf(28)] = "ENTER" - // LShift - engraving[disposition.indexOf(42)] = "SHIFT" - // Control - engraving[disposition.indexOf(29)] = "CTRL" - // Space - engraving[disposition.indexOf(57)] = "SPACE" - - // alphanumeric - for (i in 0..layoutString.length - 1) { - engraving[disposition.indexOf(i)] = layoutString[i].toString() - } - } - - fun codeToLabel(code: Int) = engraving[disposition.indexOf(code)] - - fun labelToCode(char: Char) = disposition[engraving.indexOf(char.toUpperCase().toString())] -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameitems/GameItem.kt b/src/net/torvald/terrarum/gameitems/GameItem.kt index 1185ac82a..94c05ca69 100644 --- a/src/net/torvald/terrarum/gameitems/GameItem.kt +++ b/src/net/torvald/terrarum/gameitems/GameItem.kt @@ -39,6 +39,11 @@ abstract class GameItem(val originalID: ItemID) : Comparable, Cloneabl /** * OriginalName is always read from Language files. + * + * Syntax example: + * + * - `BLOCK_AIR` – Prints out `Lang.get("BLOCK_AIR")` + * - `BLOCK_AIR>>=BLOCK_WALL_NAME_TEMPLATE` – Prints out `Formatter().format(Lang.get("BLOCK_WALL_NAME_TEMPLATE"), Lang.get("BLOCK_AIR")).toString()` */ abstract val originalName: String diff --git a/src/net/torvald/terrarum/langpack/Lang.kt b/src/net/torvald/terrarum/langpack/Lang.kt index 194d1c574..64c33dfaa 100644 --- a/src/net/torvald/terrarum/langpack/Lang.kt +++ b/src/net/torvald/terrarum/langpack/Lang.kt @@ -123,10 +123,37 @@ object Lang { } + private val bindOp = ">>=" + + /** + * Syntax example: + * + * - `BLOCK_AIR` – Prints out `Lang.get("BLOCK_AIR")` + * - `BLOCK_AIR>>=BLOCK_WALL_NAME_TEMPLATE` – Prints out `Formatter().format(Lang.get("BLOCK_WALL_NAME_TEMPLATE"), Lang.get("BLOCK_AIR")).toString()` + */ operator fun get(key: String, capitalise: Boolean = true): String { - return getByLocale(key, App.GAME_LOCALE, capitalise) ?: getByLocale(key, FALLBACK_LANG_CODE, capitalise) ?: "$$key" + fun getstr(s: String) = getByLocale(s, App.GAME_LOCALE, capitalise) ?: getByLocale(s, FALLBACK_LANG_CODE, capitalise) ?: "$$s" + + + val args = key.split(bindOp).filter { it.isNotBlank() }.map { it.trim() } + if (args.isEmpty()) return "" + + val sb = StringBuilder() + val formatter = Formatter(sb) + + sb.append(getstr(args[0])) + args.subList(1, args.size).forEach { + val oldstr = sb.toString() + sb.clear() + formatter.format(getstr(it), oldstr) + } + + return sb.toString() } + /** + * Does NOT parse the operators + */ fun getByLocale(key: String, locale: String, capitalise: Boolean): String? { val ret = langpack["${key}_$locale"] ?: return null diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt index a0837a46c..9b426f9d5 100644 --- a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -75,7 +75,7 @@ class EntryPoint : ModuleEntryPoint() { override val isUnique: Boolean = false override var baseMass: Double = tile.density / 1000.0 override var baseToolSize: Double? = null - override val originalName = tile.nameKey + override val originalName = if (isWall) "${tile.nameKey}>>=BLOCK_WALL_NAME_TEMPLATE" else tile.nameKey override var stackable = true override var inventoryCategory = if (isWall) Category.WALL else Category.BLOCK override var isDynamic = false diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/IngamePlayer.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/IngamePlayer.kt index 9210c3076..1b898c966 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/IngamePlayer.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/IngamePlayer.kt @@ -4,8 +4,8 @@ import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.spriteanimation.SpriteAnimation -import net.torvald.spriteassembler.ADProperties -import net.torvald.spriteassembler.AssembleSheetPixmap +import net.torvald.terrarum.spriteassembler.ADProperties +import net.torvald.terrarum.spriteassembler.AssembleSheetPixmap import net.torvald.terrarum.App import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.AVKey diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index 5d252ab0b..c12db45d9 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -13,7 +13,7 @@ import net.torvald.EMDASH import net.torvald.getKeycapConsole import net.torvald.getKeycapPC import net.torvald.spriteanimation.SpriteAnimation -import net.torvald.spriteassembler.ADProperties +import net.torvald.terrarum.spriteassembler.ADProperties import net.torvald.terrarum.* import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.langpack.Lang diff --git a/src/net/torvald/terrarum/serialise/WriteActor.kt b/src/net/torvald/terrarum/serialise/WriteActor.kt index 3d859ba32..4228936f1 100644 --- a/src/net/torvald/terrarum/serialise/WriteActor.kt +++ b/src/net/torvald/terrarum/serialise/WriteActor.kt @@ -2,7 +2,7 @@ package net.torvald.terrarum.serialise import net.torvald.spriteanimation.HasAssembledSprite import net.torvald.spriteanimation.SpriteAnimation -import net.torvald.spriteassembler.ADProperties +import net.torvald.terrarum.spriteassembler.ADProperties import net.torvald.terrarum.ItemCodex import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.gameactors.ActorWithBody diff --git a/src/net/torvald/spriteassembler/ADProperties.kt b/src/net/torvald/terrarum/spriteassembler/ADProperties.kt similarity index 98% rename from src/net/torvald/spriteassembler/ADProperties.kt rename to src/net/torvald/terrarum/spriteassembler/ADProperties.kt index b547eecfb..ceabf536f 100644 --- a/src/net/torvald/spriteassembler/ADProperties.kt +++ b/src/net/torvald/terrarum/spriteassembler/ADProperties.kt @@ -1,4 +1,4 @@ -package net.torvald.spriteassembler +package net.torvald.terrarum.spriteassembler import com.badlogic.gdx.files.FileHandle import net.torvald.terrarum.linearSearchBy @@ -259,10 +259,10 @@ class ADPropertyObject(propertyRaw: String) { val name: String val input: Any? get() = when (type) { - ADPropertyType.IVEC2 -> field!! as Vector2i - ADPropertyType.FLOAT -> field!! as Float + ADPropertyType.IVEC2 -> field!! as Vector2i + ADPropertyType.FLOAT -> field!! as Float ADPropertyType.STRING_PAIR -> field!! as String - else -> null + else -> null } val type: ADPropertyType diff --git a/src/net/torvald/spriteassembler/ANIMATION_DESCRIPTION_LANGUAGE.md b/src/net/torvald/terrarum/spriteassembler/ANIMATION_DESCRIPTION_LANGUAGE.md similarity index 100% rename from src/net/torvald/spriteassembler/ANIMATION_DESCRIPTION_LANGUAGE.md rename to src/net/torvald/terrarum/spriteassembler/ANIMATION_DESCRIPTION_LANGUAGE.md diff --git a/src/net/torvald/spriteassembler/AssembleSheetPixmap.kt b/src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt similarity index 99% rename from src/net/torvald/spriteassembler/AssembleSheetPixmap.kt rename to src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt index 5d4befad6..d3a7c2547 100644 --- a/src/net/torvald/spriteassembler/AssembleSheetPixmap.kt +++ b/src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt @@ -1,4 +1,4 @@ -package net.torvald.spriteassembler +package net.torvald.terrarum.spriteassembler import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Pixmap diff --git a/src/net/torvald/spriteassembler/SpriteAssemblerApp.kt b/src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt similarity index 99% rename from src/net/torvald/spriteassembler/SpriteAssemblerApp.kt rename to src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt index 05da9c66a..f36e95e11 100644 --- a/src/net/torvald/spriteassembler/SpriteAssemblerApp.kt +++ b/src/net/torvald/terrarum/spriteassembler/SpriteAssemblerApp.kt @@ -1,4 +1,4 @@ -package net.torvald.spriteassembler +package net.torvald.terrarum.spriteassembler import com.badlogic.gdx.Game import com.badlogic.gdx.Gdx diff --git a/src/net/torvald/spriteassembler/test_sprite.properties b/src/net/torvald/terrarum/spriteassembler/test_sprite.properties similarity index 100% rename from src/net/torvald/spriteassembler/test_sprite.properties rename to src/net/torvald/terrarum/spriteassembler/test_sprite.properties diff --git a/src/net/torvald/terrarum/tests/ADLParsingTest.kt b/src/net/torvald/terrarum/tests/ADLParsingTest.kt index 1cf48a38a..e59b9d806 100644 --- a/src/net/torvald/terrarum/tests/ADLParsingTest.kt +++ b/src/net/torvald/terrarum/tests/ADLParsingTest.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.tests -import net.torvald.spriteassembler.ADProperties +import net.torvald.terrarum.spriteassembler.ADProperties import java.io.StringReader /** diff --git a/src/net/torvald/terrarum/tests/SpriteAssemblerTest.kt b/src/net/torvald/terrarum/tests/SpriteAssemblerTest.kt index 904b72708..4ccb9a76c 100644 --- a/src/net/torvald/terrarum/tests/SpriteAssemblerTest.kt +++ b/src/net/torvald/terrarum/tests/SpriteAssemblerTest.kt @@ -1,7 +1,7 @@ package net.torvald.terrarum.tests -import net.torvald.spriteassembler.ADProperties -import net.torvald.spriteassembler.AssembleSheetPixmap +import net.torvald.terrarum.spriteassembler.ADProperties +import net.torvald.terrarum.spriteassembler.AssembleSheetPixmap import java.io.StringReader /**