// Path: dominatrix-demo/src/net/onedaybeard/dominatrix/demo/component/Renderable.java
// @Data @EqualsAndHashCode(callSuper=false) @ExcludeFromJson
// public final class Renderable extends Component
// {
// 	private Sprite sprite;
// 	
// 	public Renderable(Sprite sprite)
// 	{
// 		this.sprite = sprite;
// 	}
// 	
// 	@Override
// 	public String toString()
// 	{
// 		return String.format("%s(sprite=%s)",
// 			getClass().getSimpleName(), formatSprite(sprite));
// 	}
// 	
// 	private static String formatSprite(Sprite sprite)
// 	{
// 		if (sprite == null)
// 			return "null";
// 		
// 		String scale = sprite.getScaleX() == sprite.getScaleY()
// 			? String.format("%.2f", sprite.getScaleX())
// 			: String.format("%.2fx%.2f", sprite.getScaleX(), sprite.getScaleY());
// 		
// 		return String.format("(pos=%.2fx%.2f, size=%.2fx%.2f, offset=%.2fx%.2f, scale=%s)",
// 				sprite.getX(), sprite.getY(),
// 				sprite.getWidth(), sprite.getHeight(),
// 				sprite.getOriginX(), sprite.getOriginY(),
// 				scale);
// 	}
// }
// 
// Path: dominatrix-demo/src/net/onedaybeard/dominatrix/demo/component/Velocity.java
// @Data @Accessors(fluent=true) @EqualsAndHashCode(callSuper=false)
// public final class Velocity extends Component
// {
// 	private final Vector2 vector;
// 
// 	public Velocity(float x, float y)
// 	{
// 		vector = new Vector2(x, y);
// 	}
// 
// 	public Velocity(Vector2 position)
// 	{
// 		vector = position.cpy();
// 	}
// 	
// 	public Velocity()
// 	{
// 		this(0, 0);
// 	}
// 
// 	public Vector2 get()
// 	{
// 		return vector;
// 	}
// 	
// 	public float x()
// 	{
// 		return vector.x;
// 	}
// 
// 	public float y()
// 	{
// 		return vector.y;
// 	}
// 
// 	public Vector2 set(float x, float y)
// 	{
// 		return vector.set(x, y);
// 	}
// }


import net.onedaybeard.dominatrix.demo.component.Renderable;
import net.onedaybeard.dominatrix.demo.component.Velocity;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.systems.EntityProcessingSystem;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
package net.onedaybeard.dominatrix.demo.system.spatial;



public final class BoundsKeeperSystem extends EntityProcessingSystem
{
	private ComponentMapper<Renderable> RenderableMapper;
	private ComponentMapper<Velocity> velocityMapper;
	private OrthographicCamera camera;

	@SuppressWarnings("unchecked")
	public BoundsKeeperSystem(OrthographicCamera camera)
	{
		super(Aspect.getAspectForAll(Renderable.class, Velocity.class));
		this.camera = camera;
	}

	@Override
	protected void initialize()
	{
		RenderableMapper = world.getMapper(Renderable.class);
// Path: dominatrix-demo/src/net/onedaybeard/dominatrix/demo/component/Renderable.java
// @Data @EqualsAndHashCode(callSuper=false) @ExcludeFromJson
// public final class Renderable extends Component
// {
// 	private Sprite sprite;
// 	
// 	public Renderable(Sprite sprite)
// 	{
// 		this.sprite = sprite;
// 	}
// 	
// 	@Override
// 	public String toString()
// 	{
// 		return String.format("%s(sprite=%s)",
// 			getClass().getSimpleName(), formatSprite(sprite));
// 	}
// 	
// 	private static String formatSprite(Sprite sprite)
// 	{
// 		if (sprite == null)
// 			return "null";
// 		
// 		String scale = sprite.getScaleX() == sprite.getScaleY()
// 			? String.format("%.2f", sprite.getScaleX())
// 			: String.format("%.2fx%.2f", sprite.getScaleX(), sprite.getScaleY());
// 		
// 		return String.format("(pos=%.2fx%.2f, size=%.2fx%.2f, offset=%.2fx%.2f, scale=%s)",
// 				sprite.getX(), sprite.getY(),
// 				sprite.getWidth(), sprite.getHeight(),
// 				sprite.getOriginX(), sprite.getOriginY(),
// 				scale);
// 	}
// }
// 
// Path: dominatrix-demo/src/net/onedaybeard/dominatrix/demo/component/Velocity.java
// @Data @Accessors(fluent=true) @EqualsAndHashCode(callSuper=false)
// public final class Velocity extends Component
// {
// 	private final Vector2 vector;
// 
// 	public Velocity(float x, float y)
// 	{
// 		vector = new Vector2(x, y);
// 	}
// 
// 	public Velocity(Vector2 position)
// 	{
// 		vector = position.cpy();
// 	}
// 	
// 	public Velocity()
// 	{
// 		this(0, 0);
// 	}
// 
// 	public Vector2 get()
// 	{
// 		return vector;
// 	}
// 	
// 	public float x()
// 	{
// 		return vector.x;
// 	}
// 
// 	public float y()
// 	{
// 		return vector.y;
// 	}
// 
// 	public Vector2 set(float x, float y)
// 	{
// 		return vector.set(x, y);
// 	}
// }


// Path: dominatrix-demo/src/net/onedaybeard/dominatrix/demo/system/spatial/BoundsKeeperSystem.java
import net.onedaybeard.dominatrix.demo.component.Renderable;
import net.onedaybeard.dominatrix.demo.component.Velocity;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.systems.EntityProcessingSystem;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;

package net.onedaybeard.dominatrix.demo.system.spatial;



public final class BoundsKeeperSystem extends EntityProcessingSystem
{
	private ComponentMapper<Renderable> RenderableMapper;
	private ComponentMapper<Velocity> velocityMapper;
	private OrthographicCamera camera;

	@SuppressWarnings("unchecked")
	public BoundsKeeperSystem(OrthographicCamera camera)
	{
		super(Aspect.getAspectForAll(Renderable.class, Velocity.class));
		this.camera = camera;
	}

	@Override
	protected void initialize()
	{
		RenderableMapper = world.getMapper(Renderable.class);
		velocityMapper = world.getMapper(Velocity.class);