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.

32 lines
919 B

4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
  1. package wow.doge.mygame.game.subsystems.level
  2. import com.jme3.bullet.control.RigidBodyControl
  3. import com.jme3.light.AmbientLight
  4. import com.jme3.light.DirectionalLight
  5. import com.jme3.scene.Spatial
  6. import com.softwaremill.tagging._
  7. import monix.bio.Task
  8. import wow.doge.mygame.game.GameAppTags
  9. // import wow.doge.mygame.implicits._
  10. import wow.doge.mygame.utils.wrappers.jme.AppNode
  11. import wow.doge.mygame.utils.wrappers.jme.PhysicsSpace
  12. class GameLevel(
  13. model: Spatial,
  14. physicsControl: RigidBodyControl,
  15. ambientLight: AmbientLight,
  16. directionalLight: DirectionalLight
  17. ) {
  18. def addToGame(
  19. rootNode: AppNode[Task] @@ GameAppTags.RootNode,
  20. physicsSpace: PhysicsSpace[Task]
  21. ) = {
  22. for {
  23. _ <- rootNode += model
  24. _ <- rootNode += ambientLight
  25. _ <- rootNode += directionalLight
  26. _ <- physicsSpace += model
  27. _ <- physicsSpace += physicsControl
  28. } yield ()
  29. }
  30. }