Inventory UI on ingame

This commit is contained in:
Song Minjae
2017-04-09 03:35:18 +09:00
parent c5367f8f1c
commit 671048e1e1
20 changed files with 245 additions and 267 deletions

View File

@@ -56,12 +56,12 @@ object VDUtil {
override fun toString(): String {
val sb = StringBuilder()
if (hierarchy.size > 0) {
sb.append(hierarchy[0].toCanonicalString())
sb.append(hierarchy[0].toCanonicalString(Charsets.UTF_8))
}
if (hierarchy.size > 1) {
(1..hierarchy.lastIndex).forEach {
sb.append('/')
sb.append(hierarchy[it].toCanonicalString())
sb.append(hierarchy[it].toCanonicalString(Charsets.UTF_8))
}
}
@@ -209,12 +209,12 @@ object VDUtil {
/**
* Get list of entries of directory.
*/
fun getDirectoryEntries(disk: VirtualDisk, entry: DiskEntry): Array<DiskEntry> {
if (entry.contents !is EntryDirectory)
fun getDirectoryEntries(disk: VirtualDisk, dirToSearch: DiskEntry): Array<DiskEntry> {
if (dirToSearch.contents !is EntryDirectory)
throw IllegalArgumentException("The entry is not directory")
val entriesList = ArrayList<DiskEntry>()
entry.contents.entries.forEach {
dirToSearch.contents.entries.forEach {
val entry = disk.entries[it]
if (entry != null) entriesList.add(entry)
}
@@ -697,7 +697,7 @@ fun String.toEntryName(length: Int, charset: Charset): ByteArray {
buffer.put(stringByteArray.sliceArray(0..minOf(length, stringByteArray.size) - 1))
return buffer.array
}
fun ByteArray.toCanonicalString(): String {
fun ByteArray.toCanonicalString(charset: Charset): String {
var lastIndexOfRealStr = 0
for (i in this.lastIndex downTo 0) {
if (this[i] != 0.toByte()) {
@@ -705,7 +705,7 @@ fun ByteArray.toCanonicalString(): String {
break
}
}
return String(this.sliceArray(0..lastIndexOfRealStr))
return String(this.sliceArray(0..lastIndexOfRealStr), charset)
}
/**

View File

@@ -102,7 +102,7 @@ class DiskEntry(
// content
val contents: DiskEntryContent
) {
fun getFilenameString(charset: Charset) = if (entryID == 0) ROOTNAME else String(filename, charset)
fun getFilenameString(charset: Charset) = if (entryID == 0) ROOTNAME else filename.toCanonicalString(charset)
val serialisedSize: Int
get() = contents.getSizeEntry() + HEADER_SIZE