parent
							
								
									8e8e15355e
								
							
						
					
					
						commit
						251475557f
					
				@ -1,10 +1,10 @@ | 
				
			|||||||
package mightypork.rogue; | 
					package mightypork.gamecore; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.input.InputSystem; | 
					import mightypork.gamecore.control.bus.EventBus; | 
				
			||||||
import mightypork.rogue.render.DisplaySystem; | 
					import mightypork.gamecore.input.InputSystem; | 
				
			||||||
import mightypork.rogue.sounds.SoundSystem; | 
					import mightypork.gamecore.render.DisplaySystem; | 
				
			||||||
import mightypork.utils.control.bus.EventBus; | 
					import mightypork.gamecore.resources.sounds.SoundSystem; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -0,0 +1,14 @@ | 
				
			|||||||
 | 
					package mightypork.gamecore; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import mightypork.gamecore.control.bus.EventBus; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface BusAccess { | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						/** | 
				
			||||||
 | 
						 * @return event bus | 
				
			||||||
 | 
						 */ | 
				
			||||||
 | 
						public abstract EventBus bus(); | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,66 @@ | 
				
			|||||||
 | 
					package mightypork.gamecore; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Queue; | 
				
			||||||
 | 
					import java.util.concurrent.ConcurrentLinkedQueue; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import mightypork.gamecore.control.Subsystem; | 
				
			||||||
 | 
					import mightypork.gamecore.control.bus.events.MainLoopTaskRequest; | 
				
			||||||
 | 
					import mightypork.gamecore.control.bus.events.UpdateEvent; | 
				
			||||||
 | 
					import mightypork.gamecore.control.timing.TimerDelta; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public abstract class GameLoop extends Subsystem implements MainLoopTaskRequest.Listener { | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						private final Queue<Runnable> taskQueue = new ConcurrentLinkedQueue<Runnable>(); | 
				
			||||||
 | 
						/** timer */ | 
				
			||||||
 | 
						private TimerDelta timer; | 
				
			||||||
 | 
						private boolean running = true; | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						public GameLoop(AppAccess app) { | 
				
			||||||
 | 
							super(app); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						public void start() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							timer = new TimerDelta(); | 
				
			||||||
 | 
							 | 
				
			||||||
 | 
							while (running) { | 
				
			||||||
 | 
								disp().beginFrame(); | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
								bus().send(new UpdateEvent(timer.getDelta())); | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
								Runnable r; | 
				
			||||||
 | 
								while ((r = taskQueue.poll()) != null) { | 
				
			||||||
 | 
									r.run(); | 
				
			||||||
 | 
								} | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
								tick(); | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
								disp().endFrame(); | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						/** | 
				
			||||||
 | 
						 * Called each frame, in rendering context. | 
				
			||||||
 | 
						 */ | 
				
			||||||
 | 
						protected abstract void tick(); | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						protected final void deinit() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							running = false; | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						public final synchronized void queueTask(Runnable request) | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							taskQueue.add(request); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.util; | 
					package mightypork.gamecore; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.logging.LogInstance; | 
					import mightypork.utils.logging.LogInstance; | 
				
			||||||
@ -0,0 +1,55 @@ | 
				
			|||||||
 | 
					package mightypork.gamecore.control; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
 | 
					import mightypork.gamecore.input.InputSystem; | 
				
			||||||
 | 
					import mightypork.gamecore.render.DisplaySystem; | 
				
			||||||
 | 
					import mightypork.gamecore.resources.sounds.SoundSystem; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * App event bus client, to be used for subsystems, screens and anything that | 
				
			||||||
 | 
					 * needs access to the eventbus | 
				
			||||||
 | 
					 *  | 
				
			||||||
 | 
					 * @author MightyPork | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					public abstract class Subsystem extends ChildClient implements AppAccess { | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						private final AppAccess app; | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						public Subsystem(AppAccess app) { | 
				
			||||||
 | 
							super(app); | 
				
			||||||
 | 
							 | 
				
			||||||
 | 
							this.app = app; | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						public final SoundSystem snd() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							return app.snd(); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						public final InputSystem input() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							return app.input(); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						public final DisplaySystem disp() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							return app.disp(); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						public void shutdown() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							app.shutdown(); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus; | 
					package mightypork.gamecore.control.bus; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collection; | 
					import java.util.Collection; | 
				
			||||||
@ -1,16 +1,16 @@ | 
				
			|||||||
package mightypork.utils.control.bus; | 
					package mightypork.gamecore.control.bus; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.concurrent.DelayQueue; | 
					import java.util.concurrent.DelayQueue; | 
				
			||||||
import java.util.concurrent.Delayed; | 
					import java.util.concurrent.Delayed; | 
				
			||||||
import java.util.concurrent.TimeUnit; | 
					import java.util.concurrent.TimeUnit; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.Event; | 
				
			||||||
import mightypork.utils.control.bus.events.types.DelayedEvent; | 
					import mightypork.gamecore.control.bus.events.types.DelayedEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.ImmediateEvent; | 
					import mightypork.gamecore.control.bus.events.types.ImmediateEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.UnloggedEvent; | 
					import mightypork.gamecore.control.bus.events.types.UnloggedEvent; | 
				
			||||||
import mightypork.utils.control.interf.Destroyable; | 
					import mightypork.gamecore.control.interf.Destroyable; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,13 +1,13 @@ | 
				
			|||||||
package mightypork.utils.control.bus; | 
					package mightypork.gamecore.control.bus; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collection; | 
					import java.util.Collection; | 
				
			||||||
import java.util.HashSet; | 
					import java.util.HashSet; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.clients.DelegatingClient; | 
					import mightypork.gamecore.control.bus.clients.DelegatingClient; | 
				
			||||||
import mightypork.utils.control.bus.clients.ToggleableClient; | 
					import mightypork.gamecore.control.bus.clients.ToggleableClient; | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.Event; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus.clients; | 
					package mightypork.gamecore.control.bus.clients; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collection; | 
					import java.util.Collection; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus.clients; | 
					package mightypork.gamecore.control.bus.clients; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,9 +1,8 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.types.ImmediateEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.ImmediateEvent; | 
					import mightypork.gamecore.control.interf.Destroyable; | 
				
			||||||
import mightypork.utils.control.interf.Destroyable; | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,9 +1,9 @@ | 
				
			|||||||
package mightypork.utils.control.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.types.DelayedEvent; | 
					import mightypork.gamecore.control.bus.events.types.DelayedEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.ImmediateEvent; | 
					import mightypork.gamecore.control.bus.events.types.ImmediateEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,8 +1,6 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.lwjgl.input.Keyboard; | 
					import org.lwjgl.input.Keyboard; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,8 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,8 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.types.UnloggedEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.UnloggedEvent; | 
					 | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,9 +1,8 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.loading.DeferredResource; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.loading.DeferredResource; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,7 +1,6 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					 | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,8 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,10 +1,9 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.gamecore.control.bus.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.types.ImmediateEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.ImmediateEvent; | 
					import mightypork.gamecore.control.bus.events.types.UnloggedEvent; | 
				
			||||||
import mightypork.utils.control.bus.events.types.UnloggedEvent; | 
					import mightypork.gamecore.control.interf.Updateable; | 
				
			||||||
import mightypork.utils.control.interf.Updateable; | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus.events.types; | 
					package mightypork.gamecore.control.bus.events.types; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.annotation.*; | 
					import java.lang.annotation.*; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus.events.types; | 
					package mightypork.gamecore.control.bus.events.types; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.annotation.*; | 
					import java.lang.annotation.*; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus.events.types; | 
					package mightypork.gamecore.control.bus.events.types; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.annotation.*; | 
					import java.lang.annotation.*; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.bus.events.types; | 
					package mightypork.gamecore.control.bus.events.types; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.annotation.*; | 
					import java.lang.annotation.*; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.interf; | 
					package mightypork.gamecore.control.interf; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.interf; | 
					package mightypork.gamecore.control.interf; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.timing; | 
					package mightypork.gamecore.control.timing; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.timing; | 
					package mightypork.gamecore.control.timing; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface Pauseable { | 
					public interface Pauseable { | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.timing; | 
					package mightypork.gamecore.control.timing; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.utils.control.timing; | 
					package mightypork.gamecore.control.timing; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,8 +1,8 @@ | 
				
			|||||||
package mightypork.rogue.gui.renderers; | 
					package mightypork.gamecore.gui.renderers; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.render.Render; | 
					import mightypork.gamecore.render.Render; | 
				
			||||||
import mightypork.rogue.textures.TxQuad; | 
					import mightypork.gamecore.resources.textures.TxQuad; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ImageRenderer extends PluggableRenderer { | 
					public class ImageRenderer extends PluggableRenderer { | 
				
			||||||
@ -1,8 +1,8 @@ | 
				
			|||||||
package mightypork.rogue.gui.renderers; | 
					package mightypork.gamecore.gui.renderers; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.fonts.FontRenderer; | 
					import mightypork.gamecore.resources.fonts.FontRenderer; | 
				
			||||||
import mightypork.rogue.fonts.GLFont; | 
					import mightypork.gamecore.resources.fonts.GLFont; | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,10 +1,10 @@ | 
				
			|||||||
package mightypork.rogue.gui.screens; | 
					package mightypork.gamecore.gui.screens; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collection; | 
					import java.util.Collection; | 
				
			||||||
import java.util.LinkedList; | 
					import java.util.LinkedList; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class LayeredScreen extends Screen { | 
					public abstract class LayeredScreen extends Screen { | 
				
			||||||
@ -1,12 +1,12 @@ | 
				
			|||||||
package mightypork.rogue.gui.screens; | 
					package mightypork.gamecore.gui.screens; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap; | 
					import java.util.HashMap; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
import mightypork.rogue.bus.Subsystem; | 
					import mightypork.gamecore.control.Subsystem; | 
				
			||||||
import mightypork.rogue.bus.events.ScreenRequestEvent; | 
					import mightypork.gamecore.control.bus.events.ScreenRequestEvent; | 
				
			||||||
import mightypork.rogue.render.Renderable; | 
					import mightypork.gamecore.render.Renderable; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,37 @@ | 
				
			|||||||
 | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * Triggered action | 
				
			||||||
 | 
					 *  | 
				
			||||||
 | 
					 * @author MightyPork | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					public abstract class Action implements Runnable { | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						private boolean enabled = true; | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						/** | 
				
			||||||
 | 
						 * Enable the action | 
				
			||||||
 | 
						 *  | 
				
			||||||
 | 
						 * @param enable true to enable | 
				
			||||||
 | 
						 */ | 
				
			||||||
 | 
						public final void enable(boolean enable) | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							this.enabled = enable; | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						@Override | 
				
			||||||
 | 
						public final void run() | 
				
			||||||
 | 
						{ | 
				
			||||||
 | 
							if (enabled) execute(); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						/** | 
				
			||||||
 | 
						 * Do the work. | 
				
			||||||
 | 
						 */ | 
				
			||||||
 | 
						public abstract void execute(); | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,7 @@ | 
				
			|||||||
 | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface ActionTrigger { | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						void setAction(Action action); | 
				
			||||||
 | 
					} | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.input; | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface KeyBinder { | 
					public interface KeyBinder { | 
				
			||||||
@ -1,7 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.input; | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.bus.events.KeyboardEvent; | 
					import mightypork.gamecore.control.bus.events.KeyboardEvent; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,11 +1,11 @@ | 
				
			|||||||
package mightypork.rogue.input; | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashSet; | 
					import java.util.HashSet; | 
				
			||||||
import java.util.Iterator; | 
					import java.util.Iterator; | 
				
			||||||
import java.util.Set; | 
					import java.util.Set; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.bus.events.KeyboardEvent; | 
					import mightypork.gamecore.control.bus.events.KeyboardEvent; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.input; | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Iterator; | 
					import java.util.Iterator; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.input; | 
					package mightypork.gamecore.input; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.lwjgl.input.Keyboard; | 
					import org.lwjgl.input.Keyboard; | 
				
			||||||
@ -1,7 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.loading; | 
					package mightypork.gamecore.loading; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.interf.Destroyable; | 
					import mightypork.gamecore.control.interf.Destroyable; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
import mightypork.utils.logging.LoggedName; | 
					import mightypork.utils.logging.LoggedName; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.loading; | 
					package mightypork.gamecore.loading; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.loading; | 
					package mightypork.gamecore.loading; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.annotation.*; | 
					import java.lang.annotation.*; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.loading; | 
					package mightypork.gamecore.loading; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,11 +1,11 @@ | 
				
			|||||||
package mightypork.rogue.render; | 
					package mightypork.gamecore.render; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static org.lwjgl.opengl.GL11.*; | 
					import static org.lwjgl.opengl.GL11.*; | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException; | 
					import java.io.IOException; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.textures.TxQuad; | 
					import mightypork.gamecore.resources.textures.TxQuad; | 
				
			||||||
import mightypork.utils.files.FileUtils; | 
					import mightypork.utils.files.FileUtils; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.render; | 
					package mightypork.gamecore.render; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.awt.Font; | 
					import java.awt.Font; | 
				
			||||||
@ -1,11 +1,11 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap; | 
					import java.util.HashMap; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
import mightypork.rogue.AppAdapter; | 
					import mightypork.gamecore.AppAdapter; | 
				
			||||||
import mightypork.rogue.bus.events.ResourceLoadRequest; | 
					import mightypork.gamecore.control.bus.events.ResourceLoadRequest; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.newdawn.slick.opengl.Texture; | 
					import org.newdawn.slick.opengl.Texture; | 
				
			||||||
@ -1,7 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.render.Render; | 
					import mightypork.gamecore.render.Render; | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
import mightypork.utils.math.coord.Rect; | 
					import mightypork.utils.math.coord.Rect; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
@ -1,11 +1,11 @@ | 
				
			|||||||
package mightypork.rogue.fonts; | 
					package mightypork.gamecore.resources.fonts; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static org.lwjgl.opengl.GL11.*; | 
					import static org.lwjgl.opengl.GL11.*; | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.awt.Font; | 
					import java.awt.Font; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.render.Render; | 
					import mightypork.gamecore.render.Render; | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,9 +1,9 @@ | 
				
			|||||||
package mightypork.rogue.sounds; | 
					package mightypork.gamecore.resources.sounds; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException; | 
					import java.io.IOException; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.loading.BaseDeferredResource; | 
					import mightypork.gamecore.loading.BaseDeferredResource; | 
				
			||||||
import mightypork.utils.files.FileUtils; | 
					import mightypork.utils.files.FileUtils; | 
				
			||||||
import mightypork.utils.logging.LoggedName; | 
					import mightypork.utils.logging.LoggedName; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.sounds; | 
					package mightypork.gamecore.resources.sounds; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.math.Calc; | 
					import mightypork.utils.math.Calc; | 
				
			||||||
@ -1,7 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.sounds; | 
					package mightypork.gamecore.resources.sounds; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.loading.NullResource; | 
					import mightypork.gamecore.loading.NullResource; | 
				
			||||||
import mightypork.utils.logging.LoggedName; | 
					import mightypork.utils.logging.LoggedName; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,13 +1,13 @@ | 
				
			|||||||
package mightypork.rogue.sounds; | 
					package mightypork.gamecore.resources.sounds; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap; | 
					import java.util.HashMap; | 
				
			||||||
import java.util.Map; | 
					import java.util.Map; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
import mightypork.rogue.AppAdapter; | 
					import mightypork.gamecore.AppAdapter; | 
				
			||||||
import mightypork.rogue.sounds.players.EffectPlayer; | 
					import mightypork.gamecore.resources.sounds.players.EffectPlayer; | 
				
			||||||
import mightypork.rogue.sounds.players.LoopPlayer; | 
					import mightypork.gamecore.resources.sounds.players.LoopPlayer; | 
				
			||||||
import mightypork.utils.logging.Log; | 
					import mightypork.utils.logging.Log; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,16 +1,16 @@ | 
				
			|||||||
package mightypork.rogue.sounds; | 
					package mightypork.gamecore.resources.sounds; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.nio.FloatBuffer; | 
					import java.nio.FloatBuffer; | 
				
			||||||
import java.util.HashSet; | 
					import java.util.HashSet; | 
				
			||||||
import java.util.Set; | 
					import java.util.Set; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
import mightypork.rogue.bus.Subsystem; | 
					import mightypork.gamecore.control.Subsystem; | 
				
			||||||
import mightypork.rogue.bus.events.ResourceLoadRequest; | 
					import mightypork.gamecore.control.bus.events.ResourceLoadRequest; | 
				
			||||||
import mightypork.rogue.sounds.players.EffectPlayer; | 
					import mightypork.gamecore.control.interf.Updateable; | 
				
			||||||
import mightypork.rogue.sounds.players.LoopPlayer; | 
					import mightypork.gamecore.resources.sounds.players.EffectPlayer; | 
				
			||||||
import mightypork.utils.control.interf.Updateable; | 
					import mightypork.gamecore.resources.sounds.players.LoopPlayer; | 
				
			||||||
import mightypork.utils.math.Calc.Buffers; | 
					import mightypork.utils.math.Calc.Buffers; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
import mightypork.utils.objects.Mutable; | 
					import mightypork.utils.objects.Mutable; | 
				
			||||||
@ -1,8 +1,8 @@ | 
				
			|||||||
package mightypork.rogue.sounds.players; | 
					package mightypork.gamecore.resources.sounds.players; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.sounds.DeferredAudio; | 
					import mightypork.gamecore.control.interf.Destroyable; | 
				
			||||||
import mightypork.utils.control.interf.Destroyable; | 
					import mightypork.gamecore.resources.sounds.DeferredAudio; | 
				
			||||||
import mightypork.utils.objects.Mutable; | 
					import mightypork.utils.objects.Mutable; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,7 +1,7 @@ | 
				
			|||||||
package mightypork.rogue.sounds.players; | 
					package mightypork.gamecore.resources.sounds.players; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.sounds.DeferredAudio; | 
					import mightypork.gamecore.resources.sounds.DeferredAudio; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
import mightypork.utils.objects.Mutable; | 
					import mightypork.utils.objects.Mutable; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,9 +1,9 @@ | 
				
			|||||||
package mightypork.rogue.sounds.players; | 
					package mightypork.gamecore.resources.sounds.players; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.sounds.DeferredAudio; | 
					import mightypork.gamecore.control.interf.Updateable; | 
				
			||||||
import mightypork.utils.control.interf.Updateable; | 
					import mightypork.gamecore.control.timing.Pauseable; | 
				
			||||||
import mightypork.utils.control.timing.Pauseable; | 
					import mightypork.gamecore.resources.sounds.DeferredAudio; | 
				
			||||||
import mightypork.utils.math.animation.AnimDouble; | 
					import mightypork.utils.math.animation.AnimDouble; | 
				
			||||||
import mightypork.utils.objects.Mutable; | 
					import mightypork.utils.objects.Mutable; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,9 +1,9 @@ | 
				
			|||||||
package mightypork.rogue.textures; | 
					package mightypork.gamecore.resources.textures; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.loading.BaseDeferredResource; | 
					import mightypork.gamecore.loading.BaseDeferredResource; | 
				
			||||||
import mightypork.rogue.loading.MustLoadInMainThread; | 
					import mightypork.gamecore.loading.MustLoadInMainThread; | 
				
			||||||
import mightypork.rogue.render.Render; | 
					import mightypork.gamecore.render.Render; | 
				
			||||||
import mightypork.utils.logging.LoggedName; | 
					import mightypork.utils.logging.LoggedName; | 
				
			||||||
import mightypork.utils.math.coord.Rect; | 
					import mightypork.utils.math.coord.Rect; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.textures; | 
					package mightypork.gamecore.resources.textures; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.lwjgl.opengl.GL11; | 
					import org.lwjgl.opengl.GL11; | 
				
			||||||
@ -1,13 +1,13 @@ | 
				
			|||||||
package mightypork.rogue.textures; | 
					package mightypork.gamecore.resources.textures; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap; | 
					import java.util.HashMap; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
import mightypork.rogue.AppAdapter; | 
					import mightypork.gamecore.AppAdapter; | 
				
			||||||
import mightypork.rogue.bus.events.ResourceLoadRequest; | 
					import mightypork.gamecore.control.bus.events.ResourceLoadRequest; | 
				
			||||||
import mightypork.rogue.textures.FilteredTexture.Filter; | 
					import mightypork.gamecore.resources.textures.FilteredTexture.Filter; | 
				
			||||||
import mightypork.rogue.textures.FilteredTexture.Wrap; | 
					import mightypork.gamecore.resources.textures.FilteredTexture.Wrap; | 
				
			||||||
import mightypork.utils.math.coord.Rect; | 
					import mightypork.utils.math.coord.Rect; | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.newdawn.slick.opengl.Texture; | 
					import org.newdawn.slick.opengl.Texture; | 
				
			||||||
@ -1,4 +1,4 @@ | 
				
			|||||||
package mightypork.rogue.textures; | 
					package mightypork.gamecore.resources.textures; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.math.coord.Rect; | 
					import mightypork.utils.math.coord.Rect; | 
				
			||||||
@ -1,38 +0,0 @@ | 
				
			|||||||
package mightypork.rogue.bus; | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					 | 
				
			||||||
import mightypork.utils.control.interf.Destroyable; | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** | 
					 | 
				
			||||||
 * App event bus client, to be used for subsystems, screens and anything that | 
					 | 
				
			||||||
 * needs access to the eventbus | 
					 | 
				
			||||||
 *  | 
					 | 
				
			||||||
 * @author MightyPork | 
					 | 
				
			||||||
 */ | 
					 | 
				
			||||||
public abstract class Subsystem extends ChildClient implements Destroyable { | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
	public Subsystem(AppAccess app) { | 
					 | 
				
			||||||
		super(app); | 
					 | 
				
			||||||
		 | 
					 | 
				
			||||||
		bus().subscribe(this); | 
					 | 
				
			||||||
	} | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
	@Override | 
					 | 
				
			||||||
	public final void destroy() | 
					 | 
				
			||||||
	{ | 
					 | 
				
			||||||
		deinit(); | 
					 | 
				
			||||||
		 | 
					 | 
				
			||||||
		bus().unsubscribe(this); | 
					 | 
				
			||||||
	} | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
	/** | 
					 | 
				
			||||||
	 * Deinitialize the subsystem<br> | 
					 | 
				
			||||||
	 * (called during destruction) | 
					 | 
				
			||||||
	 */ | 
					 | 
				
			||||||
	protected abstract void deinit(); | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
} | 
					 | 
				
			||||||
@ -1,8 +1,8 @@ | 
				
			|||||||
package mightypork.rogue.bus.events; | 
					package mightypork.rogue.events; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.utils.control.bus.events.Event; | 
					import mightypork.gamecore.control.bus.events.Event; | 
				
			||||||
import mightypork.utils.control.bus.events.types.SingleReceiverEvent; | 
					import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** | 
					/** | 
				
			||||||
@ -1,37 +1,37 @@ | 
				
			|||||||
package mightypork.rogue.gui.screens.test_bouncyboxes; | 
					package mightypork.rogue.screens.test_bouncyboxes; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static mightypork.utils.math.constraints.ConstraintFactory.*; | 
					import static mightypork.utils.math.constraints.ConstraintFactory.*; | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Random; | 
					import java.util.Random; | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.gui.renderers.PluggableRenderer; | 
					import mightypork.gamecore.control.interf.Updateable; | 
				
			||||||
import mightypork.rogue.render.Render; | 
					import mightypork.gamecore.gui.renderers.PluggableRenderer; | 
				
			||||||
import mightypork.utils.control.interf.Updateable; | 
					import mightypork.gamecore.render.Render; | 
				
			||||||
import mightypork.utils.math.animation.AnimDouble; | 
					import mightypork.utils.math.animation.AnimDouble; | 
				
			||||||
import mightypork.utils.math.animation.Easing; | 
					import mightypork.utils.math.animation.Easing; | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
import mightypork.utils.math.constraints.NumEvaluable; | 
					import mightypork.utils.math.constraints.NumberConstraint; | 
				
			||||||
import mightypork.utils.math.constraints.RectEvaluable; | 
					import mightypork.utils.math.constraints.RectConstraint; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class BouncyBox extends PluggableRenderer implements Updateable { | 
					public class BouncyBox extends PluggableRenderer implements Updateable { | 
				
			||||||
	 | 
						 | 
				
			||||||
	private final Random rand = new Random(); | 
						private final Random rand = new Random(); | 
				
			||||||
	 | 
						 | 
				
			||||||
	private final RectEvaluable box; | 
						private final RectConstraint box; | 
				
			||||||
	 | 
						 | 
				
			||||||
	private final AnimDouble pos = new AnimDouble(0, Easing.BOUNCE_OUT); | 
						private final AnimDouble pos = new AnimDouble(0, Easing.BOUNCE_OUT); | 
				
			||||||
	 | 
						 | 
				
			||||||
	 | 
						 | 
				
			||||||
	public BouncyBox() { | 
						public BouncyBox() { | 
				
			||||||
		// create box
 | 
							// create box
 | 
				
			||||||
		final NumEvaluable side = c_height(this); | 
							final NumberConstraint side = c_height(this); | 
				
			||||||
		RectEvaluable abox = c_box(this, side, side); | 
							RectConstraint abox = c_box(this, side, side); | 
				
			||||||
		 | 
							 | 
				
			||||||
		// move
 | 
							// move
 | 
				
			||||||
		final NumEvaluable move_length = c_sub(c_width(this), side); | 
							final NumberConstraint move_length = c_sub(c_width(this), side); | 
				
			||||||
		final NumEvaluable offset = c_mul(move_length, c_n(pos)); | 
							final NumberConstraint offset = c_mul(move_length, c_n(pos)); | 
				
			||||||
		abox = c_move(abox, offset, c_n(0)); | 
							abox = c_move(abox, offset, c_n(0)); | 
				
			||||||
		 | 
							 | 
				
			||||||
		// add padding
 | 
							// add padding
 | 
				
			||||||
@ -1,11 +1,11 @@ | 
				
			|||||||
package mightypork.rogue.gui.screens.test_bouncyboxes; | 
					package mightypork.rogue.screens.test_bouncyboxes; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
import mightypork.rogue.bus.events.ScreenRequestEvent; | 
					import mightypork.gamecore.control.bus.events.ScreenRequestEvent; | 
				
			||||||
import mightypork.rogue.gui.screens.LayeredScreen; | 
					import mightypork.gamecore.gui.screens.LayeredScreen; | 
				
			||||||
import mightypork.rogue.input.KeyStroke; | 
					import mightypork.gamecore.input.KeyStroke; | 
				
			||||||
import mightypork.rogue.input.Keys; | 
					import mightypork.gamecore.input.Keys; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ScreenTestBouncy extends LayeredScreen { | 
					public class ScreenTestBouncy extends LayeredScreen { | 
				
			||||||
@ -1,14 +1,14 @@ | 
				
			|||||||
package mightypork.rogue.gui.screens.test_cat_sound; | 
					package mightypork.rogue.screens.test_cat_sound; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
 | 
					import mightypork.gamecore.control.bus.events.ScreenRequestEvent; | 
				
			||||||
 | 
					import mightypork.gamecore.gui.screens.LayeredScreen; | 
				
			||||||
 | 
					import mightypork.gamecore.input.KeyStroke; | 
				
			||||||
 | 
					import mightypork.gamecore.input.Keys; | 
				
			||||||
import mightypork.rogue.Res; | 
					import mightypork.rogue.Res; | 
				
			||||||
import mightypork.rogue.bus.events.ActionRequest; | 
					import mightypork.rogue.events.ActionRequest; | 
				
			||||||
import mightypork.rogue.bus.events.ActionRequest.RequestType; | 
					import mightypork.rogue.events.ActionRequest.RequestType; | 
				
			||||||
import mightypork.rogue.bus.events.ScreenRequestEvent; | 
					 | 
				
			||||||
import mightypork.rogue.gui.screens.LayeredScreen; | 
					 | 
				
			||||||
import mightypork.rogue.input.KeyStroke; | 
					 | 
				
			||||||
import mightypork.rogue.input.Keys; | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ScreenTestCat extends LayeredScreen { | 
					public class ScreenTestCat extends LayeredScreen { | 
				
			||||||
@ -1,10 +1,10 @@ | 
				
			|||||||
package mightypork.rogue.gui.screens.test_font; | 
					package mightypork.rogue.screens.test_font; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mightypork.rogue.AppAccess; | 
					import mightypork.gamecore.AppAccess; | 
				
			||||||
 | 
					import mightypork.gamecore.gui.screens.Screen; | 
				
			||||||
 | 
					import mightypork.gamecore.resources.fonts.FontRenderer; | 
				
			||||||
import mightypork.rogue.Res; | 
					import mightypork.rogue.Res; | 
				
			||||||
import mightypork.rogue.fonts.FontRenderer; | 
					 | 
				
			||||||
import mightypork.rogue.gui.screens.Screen; | 
					 | 
				
			||||||
import mightypork.utils.math.color.RGB; | 
					import mightypork.utils.math.color.RGB; | 
				
			||||||
import mightypork.utils.math.coord.Coord; | 
					import mightypork.utils.math.coord.Coord; | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,7 +1,7 @@ | 
				
			|||||||
package mightypork.utils.math.constraints; | 
					package mightypork.utils.math.constraints; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface NumEvaluable { | 
					public interface NumberConstraint { | 
				
			||||||
	 | 
						 | 
				
			||||||
	double getValue(); | 
						double getValue(); | 
				
			||||||
	 | 
						 | 
				
			||||||
@ -0,0 +1,18 @@ | 
				
			|||||||
 | 
					package mightypork.utils.math.constraints; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import mightypork.utils.math.coord.Rect; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * Rect constraint (ie. region) | 
				
			||||||
 | 
					 *  | 
				
			||||||
 | 
					 * @author MightyPork | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					public interface RectConstraint { | 
				
			||||||
 | 
						 | 
				
			||||||
 | 
						/** | 
				
			||||||
 | 
						 * @return rect region | 
				
			||||||
 | 
						 */ | 
				
			||||||
 | 
						Rect getRect(); | 
				
			||||||
 | 
					} | 
				
			||||||
@ -1,10 +0,0 @@ | 
				
			|||||||
package mightypork.utils.math.constraints; | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import mightypork.utils.math.coord.Rect; | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public interface RectEvaluable { | 
					 | 
				
			||||||
	 | 
					 | 
				
			||||||
	Rect getRect(); | 
					 | 
				
			||||||
} | 
					 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue