player is now nullable; wtf is calling Ingame 5 times?

This commit is contained in:
minjaesong
2018-09-17 01:46:50 +09:00
parent ef8285dd97
commit 6a1146f67b
35 changed files with 252 additions and 150 deletions

View File

@@ -16,7 +16,7 @@ internal object AVTracker : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size < 2) {
jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as Ingame).playableActor))
jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as Ingame).actorNowPlaying))
}
else {
try {

View File

@@ -15,8 +15,11 @@ internal object ExportAV : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size == 2) {
try {
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) return
JsonWriter.writeToFile(
(Terrarum.ingame!! as Ingame).playableActor.actorValue,
player.actorValue,
Terrarum.defaultDir + "/Exports/" + args[1] + ".json")
Echo("ExportAV: exported to " + args[1] + ".json")

View File

@@ -15,11 +15,13 @@ internal object GetAV : ConsoleCommand {
override fun execute(args: Array<String>) {
try {
val ingame = Terrarum.ingame!! as Ingame
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) return
if (args.size == 1 && ingame.playableActor != null) {
if (args.size == 1 && player != null) {
// print all actorvalue of player
val av = ingame.playableActor.actorValue
val av = player.actorValue
val keyset = av.keySet
Echo("$ccW== ActorValue list for ${ccY}player $ccW==")
@@ -36,15 +38,15 @@ internal object GetAV : ConsoleCommand {
// check if args[1] is number or not
if (!args[1].isNum()) { // args[1] is ActorValue name
Echo("${ccW}player.$ccM${args[1]} $ccW= " +
ccG +
ingame.playableActor.actorValue[args[1]] +
" $ccO" +
ingame.playableActor.actorValue[args[1]]!!.javaClass.simpleName
ccG +
player.actorValue[args[1]] +
" $ccO" +
player.actorValue[args[1]]!!.javaClass.simpleName
)
println("[GetAV] player.${args[1]} = " +
ingame.playableActor.actorValue[args[1]] +
player.actorValue[args[1]] +
" " +
ingame.playableActor.actorValue[args[1]]!!.javaClass.simpleName
player.actorValue[args[1]]!!.javaClass.simpleName
)
}
else {

View File

@@ -16,7 +16,7 @@ import java.io.IOException
internal object GsonTest : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size == 2) {
val avelem = Gson().toJsonTree((Terrarum.ingame!! as Ingame).playableActor)
val avelem = Gson().toJsonTree((Terrarum.ingame!! as Ingame).actorNowPlaying)
val jsonString = avelem.toString()

View File

@@ -21,7 +21,7 @@ object ImportLayerData : ConsoleCommand {
//val fis = GZIPInputStream(FileInputStream(args[1])) // this gzip is kaput
val fis = FileInputStream(args[1])
(Terrarum.ingame!!.world) = ReadLayerData(fis)
(Terrarum.ingame!! as Ingame).playableActor.setPosition(
(Terrarum.ingame!! as Ingame).actorNowPlaying?.setPosition(
(Terrarum.ingame!!.world).spawnY * FeaturesDrawer.TILE_SIZE.toDouble(),
(Terrarum.ingame!!.world).spawnX * FeaturesDrawer.TILE_SIZE.toDouble()
)

View File

@@ -4,7 +4,6 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
import net.torvald.terrarum.modulebasegame.gameactors.Pocketed
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.modulebasegame.Ingame
@@ -14,7 +13,7 @@ import net.torvald.terrarum.modulebasegame.Ingame
*/
internal object Inventory : ConsoleCommand {
private var target: Pocketed? = (Terrarum.ingame!! as Ingame).playableActor
private var target: Pocketed? = (Terrarum.ingame!! as Ingame).actorNowPlaying
override fun execute(args: Array<String>) {
if (args.size == 1) {

View File

@@ -63,9 +63,16 @@ internal object SetAV : ConsoleCommand {
return
}
(Terrarum.ingame!! as Ingame).playableActor.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'.")
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) {
EchoError("Player does not exist")
println("[SetAV] Player does not exist")
}
else {
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'.")
}
}
else if (args.size == 4) {
try {

View File

@@ -14,7 +14,11 @@ internal 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!! as Ingame).playableActor.referenceID
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) return
val targetID = if (args.size == 3) args[1].toInt() else player.referenceID
val scale = args[if (args.size == 3) 2 else 1].toDouble()
val target = Terrarum.ingame!!.getActorByID(targetID!!)

View File

@@ -27,7 +27,7 @@ internal object Teleport : ConsoleCommand {
return
}
(Terrarum.ingame!! as Ingame).playableActor.setPosition(x.toDouble(), y.toDouble())
(Terrarum.ingame!! as Ingame).actorNowPlaying?.setPosition(x.toDouble(), y.toDouble())
}
else if (args.size == 4) {
if (args[2].toLowerCase() != "to") {
@@ -38,8 +38,15 @@ internal object Teleport : ConsoleCommand {
val targetActor: ActorWBMovable
try {
val fromActorID = args[1].toInt()
val targetActorID = if (args[3].toLowerCase() == "player")
(Terrarum.ingame!! as Ingame).playableActor.referenceID!!
val targetActorID = if (args[3].toLowerCase() == "player") {
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) {
EchoError("Player does not exist")
return
}
else
player.referenceID!!
}
else
args[3].toInt()

View File

@@ -10,9 +10,13 @@ import net.torvald.terrarum.modulebasegame.Ingame
*/
internal object ToggleNoClip : ConsoleCommand {
override fun execute(args: Array<String>) {
val status = (Terrarum.ingame!! as Ingame).playableActor.isNoClip
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) return
(Terrarum.ingame!! as Ingame).playableActor.isNoClip = !status
val status = player.isNoClip
player.isNoClip = !status
Echo("Set no-clip status to " + (!status).toString())
}