Added some informative annotations

This commit is contained in:
Ondřej Hruška
2014-04-13 11:03:47 +02:00
parent cacaa9dcce
commit 91f54133b3
36 changed files with 143 additions and 173 deletions
@@ -4,8 +4,8 @@ package mightypork.gamecore.audio;
import java.io.IOException;
import mightypork.gamecore.loading.DeferredResource;
import mightypork.utils.annotations.Alias;
import mightypork.utils.files.FileUtils;
import mightypork.utils.logging.LoggedName;
import mightypork.utils.math.vect.Vect;
import org.newdawn.slick.openal.Audio;
@@ -17,7 +17,7 @@ import org.newdawn.slick.openal.SoundStore;
*
* @author MightyPork
*/
@LoggedName(name = "Audio")
@Alias(name = "Audio")
public class DeferredAudio extends DeferredResource {
private enum PlayMode
+2 -2
View File
@@ -2,7 +2,7 @@ package mightypork.gamecore.audio;
import mightypork.gamecore.loading.NullResource;
import mightypork.utils.logging.LoggedName;
import mightypork.utils.annotations.Alias;
/**
@@ -11,7 +11,7 @@ import mightypork.utils.logging.LoggedName;
*
* @author MightyPork
*/
@LoggedName(name = "NullAudio")
@Alias(name = "NullAudio")
public class NullAudio extends DeferredAudio implements NullResource {
/**
+1 -1
View File
@@ -10,13 +10,13 @@ import javax.swing.JOptionPane;
import mightypork.gamecore.audio.SoundSystem;
import mightypork.gamecore.control.bus.EventBus;
import mightypork.gamecore.control.bus.events.*;
import mightypork.gamecore.control.interf.DefaultImpl;
import mightypork.gamecore.control.interf.Destroyable;
import mightypork.gamecore.control.timing.Updateable;
import mightypork.gamecore.gui.screens.ScreenRegistry;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.loading.AsyncResourceLoader;
import mightypork.gamecore.render.DisplaySystem;
import mightypork.utils.annotations.DefaultImpl;
import mightypork.utils.files.InstanceLock;
import mightypork.utils.logging.Log;
import mightypork.utils.logging.LogWriter;
@@ -6,10 +6,10 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import mightypork.gamecore.control.bus.events.MainLoopTaskRequest;
import mightypork.gamecore.control.bus.events.UpdateEvent;
import mightypork.gamecore.control.interf.DefaultImpl;
import mightypork.gamecore.control.timing.TimerDelta;
import mightypork.gamecore.gui.components.Renderable;
import mightypork.gamecore.gui.screens.ScreenRegistry;
import mightypork.utils.annotations.DefaultImpl;
/**
@@ -11,6 +11,7 @@ import mightypork.gamecore.control.bus.events.types.ImmediateEvent;
import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent;
import mightypork.gamecore.control.bus.events.types.UnloggedEvent;
import mightypork.gamecore.control.interf.Destroyable;
import mightypork.utils.annotations.FactoryMethod;
import mightypork.utils.logging.Log;
@@ -85,12 +86,13 @@ final public class EventBus implements Destroyable {
/**
* Add a channel for given event and client type.
* Make & connect a channel for given event and client type.
*
* @param eventClass event type
* @param clientClass client type
* @return the created channel instance
*/
@FactoryMethod
public <F_EVENT extends Event<F_CLIENT>, F_CLIENT> EventChannel<?, ?> addChannel(Class<F_EVENT> eventClass, Class<F_CLIENT> clientClass)
{
assertLive();
@@ -4,6 +4,7 @@ package mightypork.gamecore.control.bus.events;
import mightypork.gamecore.control.bus.events.types.DelayedEvent;
import mightypork.gamecore.control.bus.events.types.ImmediateEvent;
import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent;
import mightypork.gamecore.control.bus.events.types.UnloggedEvent;
/**
@@ -13,7 +14,8 @@ import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent;
* <p>
* Can be annotated as {@link SingleReceiverEvent} to be delivered once only,
* and {@link DelayedEvent} or {@link ImmediateEvent} to specify default sending
* mode.
* mode. When marked as {@link UnloggedEvent}, it will not appear in detailed
* bus logging (useful for very frequent events, such as UpdateEvent).
* </p>
* <p>
* Default sending mode (if not changed by annotations) is <i>queued</i> with
@@ -7,11 +7,10 @@ import mightypork.gamecore.control.timing.Updateable;
/**
* Delta timing update event
* Delta timing update event. Not logged.
*
* @author MightyPork
*/
// sending via queue would hog the bus
@UnloggedEvent
@ImmediateEvent
public class UpdateEvent implements Event<Updateable> {
@@ -1,22 +0,0 @@
package mightypork.gamecore.control.interf;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Marked method can be safely overriden; it's left blank (or with default
* implementation) as a convenience.
*
* @author MightyPork
*/
@Documented
@Retention(RetentionPolicy.SOURCE)
@Target(value = { ElementType.METHOD })
public @interface DefaultImpl {
//
}
@@ -3,6 +3,7 @@ package mightypork.gamecore.gui.components.painters;
import mightypork.gamecore.gui.components.PluggableRenderer;
import mightypork.gamecore.render.Render;
import mightypork.utils.annotations.FactoryMethod;
import mightypork.utils.math.color.RGB;
@@ -54,13 +55,15 @@ public class QuadPainter extends PluggableRenderer {
Render.quadColor(getRect(), colorHMinVMin, colorHMaxVMin, colorHMaxVMax, colorHMinVMax);
}
@FactoryMethod
public static QuadPainter gradH(RGB colorLeft, RGB colorRight)
{
return new QuadPainter(colorLeft, colorRight, colorRight, colorLeft);
}
@FactoryMethod
public static QuadPainter gradV(RGB colorTop, RGB colorBottom)
{
return new QuadPainter(colorTop, colorTop, colorBottom, colorBottom);
@@ -4,12 +4,12 @@ package mightypork.gamecore.gui.screens;
import mightypork.gamecore.control.AppAccess;
import mightypork.gamecore.control.AppSubModule;
import mightypork.gamecore.control.bus.events.ScreenChangeEvent;
import mightypork.gamecore.control.interf.DefaultImpl;
import mightypork.gamecore.gui.components.Renderable;
import mightypork.gamecore.input.KeyBinder;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
import mightypork.gamecore.render.Render;
import mightypork.utils.annotations.DefaultImpl;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.Vect;
@@ -2,11 +2,11 @@ package mightypork.gamecore.gui.screens;
import mightypork.gamecore.control.AppSubModule;
import mightypork.gamecore.control.interf.DefaultImpl;
import mightypork.gamecore.gui.components.Renderable;
import mightypork.gamecore.input.KeyBinder;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
import mightypork.utils.annotations.DefaultImpl;
import mightypork.utils.math.constraints.RectBound;
import mightypork.utils.math.rect.RectView;
import mightypork.utils.math.vect.Vect;
@@ -6,8 +6,8 @@ import java.util.HashMap;
import mightypork.gamecore.control.AppAccess;
import mightypork.gamecore.control.AppModule;
import mightypork.gamecore.control.bus.events.ScreenRequestEvent;
import mightypork.gamecore.control.interf.DefaultImpl;
import mightypork.gamecore.gui.components.Renderable;
import mightypork.utils.annotations.DefaultImpl;
import mightypork.utils.logging.Log;
@@ -8,6 +8,7 @@ import java.util.concurrent.LinkedBlockingQueue;
import mightypork.gamecore.control.bus.BusAccess;
import mightypork.gamecore.control.bus.events.ResourceLoadRequest;
import mightypork.gamecore.control.interf.Destroyable;
import mightypork.utils.annotations.FactoryMethod;
import mightypork.utils.logging.Log;
@@ -22,12 +23,15 @@ public class AsyncResourceLoader extends Thread implements ResourceLoadRequest.L
* Start a new loader thread.
*
* @param app app access
* @return the launched thread
*/
public static void launch(BusAccess app)
@FactoryMethod
public static AsyncResourceLoader launch(BusAccess app)
{
final Thread loader = new AsyncResourceLoader(app);
final AsyncResourceLoader loader = new AsyncResourceLoader(app);
loader.setDaemon(true);
loader.start();
return loader;
}
private final ExecutorService exs = Executors.newCachedThreadPool();
@@ -2,8 +2,8 @@ package mightypork.gamecore.loading;
import mightypork.gamecore.control.interf.Destroyable;
import mightypork.utils.annotations.Alias;
import mightypork.utils.logging.Log;
import mightypork.utils.logging.LoggedName;
/**
@@ -13,7 +13,7 @@ import mightypork.utils.logging.LoggedName;
*
* @author MightyPork
*/
@LoggedName(name = "Resource")
@Alias(name = "Resource")
public abstract class DeferredResource implements Deferred, Destroyable {
private final String resource;
@@ -10,8 +10,8 @@ import mightypork.gamecore.loading.DeferredResource;
import mightypork.gamecore.loading.MustLoadInMainThread;
import mightypork.gamecore.render.fonts.GLFont;
import mightypork.gamecore.render.textures.FilterMode;
import mightypork.utils.annotations.Alias;
import mightypork.utils.files.FileUtils;
import mightypork.utils.logging.LoggedName;
import mightypork.utils.math.color.RGB;
import mightypork.utils.math.vect.Vect;
import mightypork.utils.math.vect.VectView;
@@ -23,7 +23,7 @@ import mightypork.utils.math.vect.VectView;
* @author MightyPork
*/
@MustLoadInMainThread
@LoggedName(name = "Font")
@Alias(name = "Font")
public class DeferredFont extends DeferredResource implements GLFont {
public static enum FontStyle
@@ -6,7 +6,7 @@ import java.awt.FontFormatException;
import java.io.IOException;
import mightypork.gamecore.render.textures.FilterMode;
import mightypork.utils.logging.LoggedName;
import mightypork.utils.annotations.Alias;
/**
@@ -14,7 +14,7 @@ import mightypork.utils.logging.LoggedName;
*
* @author MightyPork
*/
@LoggedName(name = "FontNative")
@Alias(name = "FontNative")
public class DeferredFontNative extends DeferredFont {
/**
@@ -4,7 +4,7 @@ package mightypork.gamecore.render.textures;
import mightypork.gamecore.loading.DeferredResource;
import mightypork.gamecore.loading.MustLoadInMainThread;
import mightypork.gamecore.render.Render;
import mightypork.utils.logging.LoggedName;
import mightypork.utils.annotations.Alias;
import mightypork.utils.math.rect.Rect;
import org.lwjgl.opengl.GL11;
@@ -17,7 +17,7 @@ import org.newdawn.slick.opengl.Texture;
* @author MightyPork
*/
@MustLoadInMainThread
@LoggedName(name = "Texture")
@Alias(name = "Texture")
public class DeferredTexture extends DeferredResource implements FilteredTexture {
private Texture backingTexture;