forked from nova/jmonkey-test
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.
109 lines
3.1 KiB
109 lines
3.1 KiB
package wow.doge.mygame.game
|
|
|
|
import com.jme3.app.SimpleApplication
|
|
|
|
import com.jme3.app.state.AppState
|
|
import akka.actor.typed.ActorRef
|
|
import akka.actor.typed.Behavior
|
|
import akka.actor.typed.scaladsl.Behaviors
|
|
|
|
object Greeter {
|
|
final case class Greet(whom: String, replyTo: ActorRef[Greeted])
|
|
final case class Greeted(whom: String, from: ActorRef[Greet])
|
|
|
|
def apply(): Behavior[Greet] =
|
|
Behaviors.receive { (context, message) =>
|
|
// context.log.info("Hello {}!", message.whom)
|
|
//#greeter-send-messages
|
|
message.replyTo ! Greeted(message.whom, context.self)
|
|
//#greeter-send-messages
|
|
Behaviors.same
|
|
}
|
|
}
|
|
|
|
class GameApp(
|
|
// actorSystem: ActorSystem[SpawnProtocol.Command],
|
|
appStates: AppState*
|
|
) extends SimpleApplication(appStates: _*) {
|
|
// implicit val timeout = Timeout(10.seconds)
|
|
// implicit val scheduler = actorSystem.scheduler
|
|
|
|
override def simpleInitApp(): Unit = {
|
|
|
|
// val ship = ed.createEntity()
|
|
// val mbState = stateManager().state[EntityDataState]().map(_.getEntityData())
|
|
// val mbState = Try(
|
|
// stateManager()
|
|
// .state[TestAppState]()
|
|
// .entity
|
|
// ).toOption.flatten.toRight(println("empty"))
|
|
// // .flatMap(_.entity)
|
|
// val x = mbState.flatMap(
|
|
// _.query
|
|
// .filter[TestComponent]("name", new Object())
|
|
// // .filterOr[TestEntity](
|
|
// // Filters
|
|
// // .fieldEquals(classOf[TestEntity], "", null)
|
|
// // )
|
|
// .component[Tag]()
|
|
// .component[TestComponent]()
|
|
// .result
|
|
// .toRight(println("failed"))
|
|
// )
|
|
|
|
// rootNode
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// .child(geom)
|
|
// Future(println("hello"))(jmeEC(this))
|
|
// val wbActor: Future[ActorRef[Greeter.Greet]] = actorSystem.ask(
|
|
// SpawnProtocol.Spawn(
|
|
// behavior = Greeter(),
|
|
// name = "listener",
|
|
// DispatcherSelector.fromConfig("jme-dispatcher"),
|
|
// _
|
|
// )
|
|
// )
|
|
|
|
// wbActor.map(a => a.ask(Greeter.Greet("hello", _)).map(println))
|
|
|
|
}
|
|
override def simpleUpdate(tpf: Float): Unit = {
|
|
// val rot2 = rot.fromAngleAxis(FastMath.PI, new Vector3f(0, 0, 1))
|
|
// val rotation = geom.getLocalRotation()
|
|
// rotation.add(rot2)
|
|
// geom.rotate(rot2)
|
|
|
|
// geom.updateModelBound()
|
|
// geom.updateGeometricState()
|
|
}
|
|
|
|
// override def stop(): Unit = {
|
|
// actorSystem.terminate()
|
|
// super.stop()
|
|
// }
|
|
|
|
}
|
|
|
|
object GameApp {
|
|
// def myExec(app: SimpleApplication, command: Runnable) = {
|
|
// app.enqueue(command)
|
|
// }
|
|
// val javaFxExecutionContext: ExecutionContext =
|
|
// ExecutionContext.fromExecutor(new Executor {
|
|
// def execute(command: Runnable): Unit = {
|
|
// Platform.runLater(command)
|
|
// }
|
|
// })
|
|
// def jmeEC(app: SimpleApplication): ExecutionContext =
|
|
// ExecutionContext.fromExecutor(new Executor {
|
|
// override def execute(command: Runnable): Unit = app.enqueue(command)
|
|
// })
|
|
|
|
// def jmeScheduler(app: SimpleApplication) = Sch
|
|
}
|