package wow.doge.mygame.state import wow.doge.mygame.implicits._ import wow.doge.mygame.components.TestComponent import com.jme3.scene.shape.Box import com.jme3.scene.Geometry import com.jme3.material.Material import com.jme3.math.ColorRGBA import com.jme3.asset.AssetManager import com.jme3.math.Vector3f class TestAppState( // private var _entity: Option[EntityData] = Some(new DefaultEntityData()) ) extends MyBaseState { var geom: Option[Geometry] = None // def entity = _entity // override def initialize(app: Application): Unit = { // super.initialize(app) // } override def init() = { entityData .createEntity() .withComponents(TestComponent()) // entityData.setComponents(x, TestComponent()) val es = entityData.getEntities(classOf[TestComponent]) println(es) val b = new Box(1, 1, 1) geom = Some(new Geometry("Box", b)) val mat = MyMaterial( assetManager = assetManager, path = os.rel / "Common" / "MatDefs" / "Misc" / "Unshaded.j3md" ) geom.foreach(e => { e.setMaterial(mat) rootNode.attachChild(e) }) } override def update(tpf: Float) = { geom.foreach(_.rotate(0, 0.5f * tpf, 0)) geom.foreach(_.move(new Vector3f(0, 1 * tpf, 0))) } // override def cleanup(app: Application): Unit = { // // _entity.map(_.close()) // // _entity = None // } override def onEnable(): Unit = {} override def onDisable(): Unit = {} override def stop(): Unit = {} } object MyMaterial { def apply( color: String = "Color", colorType: com.jme3.math.ColorRGBA = ColorRGBA.Blue, assetManager: AssetManager, path: os.RelPath ): Material = { val mat = new Material(assetManager, path.toString()) mat.setColor(color, colorType) mat } }