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