/// <summary> /// Changes object visibility. /// (true) Creates SceneNode and checks Entity (if is null -> initializes). Calls OnDisplayed. /// (false) Destroys SceneNode and stored actual position. /// </summary> public virtual void ChangeVisible(bool visible) { if (visible && !this.isVisible) { // Controls if the entity is inicialized if (entity == null) { entity = Game.SceneManager.CreateEntity(name, mesh); } sceneNode = Game.SceneManager.RootSceneNode.CreateChildSceneNode(name + "Node", position.Value); sceneNode.AttachObject(entity); this.isVisible = true; OnDisplayed(); } else { if (this.isVisible) { position.Value = sceneNode.Position; Game.SceneManager.DestroySceneNode(sceneNode); sceneNode = null; isVisible = false; } } }
/// <summary> /// Changes visibility of the sun (creates or destroys SceneNode). /// </summary> /// <param name="visible">boolean value if the sun is visible or not</param> public void ChangeVisible(bool visible) //now creating { if (visible) { if (entity == null) { entity = Game.SceneManager.CreateEntity(name, mesh); } sceneNode = Game.SceneManager.RootSceneNode.CreateChildSceneNode(name + "Node", Mogre.Vector3.ZERO); sceneNode.Pitch(new Mogre.Degree(-90f)); sceneNode.AttachObject(entity); } else { Game.SceneManager.DestroySceneNode(sceneNode); sceneNode = null; } }