// Path: core/src/me/minidigger/projecttd/entities/Minion.java
// public class Minion {
// 
//     public static PooledEngine ENGINE;
//     public static Sprite SPRITE;
// 
//     public static Entity newMinion(Vector2 spawn) {
//         Entity entity = ENGINE.createEntity();
// 
//         SpriteComponent spriteComponent = ENGINE.createComponent(SpriteComponent.class);
//         spriteComponent.sprite = SPRITE;
//         entity.add(spriteComponent);
// 
//         VelocityComponent velocityComponent = ENGINE.createComponent(VelocityComponent.class);
//         entity.add(velocityComponent);
// 
//         TransformComponent transformComponent = ENGINE.createComponent(TransformComponent.class);
//         transformComponent.position = spawn;
//         entity.add(transformComponent);
// 
//         HealthComponent healthComponent = ENGINE.createComponent(HealthComponent.class);
//         healthComponent.health = 100;
//         entity.add(healthComponent);
// 
//         PathComponent pathComponent = ENGINE.createComponent(PathComponent.class);
//         entity.add(pathComponent);
// 
//         MinionComponent minionComponent = ENGINE.createComponent(MinionComponent.class);
//         entity.add(minionComponent);
// 
//         ENGINE.addEntity(entity);
//         return entity;
//     }
// 
//     public enum MinionType{
//         LAND,
//         WATER,
//         AIR;
//     }
// }


import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Vector2;
import com.google.common.base.Preconditions;
import me.minidigger.projecttd.entities.Minion;
package me.minidigger.projecttd.wave;


/**
 * Created by Martin on 13/05/2017.
 */
public class WaveGroupBuilder {

    private WaveGroup group = new WaveGroup();
    private WaveBuilder builder;

    WaveGroupBuilder(WaveBuilder builder) {
        this.builder = builder;
    }

    public WaveGroupBuilder delay(float delay) {
        group.setDelay(delay);
        return this;
    }

    public WaveGroupBuilder interval(float interval) {
        group.setInterval(interval);
        return this;
    }

    public WaveGroupBuilder count(int count) {
        group.setCount(count);
        return this;
    }

    public WaveGroupBuilder health(float health) {
        group.setHealth(health);
        return this;
    }

    public WaveGroupBuilder speed(float speed) {
        group.setSpeed(speed);
        return this;
    }

// Path: core/src/me/minidigger/projecttd/entities/Minion.java
// public class Minion {
// 
//     public static PooledEngine ENGINE;
//     public static Sprite SPRITE;
// 
//     public static Entity newMinion(Vector2 spawn) {
//         Entity entity = ENGINE.createEntity();
// 
//         SpriteComponent spriteComponent = ENGINE.createComponent(SpriteComponent.class);
//         spriteComponent.sprite = SPRITE;
//         entity.add(spriteComponent);
// 
//         VelocityComponent velocityComponent = ENGINE.createComponent(VelocityComponent.class);
//         entity.add(velocityComponent);
// 
//         TransformComponent transformComponent = ENGINE.createComponent(TransformComponent.class);
//         transformComponent.position = spawn;
//         entity.add(transformComponent);
// 
//         HealthComponent healthComponent = ENGINE.createComponent(HealthComponent.class);
//         healthComponent.health = 100;
//         entity.add(healthComponent);
// 
//         PathComponent pathComponent = ENGINE.createComponent(PathComponent.class);
//         entity.add(pathComponent);
// 
//         MinionComponent minionComponent = ENGINE.createComponent(MinionComponent.class);
//         entity.add(minionComponent);
// 
//         ENGINE.addEntity(entity);
//         return entity;
//     }
// 
//     public enum MinionType{
//         LAND,
//         WATER,
//         AIR;
//     }
// }


// Path: core/src/me/minidigger/projecttd/wave/WaveGroupBuilder.java
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Vector2;
import com.google.common.base.Preconditions;
import me.minidigger.projecttd.entities.Minion;

package me.minidigger.projecttd.wave;


/**
 * Created by Martin on 13/05/2017.
 */
public class WaveGroupBuilder {

    private WaveGroup group = new WaveGroup();
    private WaveBuilder builder;

    WaveGroupBuilder(WaveBuilder builder) {
        this.builder = builder;
    }

    public WaveGroupBuilder delay(float delay) {
        group.setDelay(delay);
        return this;
    }

    public WaveGroupBuilder interval(float interval) {
        group.setInterval(interval);
        return this;
    }

    public WaveGroupBuilder count(int count) {
        group.setCount(count);
        return this;
    }

    public WaveGroupBuilder health(float health) {
        group.setHealth(health);
        return this;
    }

    public WaveGroupBuilder speed(float speed) {
        group.setSpeed(speed);
        return this;
    }

    public WaveGroupBuilder type(Minion.MinionType type) {