parent
							
								
									3987b234bb
								
							
						
					
					
						commit
						ae57315df9
					
				@ -1,33 +0,0 @@ | 
				
			||||
package mightypork.gamecore.core.events; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
import mightypork.gamecore.core.App; | 
				
			||||
import mightypork.gamecore.core.MainLoop; | 
				
			||||
import mightypork.utils.eventbus.BusEvent; | 
				
			||||
import mightypork.utils.eventbus.events.flags.NonConsumableEvent; | 
				
			||||
import mightypork.utils.eventbus.events.flags.SingleReceiverEvent; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Shutdown request, non-interactive. Shutdown needs to execute on GL thread for | 
				
			||||
 * display to deinit properly. | 
				
			||||
 *  | 
				
			||||
 * @author Ondřej Hruška (MightyPork) | 
				
			||||
 */ | 
				
			||||
@SingleReceiverEvent | 
				
			||||
@NonConsumableEvent | 
				
			||||
public class ShudownRequest extends BusEvent<MainLoop> { | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	public void handleBy(final MainLoop handler) | 
				
			||||
	{ | 
				
			||||
		handler.queueTask(new Runnable() { | 
				
			||||
			 | 
				
			||||
			@Override | 
				
			||||
			public void run() | 
				
			||||
			{ | 
				
			||||
				App.shutdown(); | 
				
			||||
			} | 
				
			||||
		}, true); | 
				
			||||
	} | 
				
			||||
} | 
				
			||||
@ -0,0 +1,47 @@ | 
				
			||||
package mightypork.gamecore.core.events; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
import mightypork.utils.eventbus.BusEvent; | 
				
			||||
import mightypork.utils.eventbus.EventBus; | 
				
			||||
import mightypork.utils.logging.Log; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Shutdown event.<br> | 
				
			||||
 * This event is dispatched when the <code>App.shutdown()</code> method is | 
				
			||||
 * called. If no client consumes it, the shutdown will immediately follow.<br> | 
				
			||||
 * This is a way to allow clients to abort the shutdown (ie. ask user to save | 
				
			||||
 * game). After the game is saved, the <code>App.shutdown()</code> method can be | 
				
			||||
 * called again. | 
				
			||||
 *  | 
				
			||||
 * @author Ondřej Hruška (MightyPork) | 
				
			||||
 */ | 
				
			||||
public class ShutdownEvent extends BusEvent<ShutdownListener> { | 
				
			||||
	 | 
				
			||||
	private Runnable shutdownTask; | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	public ShutdownEvent(Runnable doShutdown) { | 
				
			||||
		this.shutdownTask = doShutdown; | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	protected void handleBy(ShutdownListener handler) | 
				
			||||
	{ | 
				
			||||
		handler.onShutdown(this); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	public void onDispatchComplete(EventBus bus) | 
				
			||||
	{ | 
				
			||||
		if (!isConsumed()) { | 
				
			||||
			Log.i("Shutting down..."); | 
				
			||||
			shutdownTask.run(); | 
				
			||||
		} else { | 
				
			||||
			Log.i("Shutdown aborted."); | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
} | 
				
			||||
@ -1,32 +0,0 @@ | 
				
			||||
package mightypork.gamecore.core.events; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
import mightypork.utils.eventbus.BusEvent; | 
				
			||||
import mightypork.utils.eventbus.EventBus; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * User quit request. This event is triggered when user clicks the "close" | 
				
			||||
 * titlebar button, and if no client consumes it, the application will be shut | 
				
			||||
 * down. | 
				
			||||
 *  | 
				
			||||
 * @author Ondřej Hruška (MightyPork) | 
				
			||||
 */ | 
				
			||||
public class UserQuitRequest extends BusEvent<UserQuitRequestListener> { | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	protected void handleBy(UserQuitRequestListener handler) | 
				
			||||
	{ | 
				
			||||
		handler.onQuitRequest(this); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	public void onDispatchComplete(EventBus bus) | 
				
			||||
	{ | 
				
			||||
		if (!isConsumed()) { | 
				
			||||
			bus.send(new ShudownRequest()); | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue