/** * Detaches and disposes all Entities that does not have the tag <em>TAG_PRESERVE</em> ({@value * #TAG_PRESERVE}) in the HUD and in this scene. */ public void detachAndDisposeNonPreservedEntities() { EnvironmentVars.MAIN_CONTEXT.runOnUpdateThread( new Runnable() { @Override public void run() { SessionScene.this.detachAndDisposeEntities(true); } }); }
/** Closes this game session and returns to the main menu. */ public void toMainMenu(final String optionalMessage) { EnvironmentVars.MAIN_CONTEXT.runOnUpdateThread( new Runnable() { @Override public void run() { for (final BaseAudioEntity audio : EnvironmentVars.MAIN_CONTEXT.getAudioRegistered()) { audio.pause(); EnvironmentVars.MAIN_CONTEXT.unregisterSound(audio); } ResourceManager.btScrapPartsBig.unload(); SessionScene.this.setIgnoreUpdate(false); SessionScene.this.detachAndDisposeEntities(false); SessionScene.HUD.setOnSceneTouchListener(null); EnvironmentVars.MAIN_CONTEXT .getCamera() .setCenter( EnvironmentVars.MAIN_CONTEXT.width() / 2f, EnvironmentVars.MAIN_CONTEXT.height() / 2f); final MainMenuScene SCENE = new MainMenuScene() { @Override public void init() { super.init(); if (!optionalMessage.contentEquals("")) this.showDialog(optionalMessage); } }; EnvironmentVars.MAIN_CONTEXT.getEngine().setScene(SCENE); if (!SessionScene.this.isDisposed()) SessionScene.this.dispose(); System.gc(); SCENE.init(); } }); }