Testing out JmonkeyEngine to make a game in Scala with Akka Actors within a pure FP layer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

85 lines
2.3 KiB

package wow.doge.mygame.game.subsystems.ai
import scala.collection.immutable.ArraySeq
import com.badlogic.gdx.ai.pfa.Connection
import com.badlogic.gdx.ai.steer.Steerable
import com.badlogic.gdx.ai.steer.behaviors.Arrive
import com.badlogic.gdx.ai.utils.Location
import com.badlogic.gdx.math.Vector3
import wow.doge.mygame.game.subsystems.ai.gdx.MyIndexedGraph
// import com.badlogic.gdx.ai.pfa.indexed.IndexedGraph
// import scala.jdk.javaapi.CollectionConverters._
case class City(x: Float, y: Float, name: String, index: Int)
case class Street(fromNode: City, toNode: City, cost: Float)
extends Connection[City] {
override def getCost(): Float = cost
override def getFromNode(): City = fromNode
override def getToNode(): City = toNode
}
class CityGraph extends MyIndexedGraph[City] {
override def getConnections(
city: City
): IndexedSeq[Connection[City]] =
ArraySeq(Street(City(0f, 0f, "egw", 0), City(0f, 0f, "egw", 0), 1))
// or Vector(Street(City(0f, 0f, "egw", 0), City(0f, 0f, "egw", 0), 1))
override def getIndex(city: City): Int = ???
override def getNodeCount(): Int = ???
}
class MySteerable extends Steerable[Vector3] {
val arrive = new Arrive[Vector3](this)
override def getPosition(): Vector3 = ???
override def getOrientation(): Float = ???
override def setOrientation(x$1: Float): Unit = ???
override def vectorToAngle(x$1: Vector3): Float = ???
override def angleToVector(x$1: Vector3, x$2: Float): Vector3 = ???
override def newLocation(): Location[Vector3] = ???
override def getZeroLinearSpeedThreshold(): Float = ???
override def setZeroLinearSpeedThreshold(x$1: Float): Unit = ???
override def getMaxLinearSpeed(): Float = ???
override def setMaxLinearSpeed(x$1: Float): Unit = ???
override def getMaxLinearAcceleration(): Float = ???
override def setMaxLinearAcceleration(x$1: Float): Unit = ???
override def getMaxAngularSpeed(): Float = ???
override def setMaxAngularSpeed(x$1: Float): Unit = ???
override def getMaxAngularAcceleration(): Float = ???
override def setMaxAngularAcceleration(x$1: Float): Unit = ???
override def getLinearVelocity(): Vector3 = ???
override def getAngularVelocity(): Float = ???
override def getBoundingRadius(): Float = ???
override def isTagged(): Boolean = ???
override def setTagged(x$1: Boolean): Unit = ???
}