package com.arkcraft.module.core.common.handlers; import java.util.Random; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityList.EntityEggInfo; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.fml.common.registry.EntityRegistry; import com.arkcraft.module.core.ARKCraft; import com.arkcraft.module.core.common.config.CoreBalance; /** * @author Vastatio */ @SuppressWarnings({ "rawtypes", "unchecked" }) public class EntityHandler { static int entityID = 50; public EntityHandler() { } public static void registerMonster(Class eClass, String name, BiomeGenBase... biomes) { int eggID = EntityRegistry.findGlobalUniqueEntityId(); Random rand = new Random(name.hashCode()); int mainColor = rand.nextInt() * 16777215; int secondColor = rand.nextInt() * 16777215; EntityRegistry.registerGlobalEntityID(eClass, name, eggID); EntityRegistry.addSpawn(eClass, 25, 2, 4, EnumCreatureType.CREATURE, biomes); EntityRegistry .registerModEntity(eClass, name, ++entityID, ARKCraft.instance(), 64, 3, true); EntityList.entityEggs.put(Integer.valueOf(eggID), new EntityList.EntityEggInfo(++entityID, mainColor, secondColor)); } public static void registerMonster(Class eClass, String name) { int eggID = EntityRegistry.findGlobalUniqueEntityId(); Random rand = new Random(name.hashCode()); int mainColor = rand.nextInt() * 16777215; int secondColor = rand.nextInt() * 16777215; EntityRegistry.registerGlobalEntityID(eClass, name, eggID); EntityRegistry.addSpawn(eClass, 25, 2, 4, EnumCreatureType.CREATURE, BiomeGenBase.beach, BiomeGenBase.desert, BiomeGenBase.forest, BiomeGenBase.birchForest, BiomeGenBase.extremeHills); EntityRegistry.registerModEntity(eClass, name, entityID, ARKCraft.instance(), 64, 1, true); EntityList.entityEggs.put(Integer.valueOf(eggID), new EntityList.EntityEggInfo(entityID, mainColor, secondColor)); } public static void registerEntityEgg(Class eClass, String name, BiomeGenBase... biomes) { int id = getUniqueEntityId(); Random rand = new Random(name.hashCode()); int mainColor = rand.nextInt() * 16777215; int secondColor = rand.nextInt() * 16777215; EntityRegistry.registerGlobalEntityID(eClass, name, id); //TODO Model error //EntityRegistry.registerModEntity(eClass, name, id, ARKCraft.instance(), 64, 4, true); EntityRegistry.addSpawn(eClass, CoreBalance.DINO_PROPERTIES.SPAWN_PROBABILITY, 2, 4, EnumCreatureType.CREATURE, biomes); EntityList.idToClassMapping.put(id, eClass); EntityList.entityEggs.put(Integer.valueOf(id), new EntityList.EntityEggInfo(id, mainColor, secondColor)); } public static void registerEntity(Class<? extends Entity> entity, int primaryColor, int secondaryColor) { int id = getUniqueEntityId(); EntityList.idToClassMapping.put(id, entity); EntityList.entityEggs.put(id, new EntityEggInfo(id, primaryColor, secondaryColor)); } public static int getUniqueEntityId() { while (EntityList.getStringFromID(entityID) != null) entityID++; return entityID; } // public static void registerPassive(Class eClass, String name) { // int entityID = EntityRegistry.findGlobalUniqueEntityId(); // Random rand = new Random(name.hashCode()); // int mainColor = rand.nextInt() * 16777215; // int secondColor = rand.nextInt() * 16777215; // // EntityRegistry.registerGlobalEntityID(eClass, name, entityID); // EntityRegistry.addSpawn(eClass, 15, 2, 4, EnumCreatureType.CREATURE, // BiomeGenBase.plains, BiomeGenBase.savanna, // BiomeGenBase.beach, BiomeGenBase.desert, BiomeGenBase.extremeHills, // BiomeGenBase.coldBeach, BiomeGenBase.jungleEdge, // BiomeGenBase.jungle, BiomeGenBase.plains, BiomeGenBase.swampland); // EntityRegistry.registerModEntity(eClass, name, entityID, // ARKCraft.instance(), 64, 10, true); // EntityList.entityEggs.put(Integer.valueOf(entityID), new // EntityList.EntityEggInfo(entityID, mainColor, secondColor)); // } public static void registerModEntity(Class<? extends Entity> eClass, String name, Object mainClass, int trackRange, int updateFreq, boolean sVU) { EntityRegistry.registerModEntity(eClass, name, ++entityID, mainClass, trackRange, updateFreq, sVU); } }