diff --git a/assets/graphics/gui/ime_icons_by_language.tga b/assets/graphics/gui/ime_icons_by_language.tga index 62b34c648..6534de538 100644 --- a/assets/graphics/gui/ime_icons_by_language.tga +++ b/assets/graphics/gui/ime_icons_by_language.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a75ac2e634cf98f4fb2405983f63fbbb5eb822451c0dcdc49aa1eae9acc17bf5 +oid sha256:c83cfb432ed5133b4ece5ae10ca65f663a57c08f63dd5d9bd317591617cdbfc6 size 80018 diff --git a/assets/keylayout/ta_in_tamil99.ime b/assets/keylayout/ta_in_tamil99.ime new file mode 100644 index 000000000..ef8e92557 --- /dev/null +++ b/assets/keylayout/ta_in_tamil99.ime @@ -0,0 +1,283 @@ +let states = {"keylayouts":[[""],[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +["0",")","\u0966",")"], +["1","\u090D","\u0967","!"], +["2","\u0945","\u0968","@"], +["3","\u094D\u0930","\u0969","#"], +["4","\u0930\u094D","\u096A","$"], +["5","\u091C\u094D\u091E","\u096B","%"], +["6","\u0924\u094D\u0930","\u096C","^"], +["7","\u0915\u094D\u0937","\u096D","&"], +["8","\u0936\u094D\u0930","\u096E","*"], +["9","(","\u096F","("], +["*"], +["#"], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +["\u094B","\u0913"], +["\u0935","\u0934"], +["\u092E","\u0923","\u0954","\u0923"], +["\u094D","\u0905"], +["\u093E","\u0906"], +["\u093F","\u0907","\u0962","\u090C"], +["\u0941","\u0909"], +["\u092A","\u092B","\u092A","\u095E"], +["\u0917","\u0918","\u095A","\u0918"], +["\u0930","\u0931"], +["\u0915","\u0916","\u0958","\u0959"], +["\u0924","\u0925"], +["\u0938","\u0936"], +["\u0932","\u0933"], +["\u0926","\u0927"], +["\u091C","\u091D","\u095B","\u091D"], +["\u094C","\u0914"], +["\u0940","\u0908","\u0963","\u0961"], +["\u094B","\u090F"], +["\u0942","\u090A"], +["\u0939","\u0919"], +["\u0928","\u0929"], +["\u0948","\u0910"], +["\u0902","\u0901","\u0902","\u0950"], +["\u092C","\u092D"], +["\u0946","\u090E","\u0953","\u090E"], +[",","\u0937","\u0970","\u0970"], +[".","\u0964","\u0965","\u093D"], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[" "], +[undefined], +[undefined], +[undefined], +["\n"], +["\x08"], +["\u094A","\u0912"], +["-","\u0903"], +["\u0943","\u090B","\u0944","\u0960"], +["\u0921","\u0922","\u095C","\u095D"], +["\u093C","\u091E"], +["\u0949","\u0911"], +["\u091A","\u091B","\u0952","\u091B"], +["\u091F","\u0920","\u0951","\u0920"], +["\u092F","\u095F"], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +["0"], +["1"], +["2"], +["3"], +["4"], +["5"], +["6"], +["7"], +["8"], +["9"], +["/"], +["*"], +["-"], +["+"], +["."], +["."], +["\n"], +["="], +["("], +[")"], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined], +[undefined] +], +"code":""} // practically unused as long as there are no diacritics on the keyboard +let reset = () => { + states.code = 0 +} +let inRange = (s,a,b) => (a <= s && s <= b) +return Object.freeze({"n":"इनस्क्रिप्ट","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite", +"t":states.keylayouts.slice(0,10).concat([["3","\uDBBF\uDE01\u094D\u0930","\u0969","#"], ["4","\u0930\u094D\uDBBF\uDE01","\u096A","$"]], states.keylayouts.slice(12)), +"l":"hiIN", +// return: [delete count, composed output] +"accept":(headkey,shiftin,altgrin)=>{ + let layer = 1*shiftin + 2*altgrin + + let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0] + + return ['0', s] +}, +"backspace":()=>{ + reset() + return '' +}, +"end":()=>{ + reset() + return '' +}, +"reset":()=>{ reset() }, +"composing":()=>(states.code!='') +}) \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadAutosave.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadAutosave.kt new file mode 100644 index 000000000..118405b9f --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadAutosave.kt @@ -0,0 +1,29 @@ +package net.torvald.terrarum.modulebasegame.ui + +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.App +import net.torvald.terrarum.ui.Toolkit +import net.torvald.terrarum.ui.UICanvas + +/** + * Created by minjaesong on 2023-07-05. + */ +class UILoadAutosave(val full: UILoadSavegame) : UICanvas() { + + override var width: Int = Toolkit.drawWidth + override var height: Int = App.scr.height + + override fun updateUI(delta: Float) { + TODO("Not yet implemented") + } + + override fun renderUI(batch: SpriteBatch, camera: Camera) { + TODO("Not yet implemented") + } + + override fun dispose() { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadList.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadList.kt new file mode 100644 index 000000000..89adc4cc2 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadList.kt @@ -0,0 +1,29 @@ +package net.torvald.terrarum.modulebasegame.ui + +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.App +import net.torvald.terrarum.ui.Toolkit +import net.torvald.terrarum.ui.UICanvas + +/** + * Created by minjaesong on 2023-07-05. + */ +class UILoadList(val full: UILoadSavegame) : UICanvas() { + + override var width: Int = Toolkit.drawWidth + override var height: Int = App.scr.height + + override fun updateUI(delta: Float) { + TODO("Not yet implemented") + } + + override fun renderUI(batch: SpriteBatch, camera: Camera) { + TODO("Not yet implemented") + } + + override fun dispose() { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadManage.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadManage.kt new file mode 100644 index 000000000..6e6779f53 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadManage.kt @@ -0,0 +1,29 @@ +package net.torvald.terrarum.modulebasegame.ui + +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.App +import net.torvald.terrarum.ui.Toolkit +import net.torvald.terrarum.ui.UICanvas + +/** + * Created by minjaesong on 2023-07-05. + */ +class UILoadManage(val full: UILoadSavegame) : UICanvas() { + + override var width: Int = Toolkit.drawWidth + override var height: Int = App.scr.height + + override fun updateUI(delta: Float) { + TODO("Not yet implemented") + } + + override fun renderUI(batch: SpriteBatch, camera: Camera) { + TODO("Not yet implemented") + } + + override fun dispose() { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadSavegame.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadSavegame.kt index 72d515e8f..fcdea49d0 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadSavegame.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadSavegame.kt @@ -16,6 +16,8 @@ import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.savegame.ByteArray64InputStream import net.torvald.terrarum.savegame.EntryFile import net.torvald.terrarum.modulebasegame.serialise.LoadSavegame +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth import net.torvald.terrarum.savegame.VDFileID.PLAYER_SCREENSHOT import net.torvald.terrarum.ui.* import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -166,6 +168,29 @@ class UILoadSavegame(val remoCon: UIRemoCon) : Advanceable() { private val altSelQdrawW = altSelDrawW / 4 private val altSelQQQdrawW = altSelDrawW * 3 / 4 + private val transitionalListing = UILoadList(this) + private val transitionalAutosave = UILoadAutosave(this) + private val transitionalManage = UILoadManage(this) + private val transitionPanel = UIItemHorizontalFadeSlide( + this, + (width - internalWidth) / 2, + INVENTORY_CELLS_OFFSET_Y(), + width, + App.scr.height, + 0f, + transitionalListing, transitionalManage + ) + + init { + listOf(transitionalAutosave, transitionalManage).forEach { + it.posX = (-width / 2f).roundToInt() + it.initialX = (-width / 2f).roundToInt() + it.posY = 0 + it.initialY = 0 + it.opacity = 0f + } + } + private fun getDrawTextualInfoFun(disks: DiskPair): (UIItem, SpriteBatch) -> Unit { val lastPlayedStamp = Instant.ofEpochSecond(disks.player.getLastModifiedTime()) .atZone(TimeZone.getDefault().toZoneId())