// Path: core/src/net/mostlyoriginal/game/component/agent/Ancient.java
// public class Ancient extends Component {
//     public Ancient() {
//         super();
//     }
// }
// 
// Path: core/src/net/mostlyoriginal/game/component/resource/Fireball.java
// public class Fireball extends Component {
// 
//     public float smokeCooldown;
//     public float sparkCooldown;
//     public boolean hasSmoke;
//     public boolean hasSparks;
//     public boolean explodes;
// 
//     public Fireball() {
//     }
// }
// 
// Path: core/src/net/mostlyoriginal/game/component/resource/Minion.java
// public class Minion extends Component {
// 
//     public int productivity=1;
//     public String deathSfx = "worker_scream";
// 
//     public Minion() {
//     }
// 
//     public Minion(int productivity) {
//         this.productivity = productivity;
//     }
// }
// 
// Path: core/src/net/mostlyoriginal/game/component/resource/ZPos.java
// public class ZPos extends Component {
//     public float z = MathUtils.random(48);
//     public int layerOffset=0;
//     public float height=0;
// 
//     public ZPos() {
//     }
// 
//     public ZPos(float z) {
//         this.z = z;
//     }
// }


import com.artemis.*;
import com.artemis.managers.GroupManager;
import com.artemis.managers.PlayerManager;
import com.artemis.managers.TagManager;
import com.artemis.managers.UuidEntityManager;
import com.artemis.utils.reflect.ClassReflection;
import com.badlogic.gdx.graphics.Color;
import net.mostlyoriginal.api.component.Schedule;
import net.mostlyoriginal.api.component.basic.Pos;
import net.mostlyoriginal.api.component.basic.Scale;
import net.mostlyoriginal.api.component.graphics.Anim;
import net.mostlyoriginal.api.component.graphics.Invisible;
import net.mostlyoriginal.api.component.graphics.Renderable;
import net.mostlyoriginal.api.component.graphics.Tint;
import net.mostlyoriginal.api.component.physics.Gravity;
import net.mostlyoriginal.api.component.physics.Physics;
import net.mostlyoriginal.api.operation.common.Operation;
import net.mostlyoriginal.game.component.agent.Ancient;
import net.mostlyoriginal.game.component.resource.Fireball;
import net.mostlyoriginal.game.component.resource.Minion;
import net.mostlyoriginal.game.component.resource.ZPos;
import java.util.UUID;
        edit.create(Tint.class).setHex(color);
        return this;
    }

    public DynastyEntityBuilder schedule(Operation operation) {
        edit.create(Schedule.class).operation.add(operation);
        return this;
    }

    public DynastyEntityBuilder minion(int productivity) {
        edit.create(Minion.class).productivity = productivity;
        return this;
    }

    public DynastyEntityBuilder velocity(float vx, float vy, float friction) {
        Physics velocity = edit.create(Physics.class);
        velocity.vx = vx;
        velocity.vy = vy;
        velocity.friction = friction;
        return this;
    }

    public DynastyEntityBuilder gravity(float x, float y) {
        Gravity gravity = edit.create(Gravity.class);
        gravity.x=x;
        gravity.y=y;
        return this;
    }

    public DynastyEntityBuilder fireball(boolean smoke, boolean spark, boolean explodes) {
// Path: core/src/net/mostlyoriginal/game/component/agent/Ancient.java
// public class Ancient extends Component {
//     public Ancient() {
//         super();
//     }
// }
// 
// Path: core/src/net/mostlyoriginal/game/component/resource/Fireball.java
// public class Fireball extends Component {
// 
//     public float smokeCooldown;
//     public float sparkCooldown;
//     public boolean hasSmoke;
//     public boolean hasSparks;
//     public boolean explodes;
// 
//     public Fireball() {
//     }
// }
// 
// Path: core/src/net/mostlyoriginal/game/component/resource/Minion.java
// public class Minion extends Component {
// 
//     public int productivity=1;
//     public String deathSfx = "worker_scream";
// 
//     public Minion() {
//     }
// 
//     public Minion(int productivity) {
//         this.productivity = productivity;
//     }
// }
// 
// Path: core/src/net/mostlyoriginal/game/component/resource/ZPos.java
// public class ZPos extends Component {
//     public float z = MathUtils.random(48);
//     public int layerOffset=0;
//     public float height=0;
// 
//     public ZPos() {
//     }
// 
//     public ZPos(float z) {
//         this.z = z;
//     }
// }


// Path: core/src/net/mostlyoriginal/api/util/DynastyEntityBuilder.java
import com.artemis.*;
import com.artemis.managers.GroupManager;
import com.artemis.managers.PlayerManager;
import com.artemis.managers.TagManager;
import com.artemis.managers.UuidEntityManager;
import com.artemis.utils.reflect.ClassReflection;
import com.badlogic.gdx.graphics.Color;
import net.mostlyoriginal.api.component.Schedule;
import net.mostlyoriginal.api.component.basic.Pos;
import net.mostlyoriginal.api.component.basic.Scale;
import net.mostlyoriginal.api.component.graphics.Anim;
import net.mostlyoriginal.api.component.graphics.Invisible;
import net.mostlyoriginal.api.component.graphics.Renderable;
import net.mostlyoriginal.api.component.graphics.Tint;
import net.mostlyoriginal.api.component.physics.Gravity;
import net.mostlyoriginal.api.component.physics.Physics;
import net.mostlyoriginal.api.operation.common.Operation;
import net.mostlyoriginal.game.component.agent.Ancient;
import net.mostlyoriginal.game.component.resource.Fireball;
import net.mostlyoriginal.game.component.resource.Minion;
import net.mostlyoriginal.game.component.resource.ZPos;
import java.util.UUID;

        edit.create(Tint.class).setHex(color);
        return this;
    }

    public DynastyEntityBuilder schedule(Operation operation) {
        edit.create(Schedule.class).operation.add(operation);
        return this;
    }

    public DynastyEntityBuilder minion(int productivity) {
        edit.create(Minion.class).productivity = productivity;
        return this;
    }

    public DynastyEntityBuilder velocity(float vx, float vy, float friction) {
        Physics velocity = edit.create(Physics.class);
        velocity.vx = vx;
        velocity.vy = vy;
        velocity.friction = friction;
        return this;
    }

    public DynastyEntityBuilder gravity(float x, float y) {
        Gravity gravity = edit.create(Gravity.class);
        gravity.x=x;
        gravity.y=y;
        return this;
    }

    public DynastyEntityBuilder fireball(boolean smoke, boolean spark, boolean explodes) {
        Fireball fireball = edit.create(Fireball.class);