package hmggirlfront;

import hmggirlfront.entity.EntityDoll;
import hmggirlfront.entity.EntityDoll_Dummy;
import hmggirlfront.entity.EntityDoll_HL;
import hmggirlfront.entity.EntityKalina;
import hmggirlfront.entity.bullet.EntityBullet_Blade;
import hmggirlfront.entity.drone.EntityDrone;
import hmggirlfront.entity.mav.EntityMAV;
import hmggirlfront.entity.mob.EntityELID_SKELETEN;
import hmggirlfront.entity.mob.EntityELID_ZOMBIE;
import hmggirlfront.entity.mob.EntityIBC01;
import hmggirlfront.entity.mob.EntityIBC01Turret;
import hmggirlfront.entity.mob.EntityIBC02;
import hmggirlfront.entity.mob.EntityIBC03;
import hmggirlfront.entity.mob.EntityIBC04;
import hmggirlfront.entity.mob.EntityIBC05;
import hmggirlfront.entity.mob.EntityIBC06;
import hmggirlfront.entity.mob.EntityIBC07;
import hmggirlfront.entity.mob.EntityIBC08;
import hmggirlfront.entity.mob.EntityIBC09;
import hmggirlfront.entity.mob.EntityIBC10;
import hmggirlfront.entity.mob.EntityIBC10Turret;
import hmggirlfront.entity.mob.EntityIBC10u;
import hmggirlfront.entity.mob.EntityIBC11;
import hmggirlfront.entity.mob.EntityIBC12;
import hmggirlfront.entity.mob.EntityIBC13;
import hmggirlfront.entity.mob.EntityIBC14;
import hmggirlfront.entity.mob.EntityIBCBoss01;
import hmggirlfront.entity.mob.EntityIBCBoss01M;
import hmggirlfront.entity.mob.EntityIBCBoss01_Bit;
import hmggirlfront.entity.mob.EntityIBCBoss02;
import hmggirlfront.entity.mob.EntityIBCBoss03;
import hmggirlfront.entity.mob.EntityIBCBoss04;
import hmggirlfront.entity.mob.EntityIBCBoss05;
import hmggirlfront.entity.mob.EntityIBCBoss06;
import hmggirlfront.entity.mob.EntityIBCBoss07;
import hmggirlfront.entity.mob.EntityIBCBoss08;
import hmggirlfront.entity.mob.EntityIBCGENE;
import hmggirlfront.entity.mob.EntityIBCJUPITER;
import hmggirlfront.entity.mob.EntityIBCML;
import hmggirlfront.entity.mob.EntitySCM_AEGIS;
import hmggirlfront.entity.mob.EntitySCM_CERYNITIS;
import hmggirlfront.entity.mob.EntitySCM_CYCLOPS;
import hmggirlfront.entity.mob.EntitySCM_HYDRA;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_EOT1;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_N;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_O;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_P;
import hmggirlfront.entity.npc.EntityNPC_Doll;
import hmggirlfront.entity.npc.EntityTraining_Drone;
import hmggirlfront.entity.vehicle.EntityVe_APC;
import hmggirlfront.entity.vehicle.EntityVe_BIKE;
import hmggirlfront.entity.vehicle.EntityVe_CB90;
import hmggirlfront.entity.vehicle.EntityVe_HMMWV;
import hmggirlfront.entity.vehicle.EntityVe_Heli;
import hmggirlfront.entity.vehicle.EntityVe_IFV;
import hmggirlfront.entity.vehicle.EntityVe_RHIB;
import hmggirlfront.entity.vehicle.EntityVe_TRUCK;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.biome.Biome;
import net.minecraftforge.fml.common.registry.EntityRegistry;

public class GFEntityRegistrys {
	public static void registrys() {
		mod_GirlFront mod = mod_GirlFront.INSTANCE;
		//EntityRegistry.registerModEntity(HGEntityBullet.class, "BulletHG", 150, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityDoll"), EntityDoll.class, "EntityDoll", 0, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityDoll_Dummy"), EntityDoll_Dummy.class, "EntityDoll_Dummy", 150, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityDoll_HL"), EntityDoll_HL.class, "EntityDoll_HL", 149, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC01"), EntityIBC01.class, "EntityIBC01", 1, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC02"), EntityIBC02.class, "EntityIBC02", 2, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC03"), EntityIBC03.class, "EntityIBC03", 3, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC04"), EntityIBC04.class, "EntityIBC04", 4, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC05"), EntityIBC05.class, "EntityIBC05", 5, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC06"), EntityIBC06.class, "EntityIBC06", 6, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC07"), EntityIBC07.class, "EntityIBC07", 7, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC08"), EntityIBC08.class, "EntityIBC08", 8, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC09"), EntityIBC09.class, "EntityIBC09", 9, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC10"), EntityIBC10.class, "EntityIBC10", 10, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC11"), EntityIBC11.class, "EntityIBC11", 11, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC12"), EntityIBC12.class, "EntityIBC12", 12, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC13"), EntityIBC13.class, "EntityIBC13", 13, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC14"), EntityIBC14.class, "EntityIBC14", 14, mod, 128, 5, true);
				
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC10u"), EntityIBC10u.class, "EntityIBC10u", 31, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC01Turret"), EntityIBC01Turret.class, "EntityIBC01Turret", 32, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBC10Turret"), EntityIBC10Turret.class, "EntityIBC10Turret", 33, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCML"), EntityIBCML.class, "EntityIBCML", 34, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCJUPITER"), EntityIBCJUPITER.class, "EntityIBCJUPITER", 35, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCGENE"), EntityIBCGENE.class, "EntityIBCGENE", 36, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss01"), EntityIBCBoss01.class, "EntityIBCBoss01", 101, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss01_Bit"), EntityIBCBoss01_Bit.class, "EntityIBCBoss01_Bit", 121, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss02"), EntityIBCBoss02.class, "EntityIBCBoss02", 102, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss03"), EntityIBCBoss03.class, "EntityIBCBoss03", 103, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss04"), EntityIBCBoss04.class, "EntityIBCBoss04", 104, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss05"), EntityIBCBoss05.class, "EntityIBCBoss05", 105, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss06"), EntityIBCBoss06.class, "EntityIBCBoss06", 106, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss07"), EntityIBCBoss07.class, "EntityIBCBoss07", 107, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss08"), EntityIBCBoss08.class, "EntityIBCBoss08", 108, mod, 128, 5, true);
				
				
				
				//150~
				EntityRegistry.registerModEntity(new ResourceLocation("EntitySCM_CYCLOPS"), EntitySCM_CYCLOPS.class, "EntitySCM_CYCLOPS", 151, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntitySCM_AEGIS"), EntitySCM_AEGIS.class, "EntitySCM_AEGIS", 152, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntitySCM_CERYNITIS"), EntitySCM_CERYNITIS.class, "EntitySCM_CERYNITIS", 153, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntitySCM_HYDRA"), EntitySCM_HYDRA.class, "EntitySCM_HYDRA", 154, mod, 128, 5, true);
				
				
				//180~
				EntityRegistry.registerModEntity(new ResourceLocation("EntityELID_ZOMBIE"), EntityELID_ZOMBIE.class, "EntityELID_ZOMBIE", 181, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityELID_SKELETEN"), EntityELID_SKELETEN.class, "EntityELID_SKELETEN", 182, mod, 128, 5, true);
				
				//500~
				EntityRegistry.registerModEntity(new ResourceLocation("EntityPDS_NYTO_O"), EntityPDS_NYTO_O.class, "EntityPDS_NYTO_O", 501, mod, 128, 5, true);		
				EntityRegistry.registerModEntity(new ResourceLocation("EntityPDS_NYTO_P"), EntityPDS_NYTO_P.class, "EntityPDS_NYTO_P", 502, mod, 128, 5, true);	
				EntityRegistry.registerModEntity(new ResourceLocation("EntityPDS_NYTO_N"), EntityPDS_NYTO_N.class, "EntityPDS_NYTO_N", 503, mod, 128, 5, true);	
				EntityRegistry.registerModEntity(new ResourceLocation("EntityPDS_NYTO_EOT1"), EntityPDS_NYTO_EOT1.class, "EntityPDS_NYTO_EOT1", 504, mod, 128, 5, true);	
				
				
				
				//EntityRegistry.registerModEntity(new ResourceLocation("EntityHelianthus"), EntityHelianthus.class, "EntityHelianthus", 199, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityTraining_Drone"), EntityTraining_Drone.class, "EntityTraining_Drone", 199, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityKalina"), EntityKalina.class, "EntityKalina", 200, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityNPC_Doll"), EntityNPC_Doll.class, "EntityNPC_Doll", 201, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityIBCBoss01M"), EntityIBCBoss01M.class, "EntityIBCBoss01M", 202, mod, 128, 5, true);
				
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityDrone"), EntityDrone.class, "EntityDrone", 250, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityMAV"), EntityMAV.class, "EntityMAV", 251, mod, 128, 5, true);
			//	EntityRegistry.registerModEntity(new ResourceLocation("EntityMAV_PlayerDummy"), EntityMAV_PlayerDummy.class, "EntityMAV_PlayerDummy", 252, mod, 128, 5, true);
				
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_Heli"), EntityVe_Heli.class, "EntityVe_Heli", 300, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_APC"), EntityVe_APC.class, "EntityVe_APC", 301, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_BIKE"), EntityVe_BIKE.class, "EntityVe_BIKE", 302, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_IFV"), EntityVe_IFV.class, "EntityVe_IFV", 303, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_TRUCK"), EntityVe_TRUCK.class, "EntityVe_TRUCK", 304, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_HMMWV"), EntityVe_HMMWV.class, "EntityVe_HMMWV", 305, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_RHIB"), EntityVe_RHIB.class, "EntityVe_RHIB", 306, mod, 128, 5, true);
				EntityRegistry.registerModEntity(new ResourceLocation("EntityVe_CB90"), EntityVe_CB90.class, "EntityVe_CB90", 307, mod, 128, 5, true);
				
				EntityRegistry.registerModEntity(new ResourceLocation("EntityBullet_Blade"), EntityBullet_Blade.class, "EntityBullet_Blade", 401, mod, 128, 5, true);
				
				Biome[] biomeList = null;
				biomeList = new Biome[Short.MAX_VALUE];
				for (int i=0; i<255; i++) 
				{
					if( i == 8) {
						if(mod.cfg_spawn_hell)biomeList[i] = Biome.REGISTRY.getObjectById(i);
					}else if(i == 9) {
						
					}else {
						biomeList[i] = Biome.REGISTRY.getObjectById(i);
					}
				}
					
				for(Biome biome : biomeList)
				{
					if(biome!=null)
					{
						{
							spawnEntity(mod, biome);
						}
					}
				}
	}
	
	public static void spawnEntity(mod_GirlFront mod, Biome biome) {
		if(mod.cfg_canspawn){
			EntityRegistry.addSpawn(EntityIBC01.class, mod.cfg_spawn_limit_s, 15, 30, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC02.class, mod.cfg_spawn_limit_s, 15, 30, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC03.class, mod.cfg_spawn_limit_s, 15, 30, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC04.class, mod.cfg_spawn_limit_s, 10, 20, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC05.class, mod.cfg_spawn_limit_s, 10, 20, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC06.class, mod.cfg_spawn_limit_s, 10, 20, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC07.class, mod.cfg_spawn_limit_s, 10, 20, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC08.class, mod.cfg_spawn_limit_s, 5, 10, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC09.class, mod.cfg_spawn_limit_s, 2, 4, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC10.class, mod.cfg_spawn_limit_s, 2, 4, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC11.class, mod.cfg_spawn_limit_s, 2, 4, EnumCreatureType.MONSTER, biome);
			EntityRegistry.addSpawn(EntityIBC12.class, mod.cfg_spawn_limit_s, 10, 20, EnumCreatureType.MONSTER, biome);
			
			/*
			Biome[] biomeList = null;
			String biomeNameList[] = new String[] { "Collapse" ,"collapse" ,"hmggirlfront:Collapse" };
			biomeList = new Biome[biomeNameList.length];
			for (int i = 0; i < biomeNameList.length; i++)
				biomeList[i] = Biome.REGISTRY.getObject(new ResourceLocation(biomeNameList[i]));
			{
				for (Biome biome2 : biomeList) {
					if (biome2 != null) {
						EntityRegistry.addSpawn(EntityELID_ZOMBIE.class, mod.cfg_spawn_limit_s, 10, 20,
								EnumCreatureType.MONSTER, biome2);
						EntityRegistry.addSpawn(EntityELID_SKELETEN.class, mod.cfg_spawn_limit_s, 3, 6,
								EnumCreatureType.MONSTER, biome2);
					}
				}
			}/**/
		}
	}
}
