mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
getActorByID now searches for inactive actors
Former-commit-id: 1828e2819bc5575d590e51b616415c91645cad56 Former-commit-id: 5b470d524401135358f9926587651ae932d4d5e9
This commit is contained in:
@@ -213,9 +213,9 @@ constructor() : BasicGameState() {
|
||||
///////////////////////////
|
||||
repossessActor()
|
||||
|
||||
// determine whether the inactive actor should be re-active
|
||||
// determine whether the inactive actor should be activated
|
||||
wakeDormantActors()
|
||||
// determine whether the actor should be active or dormant
|
||||
// determine whether the actor should keep being activated or be dormant
|
||||
KillOrKnockdownActors()
|
||||
updateActors(gc, delta)
|
||||
// TODO thread pool(?)
|
||||
@@ -624,11 +624,18 @@ constructor() : BasicGameState() {
|
||||
val DEBUG_ARRAY = false
|
||||
|
||||
fun getActorByID(ID: Int): Actor {
|
||||
if (actorContainer.size == 0) throw IllegalArgumentException("Actor with ID $ID does not exist.")
|
||||
|
||||
val index = actorContainer.binarySearch(ID)
|
||||
if (index < 0)
|
||||
if (actorContainer.size == 0 && actorContainerInactive.size == 0)
|
||||
throw IllegalArgumentException("Actor with ID $ID does not exist.")
|
||||
|
||||
var index = actorContainer.binarySearch(ID)
|
||||
if (index < 0) {
|
||||
index = actorContainerInactive.binarySearch(ID)
|
||||
|
||||
if (index < 0)
|
||||
throw IllegalArgumentException("Actor with ID $ID does not exist.")
|
||||
else
|
||||
return actorContainerInactive[index]
|
||||
}
|
||||
else
|
||||
return actorContainer[index]
|
||||
}
|
||||
|
||||
@@ -26,41 +26,38 @@ internal object SetAV : ConsoleCommand {
|
||||
|
||||
override fun execute(args: Array<String>) {
|
||||
fun parseAVInput(arg: String): Any {
|
||||
var `val`: Any
|
||||
var inputval: Any
|
||||
|
||||
try {
|
||||
`val` = Integer(arg) // try for integer
|
||||
inputval = Integer(arg) // try for integer
|
||||
}
|
||||
catch (e: NumberFormatException) {
|
||||
|
||||
try {
|
||||
`val` = arg.toDouble() // try for double
|
||||
inputval = arg.toDouble() // try for double
|
||||
}
|
||||
catch (ee: NumberFormatException) {
|
||||
if (arg.equals("__true", ignoreCase = true)) {
|
||||
`val` = true
|
||||
inputval = true
|
||||
}
|
||||
else if (arg.equals("__false", ignoreCase = true)) {
|
||||
`val` = false
|
||||
inputval = false
|
||||
}
|
||||
else {
|
||||
`val` = arg // string if not number
|
||||
inputval = arg // string if not number
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return `val`
|
||||
return inputval
|
||||
}
|
||||
|
||||
|
||||
val error = Error()
|
||||
|
||||
// setav <id, or blank for player> <av> <val>
|
||||
if (args.size != 4 && args.size != 3) {
|
||||
printUsage()
|
||||
}
|
||||
else if (args.size == 3) {
|
||||
val `val` = parseAVInput(args[2])
|
||||
val newValue = parseAVInput(args[2])
|
||||
|
||||
// check if av is number
|
||||
if (args[1].isNum()) {
|
||||
@@ -69,14 +66,14 @@ internal object SetAV : ConsoleCommand {
|
||||
return
|
||||
}
|
||||
|
||||
Terrarum.ingame.player.actorValue[args[1]] = `val`
|
||||
Echo("${ccW}Set $ccM${args[1]} ${ccW}for ${ccY}player ${ccW}to $ccG$`val`")
|
||||
println("[SetAV] set ActorValue '${args[1]}' for player to '$`val`'.")
|
||||
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'.")
|
||||
}
|
||||
else if (args.size == 4) {
|
||||
try {
|
||||
val id = args[1].toInt()
|
||||
val `val` = parseAVInput(args[3])
|
||||
val newValue = parseAVInput(args[3])
|
||||
val actor = Terrarum.ingame.getActorByID(id)
|
||||
|
||||
// check if av is number
|
||||
@@ -86,9 +83,9 @@ internal object SetAV : ConsoleCommand {
|
||||
return
|
||||
}
|
||||
|
||||
actor.actorValue[args[2]] = `val`
|
||||
Echo("${ccW}Set $ccM${args[2]} ${ccW}for $ccY$id ${ccW}to $ccG$`val`")
|
||||
println("[SetAV] set ActorValue '${args[2]}' for $actor to '$`val`'.")
|
||||
actor.actorValue[args[2]] = newValue
|
||||
Echo("${ccW}Set $ccM${args[2]} ${ccW}for $ccY$id ${ccW}to $ccG$newValue")
|
||||
println("[SetAV] set ActorValue '${args[2]}' for $actor to '$newValue'.")
|
||||
}
|
||||
catch (e: IllegalArgumentException) {
|
||||
if (args.size == 4) {
|
||||
|
||||
Reference in New Issue
Block a user