package com.temporal;

import ashley.core.Entity;
import ashley.core.PooledEngine;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;

public class Engine extends PooledEngine
{
    private Texture playerTex;
    public Engine(int windowWidth, int windowHeight)
    {
        Entity player = new Entity();
        playerTex = new Texture(Gdx.files.internal("player.png"));
        player.add(new Graphics(playerTex));
        player.add(new Position(windowWidth / 2, windowHeight / 2));

        addEntity(player);

        GraphicsSystem graphics = new GraphicsSystem(1, windowWidth, windowHeight, 1);

        addSystem(graphics);
    }

    public void dispose()
    {
        playerTex.dispose();
        getSystem(GraphicsSystem.class).dispose();
    }
}

@@ -654,16 +654,876 @@
 %0A    %7D%0A%0A
+    public void addEnemy(Position pos, Velocity vel, Enemy damage, Health health, CollisionBox box)%0A    %7B%0A        Entity enemy = new Entity();%0A        enemy.add(pos);%0A        enemy.add(vel);%0A        enemy.add(damage);%0A        enemy.add(health);%0A        enemy.add(box);%0A        addEntity(enemy);%0A    %7D%0A%0A    public void addPlayerBullet(Position pos, Velocity vel, PlayerBullet damage, CollisionBox box)%0A    %7B%0A        Entity bullet = new Entity();%0A        bullet.add(pos);%0A        bullet.add(vel);%0A        bullet.add(damage);%0A        bullet.add(box);%0A        addEntity(bullet);%0A    %7D%0A%0A    public void addEnemyBullet(Position pos, Velocity vel, EnemyBullet damage, CollisionBox box)%0A    %7B%0A        Entity bullet = new Entity();%0A        bullet.add(pos);%0A        bullet.add(vel);%0A        bullet.add(damage);%0A        bullet.add(box);%0A        addEntity(bullet);%0A    %7D%0A%0A
     publ

Add entity factory methods