Files
Terrarum/src/net/torvald/terrarum/console/SpawnPhysTestBall.kt
Song Minjae bc4fd8866a UI testing env and working text buttons
Former-commit-id: b8fd27c7f71f9bc8da259ae132badcbc9ce117ac
2017-03-13 21:40:50 +09:00

57 lines
1.7 KiB
Kotlin

package net.torvald.terrarum.console
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ActorWithSprite
import net.torvald.terrarum.gameactors.PhysTestBall
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.mapdrawer.MapCamera
import org.dyn4j.geometry.Vector2
/**
* Created by minjaesong on 16-03-05.
*/
internal object SpawnPhysTestBall : ConsoleCommand {
@Throws(Exception::class)
override fun execute(args: Array<String>) {
val mouseX = Terrarum.appgc.input.mouseX
val mouseY = Terrarum.appgc.input.mouseY
if (args.size >= 3) {
val elasticity = args[1].toDouble()
val xvel = args[2].toDouble()
val yvel = if (args.size >= 4) args[3].toDouble() else 0.0
val ball = PhysTestBall()
ball.setPosition(
(mouseX + MapCamera.x).toDouble(),
(mouseY + MapCamera.y).toDouble()
)
ball.elasticity = elasticity
ball.applyForce(Vector2(xvel, yvel))
Terrarum.ingame!!.addNewActor(ball)
}
else if (args.size == 2) {
val elasticity = args[1].toDouble()
val ball = PhysTestBall()
ball.setPosition(
(mouseX + MapCamera.x).toDouble(),
(mouseY + MapCamera.y).toDouble()
)
ball.elasticity = elasticity
Terrarum.ingame!!.addNewActor(ball)
}
else {
printUsage()
}
}
override fun printUsage() {
Echo("usage: spawnball elasticity [x velocity] [y velocity]")
}
}