package projectzombie.init;

import java.util.ArrayList;

import bdf.types.BdfObject;
import projectzombie.entity.Entity;
import projectzombie.entity.EntityBoss;
import projectzombie.entity.EntityBullet;
import projectzombie.entity.EntityContainer;
import projectzombie.entity.EntityDummy;
import projectzombie.entity.EntityExplosion;
import projectzombie.entity.EntityFlare;
import projectzombie.entity.EntityGrapplingHook;
import projectzombie.entity.EntityItem;
import projectzombie.entity.EntityTnt;
import projectzombie.entity.EntityZombie;
import projectzombie.entity.EntityZombieArmored;
import projectzombie.entity.player.EntityPlayer;
import projectzombie.entity.tileentity.TileEntityBlastFurnace;
import projectzombie.entity.tileentity.TileEntityCampfire;
import projectzombie.entity.tileentity.TileEntityClayPot;

public class Entities
{
	public static final ArrayList<Class<? extends Entity>> ENTITIES = new ArrayList<>();
	
	private static void register(Class<? extends Entity> e)
	{
		try {
			e.getConstructor(BdfObject.class);
		} catch (NoSuchMethodException | SecurityException err) {
			err.printStackTrace();
			System.exit(1);
		}
		
		ENTITIES.add(e);
	}
	
	public static void init()
	{
		register(EntityZombie.class);
		register(EntityZombieArmored.class);
		register(EntityTnt.class);
		register(EntityItem.class);
		register(EntityGrapplingHook.class);
		register(EntityFlare.class);
		register(EntityExplosion.class);
		register(EntityDummy.class);
		register(EntityBullet.class);
		register(EntityBoss.class);
		register(EntityPlayer.class);
		register(EntityContainer.class);
		register(TileEntityCampfire.class);
		register(TileEntityBlastFurnace.class);
		register(TileEntityClayPot.class);
	}
}
