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 = ??? }