mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 18:44:05 +09:00
setting up the inventory using builder (during init) requires ingame.player to be nullable, lateinit won't work
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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'.")
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user