setting up the inventory using builder (during init) requires ingame.player to be nullable, lateinit won't work

This commit is contained in:
Song Minjae
2017-04-11 23:07:29 +09:00
parent 1301121aa9
commit 037e84d6e2
21 changed files with 132 additions and 103 deletions

View File

@@ -13,7 +13,7 @@ internal object ExportAV : ConsoleCommand {
if (args.size == 2) {
try {
JsonWriter.writeToFile(
Terrarum.ingame!!.player.actorValue,
Terrarum.ingame!!.player!!.actorValue,
Terrarum.defaultDir + "/Exports/" + args[1] + ".json")
Echo("ExportAV: exported to " + args[1] + ".json")

View File

@@ -17,9 +17,9 @@ internal object GetAV : ConsoleCommand {
override fun execute(args: Array<String>) {
try {
if (args.size == 1) {
if (args.size == 1 && Terrarum.ingame!!.player != null) {
// print all actorvalue of player
val av = Terrarum.ingame!!.player.actorValue
val av = Terrarum.ingame!!.player!!.actorValue
val keyset = av.keySet
Echo("$ccW== ActorValue list for ${ccY}player $ccW==")
@@ -37,14 +37,14 @@ internal object GetAV : ConsoleCommand {
if (!args[1].isNum()) { // args[1] is ActorValue name
Echo("${ccW}player.$ccM${args[1]} $ccW= " +
ccG +
Terrarum.ingame!!.player.actorValue[args[1]] +
Terrarum.ingame!!.player!!.actorValue[args[1]] +
" $ccO" +
Terrarum.ingame!!.player.actorValue[args[1]]!!.javaClass.simpleName
Terrarum.ingame!!.player!!.actorValue[args[1]]!!.javaClass.simpleName
)
println("[GetAV] player.${args[1]} = " +
Terrarum.ingame!!.player.actorValue[args[1]] +
Terrarum.ingame!!.player!!.actorValue[args[1]] +
" " +
Terrarum.ingame!!.player.actorValue[args[1]]!!.javaClass.simpleName
Terrarum.ingame!!.player!!.actorValue[args[1]]!!.javaClass.simpleName
)
}
else {

View File

@@ -11,7 +11,7 @@ import net.torvald.terrarum.itemproperties.ItemCodex
*/
internal object Inventory : ConsoleCommand {
private var target: Pocketed = Terrarum.ingame!!.player
private var target: Pocketed? = Terrarum.ingame!!.player
override fun execute(args: Array<String>) {
if (args.size == 1) {
@@ -30,15 +30,17 @@ internal object Inventory : ConsoleCommand {
}
private fun listInventory() {
if (target.inventory.getTotalUniqueCount() == 0) {
Echo("(inventory empty)")
}
else {
target.inventory.forEach {
if (it.amount == 0) {
EchoError("Unexpected zero-amounted item: ID ${it.item.id}")
if (target != null) {
if (target!!.inventory.getTotalUniqueCount() == 0) {
Echo("(inventory empty)")
}
else {
target!!.inventory.forEach {
if (it.amount == 0) {
EchoError("Unexpected zero-amounted item: ID ${it.item.id}")
}
Echo("ID ${it.item.id}${if (it.amount > 1) " ($it.second)" else ""}")
}
Echo("ID ${it.item.id}${if (it.amount > 1) " ($it.second)" else ""}")
}
}
}
@@ -54,18 +56,22 @@ internal object Inventory : ConsoleCommand {
}
private fun addItem(refId: Int, amount: Int = 1) {
target.inventory.add(ItemCodex[refId], amount)
if (target != null) {
target!!.inventory.add(ItemCodex[refId], amount)
}
}
private fun equipItem(refId: Int) {
val item = ItemCodex[refId]
if (target != null) {
val item = ItemCodex[refId]
// if the item does not exist, add it first
if (!target.inventory.hasItem(item)) {
target.inventory.add(item)
// if the item does not exist, add it first
if (!target!!.inventory.hasItem(item)) {
target!!.inventory.add(item)
}
target!!.inventory.itemEquipped[item.equipPosition] = item
}
target.inventory.itemEquipped[item.equipPosition] = item
}
override fun printUsage() {

View File

@@ -66,7 +66,7 @@ internal object SetAV : ConsoleCommand {
return
}
Terrarum.ingame!!.player.actorValue[args[1]] = newValue
Terrarum.ingame!!.player!!.actorValue[args[1]] = newValue
Echo("${ccW}Set $ccM${args[1]} ${ccW}for ${ccY}player ${ccW}to $ccG$newValue")
println("[SetAV] set ActorValue '${args[1]}' for player to '$newValue'.")
}

View File

@@ -10,7 +10,7 @@ object SetScale : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size == 2 || args.size == 3) {
try {
val targetID = if (args.size == 3) args[1].toInt() else Terrarum.ingame!!.player.referenceID
val targetID = if (args.size == 3) args[1].toInt() else Terrarum.ingame!!.player!!.referenceID
val scale = args[if (args.size == 3) 2 else 1].toDouble()
val target = Terrarum.ingame!!.getActorByID(targetID)

View File

@@ -24,7 +24,7 @@ internal object Teleport : ConsoleCommand {
return
}
Terrarum.ingame!!.player.setPosition(x.toDouble(), y.toDouble())
Terrarum.ingame!!.player!!.setPosition(x.toDouble(), y.toDouble())
}
else if (args.size == 4) {
if (args[2].toLowerCase() != "to") {
@@ -36,7 +36,7 @@ internal object Teleport : ConsoleCommand {
try {
val fromActorID = args[1].toInt()
val targetActorID = if (args[3].toLowerCase() == "player")
Terrarum.ingame!!.player.referenceID
Terrarum.ingame!!.player!!.referenceID
else
args[3].toInt()

View File

@@ -8,9 +8,9 @@ import net.torvald.terrarum.Terrarum
*/
internal object ToggleNoClip : ConsoleCommand {
override fun execute(args: Array<String>) {
val status = Terrarum.ingame!!.player.isNoClip()
val status = Terrarum.ingame!!.player!!.isNoClip()
Terrarum.ingame!!.player.setNoClip(!status)
Terrarum.ingame!!.player!!.setNoClip(!status)
Echo("Set no-clip status to " + (!status).toString())
}