Guest User

Untitled

a guest
Jan 22nd, 2013
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 70.87 KB | None | 0 0
  1. package projectzulu.common.mobs;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5.  
  6. import net.minecraft.block.Block;
  7. import net.minecraft.entity.EntityEggInfo;
  8. import net.minecraft.entity.EntityList;
  9. import net.minecraft.entity.EnumCreatureType;
  10. import net.minecraft.item.Item;
  11. import net.minecraft.item.ItemStack;
  12. import net.minecraft.world.biome.BiomeGenBase;
  13. import net.minecraftforge.common.Configuration;
  14. import projectzulu.common.ProjectZulu_Mobs;
  15. import projectzulu.common.mod_ProjectZulu;
  16. import projectzulu.common.api.CustomEntityList;
  17. import projectzulu.common.api.CustomMobData;
  18. import projectzulu.common.api.ItemBlockList;
  19. import projectzulu.common.blocks.EntityCreeperBlossomPrimed;
  20. import projectzulu.common.core.DefaultProps;
  21. import projectzulu.common.core.ItemGenerics;
  22.  
  23. import com.google.common.base.Optional;
  24.  
  25. import cpw.mods.fml.common.registry.EntityRegistry;
  26. import cpw.mods.fml.common.registry.LanguageRegistry;
  27.  
  28. public enum CustomEntityManager {
  29.    
  30.     Armadillo{
  31.         @Override
  32.         public void loadDefaultProperties() {
  33.             mobName = "Armadillo";
  34.             mobClass = EntityArmadillo.class;
  35.             shouldSpawn = true;             shouldExist = true;
  36.             shouldHaveEgg = true;           allowConfigOptions = true;
  37.  
  38.             spawnRate = 10;
  39.             secondarySpawnRate = 100;
  40.             minInChunk = 2;
  41.             maxInChunk = 4;
  42.             enumCreatureType = EnumCreatureType.creature;
  43.             trackingRange = 128;
  44.             updateFrequency = 3;
  45.             sendsVelocityUpdates = true;
  46.  
  47.             eggColor1 = (116 << 16) + (64 << 8) + 33;                   eggColor2 = (60 << 16) + (51 << 8) + 10;
  48.             defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);    defaultBiomesToSpawn.add(BiomeGenBase.desertHills.biomeName);
  49.             defaultBiomesToSpawn.add("Mountainous Desert");             defaultBiomesToSpawn.add("Savanna");
  50.             defaultBiomesToSpawn.add("Mountain Ridge");
  51.         }
  52.  
  53.         @Override
  54.         public void outputDataToList() {
  55.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  56.             if(ItemBlockList.scaleItem.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scaleItem.get()), 10); }
  57.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  58.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  59.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  60.             }
  61.             CustomEntityList.instance.armadillo = Optional.of(customMobData);  
  62.         }
  63.     },
  64.     Sandworm{
  65.         @Override
  66.         public void loadDefaultProperties() {
  67.             mobName = "SandWorm";
  68.             mobClass = EntitySandWorm.class;
  69.             shouldSpawn = true;             shouldExist = true;
  70.             shouldHaveEgg = true;           allowConfigOptions = true;
  71.  
  72.             spawnRate = 1;
  73.             secondarySpawnRate = 100;
  74.             minInChunk = 1;
  75.             maxInChunk = 1;
  76.             enumCreatureType = EnumCreatureType.creature;
  77.             trackingRange = 128;
  78.             updateFrequency = 3;
  79.             sendsVelocityUpdates = true;
  80.  
  81.             eggColor1 = (24 << 16) + (0 << 8) + 8;                      eggColor2 = (49 << 16) + (16 << 8) + 8;
  82.             defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);    defaultBiomesToSpawn.add(BiomeGenBase.desertHills.biomeName);
  83.             defaultBiomesToSpawn.add("Mountainous Desert");
  84.         }
  85.         @Override
  86.         public void outputDataToList() {
  87.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  88.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  89.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  90.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  91.             }
  92.             CustomEntityList.instance.sandworm = Optional.of(customMobData);   
  93.         }
  94.     },
  95.     Lizard{
  96.         @Override
  97.         public void loadDefaultProperties() {
  98.             mobName = "Lizard";
  99.             mobClass = EntityLizard.class;
  100.             trackingRange = 128;
  101.             updateFrequency = 3;
  102.             shouldSpawn = true;             shouldExist = true;
  103.             shouldHaveEgg = true;           allowConfigOptions = true;
  104.  
  105.             spawnRate = 10;
  106.             secondarySpawnRate = 100;
  107.             minInChunk = 1;
  108.             maxInChunk = 1;
  109.             enumCreatureType = EnumCreatureType.creature;
  110.             sendsVelocityUpdates = true;
  111.  
  112.             eggColor1 = (114 << 16) + (102 << 8) + 74;                  eggColor2 = (181 << 16) + (171 << 8) + 146;
  113.             defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);    defaultBiomesToSpawn.add(BiomeGenBase.desertHills.biomeName);
  114.             defaultBiomesToSpawn.add("Mountainous Desert");             defaultBiomesToSpawn.add("Savanna");
  115.             defaultBiomesToSpawn.add("Mountain Ridge");
  116.         }
  117.         @Override
  118.         public void outputDataToList() {
  119.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  120.             if(ItemBlockList.scaleItem.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scaleItem.get()), 10); }
  121.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  122.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  123.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  124.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.PoisonDroplet.meta()), 4);
  125.             }
  126.             CustomEntityList.instance.lizard = Optional.of(customMobData); 
  127.         }
  128.     },
  129.     LizardSpit{
  130.         @Override
  131.         public void loadDefaultProperties() {
  132.             mobName = "Lizard Spit";
  133.             mobClass = EntityLizardSpit.class;
  134.             trackingRange = 128;
  135.             updateFrequency = 3;
  136.             shouldSpawn = false;            shouldExist = true;
  137.             shouldHaveEgg = false;          allowConfigOptions = false;
  138.         }
  139.         @Override
  140.         public void outputDataToList() {}
  141.     },
  142.     Pharaoh{
  143.         @Override
  144.         public void loadDefaultProperties() {
  145.             mobName = "Mummy Pharaoh";
  146.             mobClass = EntityMummyPharaoh.class;
  147.             trackingRange = 128;
  148.             updateFrequency = 3;
  149.             shouldSpawn = false;            shouldExist = true;
  150.             shouldHaveEgg = false;          allowConfigOptions = true;
  151.         }
  152.         @Override
  153.         public void outputDataToList() {
  154.             CustomEntityList.instance.pharaoh = Optional.of(new CustomMobData(mobName, reportSpawningInLog));  
  155.         }
  156.     },
  157.     Mummy{
  158.         @Override
  159.         public void loadDefaultProperties() {
  160.             mobName = "Mummy";
  161.             mobClass = EntityMummy.class;
  162.             trackingRange = 128;
  163.             updateFrequency = 3;
  164.             shouldSpawn = true;             shouldExist = true;
  165.             shouldHaveEgg = true;           allowConfigOptions = true;
  166.            
  167.             spawnRate = 5;
  168.             secondarySpawnRate = 100;
  169.             minInChunk = 1;
  170.             maxInChunk = 2;
  171.             enumCreatureType = EnumCreatureType.monster;
  172.             sendsVelocityUpdates = true;
  173.  
  174.             eggColor1 = (255 << 16) + (255 << 8) + 255;                 eggColor2 = (255 << 16) + (255 << 8) + 255;
  175.             defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);    defaultBiomesToSpawn.add(BiomeGenBase.desertHills.biomeName);
  176.         }
  177.         @Override
  178.         public void outputDataToList() {
  179.             CustomEntityList.instance.mummy = Optional.of(new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog));
  180.         }
  181.     },
  182.     Vulture{
  183.         @Override
  184.         public void loadDefaultProperties() {
  185.             mobName = "Vulture";
  186.             mobClass = EntityVulture.class;
  187.             trackingRange = 128;
  188.             updateFrequency = 3;
  189.             shouldSpawn = true;             shouldExist = true;
  190.             shouldHaveEgg = true;           allowConfigOptions = true;
  191.  
  192.             spawnRate = 2;
  193.             secondarySpawnRate = 5;
  194.             minInChunk = 1;
  195.             maxInChunk = 3;
  196.             enumCreatureType = EnumCreatureType.monster;
  197.             sendsVelocityUpdates = true;
  198.  
  199.             eggColor1 = (78 << 16) + (72 << 8) + 56;                    eggColor2 = (120 << 16) + (110 << 8) + 86;
  200.             defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);    defaultBiomesToSpawn.add(BiomeGenBase.desertHills.biomeName);
  201.             defaultBiomesToSpawn.add("Mountainous Desert");             defaultBiomesToSpawn.add("Savanna");
  202.             defaultBiomesToSpawn.add("Mountain Ridge");                 defaultBiomesToSpawn.add("Wasteland");
  203.  
  204.         }
  205.         @Override
  206.         public void outputDataToList() {
  207.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  208.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  209.             customMobData.addLootToMob(new ItemStack(Item.chickenRaw), 10);
  210.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  211.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  212.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Talon.meta()), 4);
  213.             }
  214.             CustomEntityList.instance.vulture = Optional.of(customMobData);
  215.         }
  216.     },
  217.     TreeEnt{
  218.         @Override
  219.         public void loadDefaultProperties() {
  220.             mobName = "TreeEnt";
  221.             mobClass = EntityTreeEnt.class;
  222.             trackingRange = 128;
  223.             updateFrequency = 3;
  224.             shouldSpawn = true;             shouldExist = true;
  225.             shouldHaveEgg = true;           allowConfigOptions = true;
  226.  
  227.             spawnRate = 1;
  228.             secondarySpawnRate = 7;
  229.             minInChunk = 1;
  230.             maxInChunk = 1;
  231.             enumCreatureType = EnumCreatureType.creature;
  232.             sendsVelocityUpdates = true;
  233.            
  234.             eggColor1 = (17 << 16) + (6 << 8) + 3;                      eggColor2 = (83 << 16) + (56 << 8) + 29;
  235.             defaultBiomesToSpawn.add(BiomeGenBase.taiga.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.taigaHills.biomeName);
  236.             defaultBiomesToSpawn.add("Alpine");                         defaultBiomesToSpawn.add("Mountain Taiga");
  237.             defaultBiomesToSpawn.add("Snow Forest");                    defaultBiomesToSpawn.add("Snowy Rainforest");
  238.  
  239.         }
  240.         @Override
  241.         public void outputDataToList() {
  242.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  243.             customMobData.addLootToMob(new ItemStack(Block.wood.blockID, 1, 3), 15);
  244.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  245.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Bark.meta()), 4);
  246.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.BlackLichen.meta()), 4);
  247.             }
  248.             CustomEntityList.instance.treeEnt = Optional.of(customMobData);
  249.         }
  250.     },
  251.     Mammoth{
  252.         @Override
  253.         public void loadDefaultProperties() {
  254.             mobName = "Mammoth";
  255.             mobClass = EntityMammoth.class;
  256.             trackingRange = 128;
  257.             updateFrequency = 3;
  258.             shouldSpawn = true;             shouldExist = true;
  259.             shouldHaveEgg = true;           allowConfigOptions = true;
  260.  
  261.             spawnRate = 1;
  262.             secondarySpawnRate = 7;
  263.             minInChunk = 1;
  264.             maxInChunk = 3;
  265.             enumCreatureType = EnumCreatureType.creature;
  266.             sendsVelocityUpdates = true;
  267.            
  268.             eggColor1 = (20 << 16) + (12 << 8) + 0;                         eggColor2 = (69 << 16) + (42 << 8) + 0;
  269.             defaultBiomesToSpawn.add(BiomeGenBase.icePlains.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.taigaHills.biomeName);
  270.             defaultBiomesToSpawn.add("Tundra");                             defaultBiomesToSpawn.add("Ice Wasteland");
  271.             defaultBiomesToSpawn.add("Glacier");
  272.  
  273.         }
  274.         @Override
  275.         public void outputDataToList() {
  276.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  277.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 15);
  278.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 10); }
  279.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  280.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  281.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Tusk.meta()), 4);
  282.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  283.             }
  284.             CustomEntityList.instance.mammoth = Optional.of(customMobData);
  285.         }
  286.     },
  287.     Fox{
  288.         @Override
  289.         public void loadDefaultProperties() {
  290.             mobName = "Fox";
  291.             mobClass = EntityFox.class;
  292.             trackingRange = 128;
  293.             updateFrequency = 3;
  294.             shouldSpawn = true;             shouldExist = true;
  295.             shouldHaveEgg = true;           allowConfigOptions = true;
  296.            
  297.             spawnRate = 10;
  298.             secondarySpawnRate = 100;
  299.             minInChunk = 1;
  300.             maxInChunk = 3;
  301.             enumCreatureType = EnumCreatureType.creature;
  302.             sendsVelocityUpdates = true;
  303.            
  304.             eggColor1 = (204 << 16) + (132 << 8) + 22;                  eggColor2 = (224 << 16) + (224 << 8) + 224;
  305.             defaultBiomesToSpawn.add(BiomeGenBase.taiga.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.taigaHills.biomeName);
  306.             defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);    defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);
  307.             defaultBiomesToSpawn.add("Birch Forest");                   defaultBiomesToSpawn.add("Forested Island");
  308.             defaultBiomesToSpawn.add("Forested Hills");                 defaultBiomesToSpawn.add("Green Hills");
  309.             defaultBiomesToSpawn.add("Mountain Taiga");                 defaultBiomesToSpawn.add("Pine Forest");
  310.             defaultBiomesToSpawn.add("Rainforest");                     defaultBiomesToSpawn.add("Redwood Forest");
  311.             defaultBiomesToSpawn.add("Lush Redwoods");                  defaultBiomesToSpawn.add("Snow Forest");
  312.             defaultBiomesToSpawn.add("Snowy Rainforest");               defaultBiomesToSpawn.add("Temperate Rainforest");
  313.             defaultBiomesToSpawn.add("Woodlands");
  314.         }
  315.         @Override
  316.         public void outputDataToList() {
  317.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  318.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 5);
  319.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 10); }
  320.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 15); }
  321.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  322.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  323.             }
  324.             CustomEntityList.instance.fox = Optional.of(customMobData);
  325.         }
  326.     },
  327.     Boar{
  328.         @Override
  329.         public void loadDefaultProperties() {
  330.             mobName = "Boar";
  331.             mobClass = EntityBoar.class;
  332.             trackingRange = 128;
  333.             updateFrequency = 3;
  334.             shouldSpawn = true;             shouldExist = true;
  335.             shouldHaveEgg = true;           allowConfigOptions = true;
  336.            
  337.             spawnRate = 10;
  338.             secondarySpawnRate = 100;
  339.             minInChunk = 1;
  340.             maxInChunk = 3;
  341.             enumCreatureType = EnumCreatureType.creature;
  342.             sendsVelocityUpdates = true;
  343.            
  344.             eggColor1 = (122 << 16) + (77 << 8) + 32;                   eggColor2 = (158 << 16) + (99 << 8) + 42;
  345.             defaultBiomesToSpawn.add(BiomeGenBase.taiga.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.taigaHills.biomeName);
  346.             defaultBiomesToSpawn.add("Alpine");                         defaultBiomesToSpawn.add("Mountain Taiga");
  347.             defaultBiomesToSpawn.add("Snowy Rainforest");
  348.         }
  349.         @Override
  350.         public void outputDataToList() {
  351.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  352.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 2);
  353.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 10); }
  354.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  355.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  356.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 5);
  357.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Tusk.meta()), 10);
  358.  
  359.             }
  360.             CustomEntityList.instance.boar = Optional.of(customMobData);   
  361.         }
  362.     },
  363.     Mimic{
  364.         @Override
  365.         public void loadDefaultProperties() {
  366.             mobName = "Mimic";
  367.             mobClass = EntityMimic.class;
  368.             trackingRange = 128;
  369.             updateFrequency = 3;
  370.             shouldSpawn = false;            shouldExist = true;
  371.             shouldHaveEgg = true;           allowConfigOptions = true;
  372.            
  373.             eggColor1 = (171 << 16) + (121 << 8) + 45;                  eggColor2 = (143 << 16) + (105 << 8) + 29;
  374.         }
  375.         @Override
  376.         public void outputDataToList() {
  377.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  378.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  379.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Ectoplasm.meta()), 5);
  380.             }
  381.             CustomEntityList.instance.mimic = Optional.of(customMobData);  
  382.         }
  383.     },
  384.     CreeperBlossomPrimed{
  385.         @Override
  386.         public void loadDefaultProperties() {
  387.             mobName = "CreeperBlossomPrimed";
  388.             mobClass = EntityCreeperBlossomPrimed.class;
  389.             trackingRange = 128;
  390.             updateFrequency = 3;
  391.             shouldSpawn = false;            shouldExist = true;
  392.             shouldHaveEgg = false;          allowConfigOptions = false;
  393.         }
  394.         @Override
  395.         public void outputDataToList() {
  396.             CustomEntityList.instance.lizard = Optional.of(new CustomMobData(mobName, reportSpawningInLog));   
  397.         }
  398.     },
  399.     Alligator{
  400.         @Override
  401.         public void loadDefaultProperties() {
  402.             mobName = "Alligator";
  403.             mobClass = EntityCrocodile.class;
  404.             trackingRange = 128;
  405.             updateFrequency = 3;
  406.             shouldSpawn = true;             shouldExist = true;
  407.             shouldHaveEgg = true;           allowConfigOptions = true;
  408.            
  409.             spawnRate = 10;
  410.             secondarySpawnRate = 100;
  411.             minInChunk = 1;
  412.             maxInChunk = 2;
  413.             enumCreatureType = EnumCreatureType.creature;
  414.             sendsVelocityUpdates = true;
  415.            
  416.             eggColor1 = (32 << 16) + (39 << 8) + 33;                        eggColor2 = (52 << 16) + (65 << 8) + 54;
  417.             defaultBiomesToSpawn.add(BiomeGenBase.swampland.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.river.biomeName);
  418.             defaultBiomesToSpawn.add("Green Swamplands");                   defaultBiomesToSpawn.add("Marsh");
  419.         }
  420.         @Override
  421.         public void outputDataToList() {
  422.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  423.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  424.             if(ItemBlockList.scaleItem.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scaleItem.get()), 10); }
  425.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  426.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  427.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Gill.meta()), 4);
  428.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  429.             }
  430.             CustomEntityList.instance.crocodile = Optional.of(customMobData);  
  431.         }
  432.     },
  433.     Frog{
  434.         @Override
  435.         public void loadDefaultProperties() {
  436.             mobName = "Frog";
  437.             mobClass = EntityFrog.class;
  438.             trackingRange = 128;
  439.             updateFrequency = 3;
  440.             shouldSpawn = true;             shouldExist = true;
  441.             shouldHaveEgg = true;           allowConfigOptions = true;
  442.            
  443.             spawnRate = 10;
  444.             secondarySpawnRate = 100;
  445.             minInChunk = 1;
  446.             maxInChunk = 3;
  447.             enumCreatureType = EnumCreatureType.creature;
  448.             sendsVelocityUpdates = true;
  449.            
  450.             eggColor1 = (95 << 16) + (186 << 8) + 50;                       eggColor2 = (105 << 16) + (203 << 8) + 67;
  451.             defaultBiomesToSpawn.add(BiomeGenBase.swampland.biomeName);    
  452.             defaultBiomesToSpawn.add("Green Swamplands");                   defaultBiomesToSpawn.add("Marsh");
  453.         }
  454.         @Override
  455.         public void outputDataToList() {
  456.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  457.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  458.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  459.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Gill.meta()), 4);
  460.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.FrogLegs.meta()), 4);
  461.             }
  462.             CustomEntityList.instance.frog = Optional.of(customMobData);   
  463.         }
  464.     },
  465.     Penguin{
  466.         @Override
  467.         public void loadDefaultProperties() {
  468.             mobName = "Penguin";
  469.             mobClass = EntityPenguin.class;
  470.             trackingRange = 128;
  471.             updateFrequency = 3;
  472.             shouldSpawn = true;             shouldExist = true;
  473.             shouldHaveEgg = true;           allowConfigOptions = true;
  474.            
  475.             spawnRate = 10;
  476.             secondarySpawnRate = 100;
  477.             minInChunk = 1;
  478.             maxInChunk = 3;
  479.             enumCreatureType = EnumCreatureType.creature;
  480.             sendsVelocityUpdates = true;
  481.            
  482.             eggColor1 = (22 << 16) + (16 << 8) + 13;                        eggColor2 = (235 << 16) + (235 << 8) + 235;
  483.             defaultBiomesToSpawn.add(BiomeGenBase.icePlains.biomeName);     defaultBiomesToSpawn.add("Ice Wasteland");
  484.             defaultBiomesToSpawn.add("Glacier");
  485.         }
  486.         @Override
  487.         public void outputDataToList() {
  488.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  489.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  490.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  491.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  492.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  493.             }
  494.             CustomEntityList.instance.penguin = Optional.of(customMobData);
  495.         }
  496.     },
  497.     Beaver{
  498.         @Override
  499.         public void loadDefaultProperties() {
  500.             mobName = "Beaver";
  501.             mobClass = EntityBeaver.class;
  502.             trackingRange = 128;
  503.             updateFrequency = 3;
  504.             shouldSpawn = true;             shouldExist = true;
  505.             shouldHaveEgg = true;           allowConfigOptions = true;
  506.            
  507.             spawnRate = 10;
  508.             secondarySpawnRate = 100;
  509.             minInChunk = 1;
  510.             maxInChunk = 2;
  511.             enumCreatureType = EnumCreatureType.creature;
  512.             sendsVelocityUpdates = true;
  513.            
  514.             eggColor1 = (54 << 16) + (36 << 8) + 9;                         eggColor2 = (67 << 16) + (45 << 8) + 11;
  515.             defaultBiomesToSpawn.add(BiomeGenBase.taiga.biomeName);         defaultBiomesToSpawn.add(BiomeGenBase.taigaHills.biomeName);   
  516.             defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);  
  517.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  518.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  519.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  520.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  521.             defaultBiomesToSpawn.add("Woodlands");
  522.         }
  523.         @Override
  524.         public void outputDataToList() {
  525.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  526.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 8); }
  527.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  528.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  529.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.BlackLichen.meta()), 4);
  530.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  531.             }
  532.             CustomEntityList.instance.beaver = Optional.of(customMobData); 
  533.         }
  534.     },
  535.     BlackBear{
  536.         @Override
  537.         public void loadDefaultProperties() {
  538.             mobName = "Black Bear";
  539.             mobClass = EntityBlackBear.class;
  540.             trackingRange = 128;
  541.             updateFrequency = 3;
  542.             shouldSpawn = true;             shouldExist = true;
  543.             shouldHaveEgg = true;           allowConfigOptions = true;
  544.            
  545.             spawnRate = 10;
  546.             secondarySpawnRate = 100;
  547.             minInChunk = 1;
  548.             maxInChunk = 2;
  549.             enumCreatureType = EnumCreatureType.creature;
  550.             sendsVelocityUpdates = true;
  551.            
  552.             eggColor1 = (0 << 16) + (0 << 8) + 0;                           eggColor2 = (23 << 16) + (17 << 8) + 17;
  553.             defaultBiomesToSpawn.add(BiomeGenBase.taiga.biomeName);         defaultBiomesToSpawn.add(BiomeGenBase.taigaHills.biomeName);   
  554.             defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);  
  555.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  556.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  557.             defaultBiomesToSpawn.add("Mountain Taiga");                     defaultBiomesToSpawn.add("Redwood Forest");
  558.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Snow Forest");                       
  559.             defaultBiomesToSpawn.add("Temperate Rainforest");               defaultBiomesToSpawn.add("Woodlands");         
  560.         }
  561.         @Override
  562.         public void outputDataToList() {
  563.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  564.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  565.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 8); }
  566.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  567.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  568.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.BlackLichen.meta()), 4);
  569.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  570.             }
  571.             CustomEntityList.instance.blackBear = Optional.of(customMobData);  
  572.         }
  573.     },
  574.     BrownBear{
  575.         @Override
  576.         public void loadDefaultProperties() {
  577.             mobName = "Brown Bear";
  578.             mobClass = EntityBrownBear.class;
  579.             trackingRange = 128;
  580.             updateFrequency = 3;
  581.             shouldSpawn = true;             shouldExist = true;
  582.             shouldHaveEgg = true;           allowConfigOptions = true;
  583.            
  584.             spawnRate = 10;
  585.             secondarySpawnRate = 100;
  586.             minInChunk = 1;
  587.             maxInChunk = 2;
  588.             enumCreatureType = EnumCreatureType.creature;
  589.             sendsVelocityUpdates = true;
  590.            
  591.             eggColor1 = (51 << 16) + (34 << 8) + 8;                         eggColor2 = (63 << 16) + (42 << 8) + 10;
  592.             defaultBiomesToSpawn.add(BiomeGenBase.icePlains.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.iceMountains.biomeName); 
  593.             defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);  
  594.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  595.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  596.             defaultBiomesToSpawn.add("Mountain Taiga");                     defaultBiomesToSpawn.add("Redwood Forest");
  597.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Snow Forest");                       
  598.             defaultBiomesToSpawn.add("Temperate Rainforest");               defaultBiomesToSpawn.add("Woodlands");         
  599.         }
  600.         @Override
  601.         public void outputDataToList() {
  602.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  603.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  604.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 8); }
  605.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  606.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  607.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.BlackLichen.meta()), 4);
  608.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  609.             }
  610.             CustomEntityList.instance.brownBear = Optional.of(customMobData);  
  611.         }
  612.     },
  613.     PolarBear{
  614.         @Override
  615.         public void loadDefaultProperties() {
  616.             mobName = "Polar Bear";
  617.             mobClass = EntityPolarBear.class;
  618.             trackingRange = 128;
  619.             updateFrequency = 3;
  620.             shouldSpawn = true;             shouldExist = true;
  621.             shouldHaveEgg = true;           allowConfigOptions = true;
  622.            
  623.             spawnRate = 10;
  624.             secondarySpawnRate = 100;
  625.             minInChunk = 1;
  626.             maxInChunk = 2;
  627.             enumCreatureType = EnumCreatureType.creature;
  628.             sendsVelocityUpdates = true;
  629.            
  630.             eggColor1 = (255 << 16) + (255 << 8) + 255;                     eggColor2 = (201 << 16) + (201 << 8) + 201;
  631.             defaultBiomesToSpawn.add(BiomeGenBase.icePlains.biomeName);        
  632.             defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);  
  633.             defaultBiomesToSpawn.add("Ice Wasteland");                      defaultBiomesToSpawn.add("Glacier");       
  634.         }
  635.         @Override
  636.         public void outputDataToList() {
  637.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  638.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  639.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 8); }
  640.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  641.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  642.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.BlackLichen.meta()), 4);
  643.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  644.             }
  645.             CustomEntityList.instance.polarBear = Optional.of(customMobData);  
  646.         }
  647.     },
  648.     Ostrich{
  649.         @Override
  650.         public void loadDefaultProperties() {
  651.             mobName = "Ostrich";
  652.             mobClass = EntityOstrich.class;
  653.             trackingRange = 128;
  654.             updateFrequency = 3;
  655.             shouldSpawn = true;             shouldExist = true;
  656.             shouldHaveEgg = true;           allowConfigOptions = true;
  657.            
  658.             spawnRate = 10;
  659.             secondarySpawnRate = 100;
  660.             minInChunk = 1;
  661.             maxInChunk = 2;
  662.             enumCreatureType = EnumCreatureType.creature;
  663.             sendsVelocityUpdates = true;
  664.            
  665.             eggColor1 = (25 << 16) + (18 << 8) + 14;                        eggColor2 = (232 << 16) + (107 << 8) + 101;
  666.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);
  667.             defaultBiomesToSpawn.add("Meadow");                             defaultBiomesToSpawn.add("Savanna");       
  668.         }
  669.         @Override
  670.         public void outputDataToList() {
  671.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  672.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  673.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  674.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  675.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  676.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Talon.meta()), 4);
  677.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  678.             }
  679.             CustomEntityList.instance.ostrich = Optional.of(customMobData);
  680.         }
  681.     },
  682.     Rhino{
  683.         @Override
  684.         public void loadDefaultProperties() {
  685.             mobName = "Rhino";
  686.             mobClass = EntityRhino.class;
  687.             trackingRange = 128;
  688.             updateFrequency = 3;
  689.             shouldSpawn = true;             shouldExist = true;
  690.             shouldHaveEgg = true;           allowConfigOptions = true;
  691.            
  692.             spawnRate = 10;
  693.             secondarySpawnRate = 100;
  694.             minInChunk = 1;
  695.             maxInChunk = 2;
  696.             enumCreatureType = EnumCreatureType.creature;
  697.             sendsVelocityUpdates = true;
  698.            
  699.             eggColor1 = (95 << 16) + (93 << 8) + 94;                        eggColor2 = (173 << 16) + (170 << 8) + 172;
  700.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.desert.biomeName);
  701.             defaultBiomesToSpawn.add("Savanna");       
  702.         }
  703.         @Override
  704.         public void outputDataToList() {
  705.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  706.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  707.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  708.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  709.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Tusk.meta()), 8);
  710.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  711.             }
  712.             CustomEntityList.instance.rhino = Optional.of(customMobData);  
  713.         }
  714.     },
  715.     Rabbit{
  716.         @Override
  717.         public void loadDefaultProperties() {
  718.             mobName = "Rabbit";
  719.             mobClass = EntityRabbit.class;
  720.             trackingRange = 128;
  721.             updateFrequency = 3;
  722.             shouldSpawn = true;             shouldExist = true;
  723.             shouldHaveEgg = true;           allowConfigOptions = true;
  724.            
  725.             spawnRate = 15;
  726.             secondarySpawnRate = 100;
  727.             minInChunk = 1;
  728.             maxInChunk = 2;
  729.             enumCreatureType = EnumCreatureType.creature;
  730.             sendsVelocityUpdates = true;
  731.            
  732.             eggColor1 = (239 << 16) + (179 << 8) + 83;                      eggColor2 = (237 << 16) + (208 << 8) + 166;
  733.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);
  734.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);
  735.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");  
  736.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");       
  737.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");    
  738.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");      
  739.             defaultBiomesToSpawn.add("Woodlands"); 
  740.         }
  741.         @Override
  742.         public void outputDataToList() {
  743.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  744.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  745.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  746.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.RabbitsFoot.meta()), 8);
  747.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  748.             }
  749.             CustomEntityList.instance.rabbit = Optional.of(customMobData); 
  750.         }
  751.     },
  752.     RedFinch{
  753.         @Override
  754.         public void loadDefaultProperties() {
  755.             mobName = "Red Finch";
  756.             mobClass = EntityRedFinch.class;
  757.             trackingRange = 128;
  758.             updateFrequency = 3;
  759.             shouldSpawn = true;             shouldExist = true;
  760.             shouldHaveEgg = true;           allowConfigOptions = true;
  761.            
  762.             spawnRate = 10;
  763.             secondarySpawnRate = 5;
  764.             minInChunk = 1;
  765.             maxInChunk = 1;
  766.             enumCreatureType = EnumCreatureType.monster;
  767.             sendsVelocityUpdates = true;
  768.            
  769.             eggColor1 = (255 << 16) + (29 << 8) + 0;                        eggColor2 = (255 << 16) + (203 << 8) + 186;
  770.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);
  771.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);
  772.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");  
  773.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");       
  774.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");    
  775.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");      
  776.             defaultBiomesToSpawn.add("Woodlands"); 
  777.         }
  778.         @Override
  779.         public void outputDataToList() {
  780.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  781.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  782.             CustomEntityList.instance.redFinch = Optional.of(customMobData);   
  783.         }
  784.     },
  785.     GreenFinch{
  786.         @Override
  787.         public void loadDefaultProperties() {
  788.             mobName = "Green Finch";
  789.             mobClass = EntityGreenFinch.class;
  790.             trackingRange = 128;
  791.             updateFrequency = 3;
  792.             shouldSpawn = true;             shouldExist = true;
  793.             shouldHaveEgg = true;           allowConfigOptions = true;
  794.            
  795.             spawnRate = 10;
  796.             secondarySpawnRate = 5;
  797.             minInChunk = 1;
  798.             maxInChunk = 1;
  799.             enumCreatureType = EnumCreatureType.monster;
  800.             sendsVelocityUpdates = true;
  801.            
  802.             eggColor1 =  (30 << 16) + (130 << 8) + 0;                       eggColor2 = (164 << 16) + (234 << 8) + 143;
  803.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);
  804.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);
  805.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");  
  806.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");       
  807.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");    
  808.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");      
  809.             defaultBiomesToSpawn.add("Woodlands"); 
  810.         }
  811.         @Override
  812.         public void outputDataToList() {
  813.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  814.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  815.             CustomEntityList.instance.greenFinch = Optional.of(customMobData); 
  816.         }
  817.     },
  818.     BlueFinch{
  819.         @Override
  820.         public void loadDefaultProperties() {
  821.             mobName = "Blue Finch";
  822.             mobClass = EntityBlueFinch.class;
  823.             trackingRange = 128;
  824.             updateFrequency = 3;
  825.             shouldSpawn = true;             shouldExist = true;
  826.             shouldHaveEgg = true;           allowConfigOptions = true;
  827.            
  828.             spawnRate = 10;
  829.             secondarySpawnRate = 5;
  830.             minInChunk = 1;
  831.             maxInChunk = 1;
  832.             enumCreatureType = EnumCreatureType.monster;
  833.             sendsVelocityUpdates = true;
  834.            
  835.             eggColor1 =  (38 << 16) + (103 << 8) + 255;                     eggColor2 = (224 << 16) + (233 << 8) + 255;
  836.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);
  837.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);
  838.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");  
  839.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");       
  840.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");    
  841.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");      
  842.             defaultBiomesToSpawn.add("Woodlands"); 
  843.         }
  844.         @Override
  845.         public void outputDataToList() {
  846.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  847.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  848.             CustomEntityList.instance.blueFinch = Optional.of(customMobData);  
  849.         }
  850.     },
  851.     Gorilla{
  852.         @Override
  853.         public void loadDefaultProperties() {
  854.             mobName = "Gorilla";
  855.             mobClass = EntityGorilla.class;
  856.             trackingRange = 128;
  857.             updateFrequency = 3;
  858.             shouldSpawn = true;             shouldExist = true;
  859.             shouldHaveEgg = true;           allowConfigOptions = true;
  860.            
  861.             spawnRate = 10;
  862.             secondarySpawnRate = 100;
  863.             minInChunk = 1;
  864.             maxInChunk = 1;
  865.             enumCreatureType = EnumCreatureType.creature;
  866.             sendsVelocityUpdates = true;
  867.            
  868.             eggColor1 =  (25 << 16) + (25 << 8) + 25;                       eggColor2 = (93 << 16) + (93 << 8) + 93;
  869.             defaultBiomesToSpawn.add(BiomeGenBase.jungle.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.jungleHills.biomeName);
  870.             defaultBiomesToSpawn.add("Mini Jungle");                        defaultBiomesToSpawn.add("Extreme Jungle");
  871.         }
  872.         @Override
  873.         public void outputDataToList() {
  874.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  875.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  876.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  877.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 8); }
  878.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  879.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  880.             }
  881.             CustomEntityList.instance.gorilla = Optional.of(customMobData);
  882.         }
  883.     },
  884.     Giraffe{
  885.         @Override
  886.         public void loadDefaultProperties() {
  887.             mobName = "Giraffe";
  888.             mobClass = EntityGiraffe.class;
  889.             trackingRange = 128;
  890.             updateFrequency = 3;
  891.             shouldSpawn = true;             shouldExist = true;
  892.             shouldHaveEgg = true;           allowConfigOptions = true;
  893.            
  894.             spawnRate = 10;
  895.             secondarySpawnRate = 100;
  896.             minInChunk = 1;
  897.             maxInChunk = 2;
  898.             enumCreatureType = EnumCreatureType.creature;
  899.             sendsVelocityUpdates = true;
  900.            
  901.             eggColor1 =  (239 << 16) + (228 << 8) + 109;                    eggColor2 = (91 << 16) + (87 << 8) + 41;
  902.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);       
  903.             defaultBiomesToSpawn.add("Savanna");
  904.         }
  905.         @Override
  906.         public void outputDataToList() {
  907.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  908.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  909.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  910.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  911.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.BlackLichen.meta()), 4);
  912.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  913.             }
  914.             CustomEntityList.instance.giraffe = Optional.of(customMobData);
  915.         }
  916.     },
  917.     Elephant{
  918.         @Override
  919.         public void loadDefaultProperties() {
  920.             mobName = "Elephant";
  921.             mobClass = EntityElephant.class;
  922.             trackingRange = 128;
  923.             updateFrequency = 3;
  924.             shouldSpawn = true;             shouldExist = true;
  925.             shouldHaveEgg = true;           allowConfigOptions = true;
  926.            
  927.             spawnRate = 10;
  928.             secondarySpawnRate = 100;
  929.             minInChunk = 1;
  930.             maxInChunk = 2;
  931.             enumCreatureType = EnumCreatureType.creature;
  932.             sendsVelocityUpdates = true;
  933.            
  934.             eggColor1 =  (88 << 16) + (67 << 8) + 50;               eggColor2 = (190 << 16) + (165 << 8) + 145;
  935.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);       
  936.             defaultBiomesToSpawn.add("Savanna");
  937.         }
  938.         @Override
  939.         public void outputDataToList() {
  940.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  941.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  942.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  943.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  944.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Tusk.meta()), 4);
  945.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  946.             }
  947.             CustomEntityList.instance.elephant = Optional.of(customMobData);   
  948.         }
  949.     },
  950.     HorseBeige{
  951.         @Override
  952.         public void loadDefaultProperties() {
  953.             mobName = "Horse Beige";
  954.             mobClass = EntityHorseBeige.class;
  955.             trackingRange = 128;
  956.             updateFrequency = 3;
  957.             shouldSpawn = true;             shouldExist = true;
  958.             shouldHaveEgg = true;           allowConfigOptions = true;
  959.            
  960.             spawnRate = 5;
  961.             secondarySpawnRate = 100;
  962.             minInChunk = 1;
  963.             maxInChunk = 2;
  964.             enumCreatureType = EnumCreatureType.creature;
  965.             sendsVelocityUpdates = true;
  966.            
  967.             eggColor1 =  (245 << 16) + (245 << 8) + 245;                    eggColor2 = (51 << 16) + (51 << 8) + 51;
  968.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  969.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  970.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  971.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  972.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  973.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  974.             defaultBiomesToSpawn.add("Woodlands");
  975.         }
  976.         @Override
  977.         public void outputDataToList() {
  978.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  979.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  980.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  981.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  982.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  983.             }
  984.             CustomEntityList.instance.horseBeige = Optional.of(customMobData); 
  985.         }
  986.     },
  987.     HorseBlack{
  988.         @Override
  989.         public void loadDefaultProperties() {
  990.             mobName = "Horse Black";
  991.             mobClass = EntityHorseBlack.class;
  992.             trackingRange = 128;
  993.             updateFrequency = 3;
  994.             shouldSpawn = true;             shouldExist = true;
  995.             shouldHaveEgg = true;           allowConfigOptions = true;
  996.            
  997.             spawnRate = 5;
  998.             secondarySpawnRate = 100;
  999.             minInChunk = 1;
  1000.             maxInChunk = 2;
  1001.             enumCreatureType = EnumCreatureType.creature;
  1002.             sendsVelocityUpdates = true;
  1003.            
  1004.             eggColor1 =  (17 << 16) + (17 << 8) + 17;                       eggColor2 = (186 << 16) + (186 << 8) + 186;
  1005.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1006.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1007.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1008.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1009.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1010.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1011.             defaultBiomesToSpawn.add("Woodlands");
  1012.         }
  1013.         @Override
  1014.         public void outputDataToList() {
  1015.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1016.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1017.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1018.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1019.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1020.             }
  1021.             CustomEntityList.instance.horseBlack = Optional.of(customMobData); 
  1022.         }
  1023.     },
  1024.     HorseBrown{
  1025.         @Override
  1026.         public void loadDefaultProperties() {
  1027.             mobName = "Horse Brown";
  1028.             mobClass = EntityHorseBrown.class;
  1029.             trackingRange = 128;
  1030.             updateFrequency = 3;
  1031.             shouldSpawn = true;             shouldExist = true;
  1032.             shouldHaveEgg = true;           allowConfigOptions = true;
  1033.            
  1034.             spawnRate = 5;
  1035.             secondarySpawnRate = 100;
  1036.             minInChunk = 1;
  1037.             maxInChunk = 2;
  1038.             enumCreatureType = EnumCreatureType.creature;
  1039.             sendsVelocityUpdates = true;
  1040.            
  1041.             eggColor1 =  (137 << 16) + (78 << 8) + 0;                       eggColor2 = (81 << 16) + (46 << 8) + 0;
  1042.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1043.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1044.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1045.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1046.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1047.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1048.             defaultBiomesToSpawn.add("Woodlands");
  1049.         }
  1050.         @Override
  1051.         public void outputDataToList() {
  1052.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1053.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1054.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1055.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1056.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1057.             }
  1058.             CustomEntityList.instance.horseBrown = Optional.of(customMobData); 
  1059.         }
  1060.     },
  1061.     HorseDarkBlack{
  1062.         @Override
  1063.         public void loadDefaultProperties() {
  1064.             mobName = "Horse Dark Black";
  1065.             mobClass = EntityHorseDarkBlack.class;
  1066.             trackingRange = 128;
  1067.             updateFrequency = 3;
  1068.             shouldSpawn = true;             shouldExist = true;
  1069.             shouldHaveEgg = true;           allowConfigOptions = true;
  1070.            
  1071.             spawnRate = 5;
  1072.             secondarySpawnRate = 100;
  1073.             minInChunk = 1;
  1074.             maxInChunk = 2;
  1075.             enumCreatureType = EnumCreatureType.creature;
  1076.             sendsVelocityUpdates = true;
  1077.            
  1078.             eggColor1 =  (17 << 16) + (17 << 8) + 17;                       eggColor2 = (51 << 16) + (51 << 8) + 51;
  1079.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1080.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1081.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1082.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1083.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1084.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1085.             defaultBiomesToSpawn.add("Woodlands");
  1086.         }
  1087.         @Override
  1088.         public void outputDataToList() {
  1089.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1090.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1091.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1092.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1093.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1094.             }
  1095.             CustomEntityList.instance.horseDarkBlack = Optional.of(customMobData); 
  1096.         }
  1097.     },
  1098.     HorseDarkBrown{
  1099.         @Override
  1100.         public void loadDefaultProperties() {
  1101.             mobName = "Horse Dark Brown";
  1102.             mobClass = EntityHorseDarkBrown.class;
  1103.             trackingRange = 128;
  1104.             updateFrequency = 3;
  1105.             shouldSpawn = true;             shouldExist = true;
  1106.             shouldHaveEgg = true;           allowConfigOptions = true;
  1107.            
  1108.             spawnRate = 5;
  1109.             secondarySpawnRate = 100;
  1110.             minInChunk = 1;
  1111.             maxInChunk = 2;
  1112.             enumCreatureType = EnumCreatureType.creature;
  1113.             sendsVelocityUpdates = true;
  1114.            
  1115.             eggColor1 =  (102 << 16) + (73 << 8) + 34;                      eggColor2 = (60 << 16) + (43 << 8) + 20;
  1116.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1117.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1118.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1119.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1120.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1121.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1122.             defaultBiomesToSpawn.add("Woodlands");
  1123.         }
  1124.         @Override
  1125.         public void outputDataToList() {
  1126.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1127.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1128.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1129.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1130.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1131.             }
  1132.             CustomEntityList.instance.horseDarkBrown = Optional.of(customMobData); 
  1133.         }
  1134.     },
  1135.     HorseGrey{
  1136.         @Override
  1137.         public void loadDefaultProperties() {
  1138.             mobName = "Horse Grey";
  1139.             mobClass = EntityHorseGrey.class;
  1140.             trackingRange = 128;
  1141.             updateFrequency = 3;
  1142.             shouldSpawn = true;             shouldExist = true;
  1143.             shouldHaveEgg = true;           allowConfigOptions = true;
  1144.            
  1145.             spawnRate = 5;
  1146.             secondarySpawnRate = 100;
  1147.             minInChunk = 1;
  1148.             maxInChunk = 2;
  1149.             enumCreatureType = EnumCreatureType.creature;
  1150.             sendsVelocityUpdates = true;
  1151.            
  1152.             eggColor1 =  (102 << 16) + (73 << 8) + 34;                      eggColor2 = (60 << 16) + (43 << 8) + 20;
  1153.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1154.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1155.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1156.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1157.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1158.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1159.             defaultBiomesToSpawn.add("Woodlands");
  1160.         }
  1161.         @Override
  1162.         public void outputDataToList() {
  1163.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1164.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1165.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1166.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1167.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1168.             }
  1169.             CustomEntityList.instance.horseGrey = Optional.of(customMobData);  
  1170.         }
  1171.     },
  1172.     HorseWhite{
  1173.         @Override
  1174.         public void loadDefaultProperties() {
  1175.             mobName = "Horse White";
  1176.             mobClass = EntityHorseWhite.class;
  1177.             trackingRange = 128;
  1178.             updateFrequency = 3;
  1179.             shouldSpawn = true;             shouldExist = true;
  1180.             shouldHaveEgg = true;           allowConfigOptions = true;
  1181.            
  1182.             spawnRate = 5;
  1183.             secondarySpawnRate = 100;
  1184.             minInChunk = 1;
  1185.             maxInChunk = 2;
  1186.             enumCreatureType = EnumCreatureType.creature;
  1187.             sendsVelocityUpdates = true;
  1188.            
  1189.             eggColor1 =  (245 << 16) + (245 << 8) + 245;                    eggColor2 = (51 << 16) + (51 << 8) + 51;
  1190.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1191.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1192.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1193.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1194.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1195.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1196.             defaultBiomesToSpawn.add("Woodlands");
  1197.         }
  1198.         @Override
  1199.         public void outputDataToList() {
  1200.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1201.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1202.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1203.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1204.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1205.             }
  1206.             CustomEntityList.instance.horseWhite = Optional.of(customMobData); 
  1207.         }
  1208.     },
  1209.     Eagle{
  1210.         @Override
  1211.         public void loadDefaultProperties() {
  1212.             mobName = "Eagle";
  1213.             mobClass = EntityEagle.class;
  1214.             trackingRange = 128;
  1215.             updateFrequency = 3;
  1216.             shouldSpawn = true;             shouldExist = true;
  1217.             shouldHaveEgg = true;           allowConfigOptions = true;
  1218.            
  1219.             spawnRate = 5;
  1220.             secondarySpawnRate = 5;
  1221.             minInChunk = 1;
  1222.             maxInChunk = 1;
  1223.             enumCreatureType = EnumCreatureType.monster;
  1224.             sendsVelocityUpdates = true;
  1225.            
  1226.             eggColor1 =  (224 << 16) + (224 << 8) + 224;                        eggColor2 = (28 << 16) + (21 << 8) + 17;
  1227.             defaultBiomesToSpawn.add(BiomeGenBase.extremeHills.biomeName);      defaultBiomesToSpawn.add(BiomeGenBase.extremeHillsEdge.biomeName);
  1228.         }
  1229.         @Override
  1230.         public void outputDataToList() {
  1231.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1232.             customMobData.addLootToMob(new ItemStack(Item.chickenRaw), 10);
  1233.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  1234.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1235.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  1236.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Talon.meta()), 4);
  1237.             }
  1238.             CustomEntityList.instance.eagle = Optional.of(customMobData);  
  1239.         }
  1240.     },
  1241.     HornBill{
  1242.         @Override
  1243.         public void loadDefaultProperties() {
  1244.             mobName = "Horn Bill";
  1245.             mobClass = EntityHornBill.class;
  1246.             trackingRange = 128;
  1247.             updateFrequency = 3;
  1248.             shouldSpawn = true;             shouldExist = true;
  1249.             shouldHaveEgg = true;           allowConfigOptions = true;
  1250.            
  1251.             spawnRate = 10;
  1252.             secondarySpawnRate = 25;
  1253.             minInChunk = 1;
  1254.             maxInChunk = 1;
  1255.             enumCreatureType = EnumCreatureType.monster;
  1256.             sendsVelocityUpdates = true;
  1257.            
  1258.             eggColor1 =  (26 << 16) + (19 << 8) + 15;                       eggColor2 = (199 << 16) + (33 << 8) + 14;
  1259.             defaultBiomesToSpawn.add(BiomeGenBase.jungle.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.jungleHills.biomeName);          
  1260.             defaultBiomesToSpawn.add("Mini Jungle");                        defaultBiomesToSpawn.add("Extreme Jungle");
  1261.         }
  1262.         @Override
  1263.         public void outputDataToList() {
  1264.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1265.             customMobData.addLootToMob(new ItemStack(Item.chickenRaw), 10);
  1266.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  1267.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1268.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.SmallHeart.meta()), 4);
  1269.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Talon.meta()), 4);
  1270.             }
  1271.             CustomEntityList.instance.hornBill = Optional.of(customMobData);   
  1272.         }
  1273.     },
  1274.     Pelican{
  1275.         @Override
  1276.         public void loadDefaultProperties() {
  1277.             mobName = "Pelican";
  1278.             mobClass = EntityPelican.class;
  1279.             trackingRange = 128;
  1280.             updateFrequency = 3;
  1281.             sendsVelocityUpdates = true;
  1282.             shouldSpawn = true;             shouldExist = true;
  1283.             shouldHaveEgg = true;           allowConfigOptions = true;
  1284.            
  1285.             spawnRate = 7;
  1286.             secondarySpawnRate = 5;
  1287.             minInChunk = 1;
  1288.             maxInChunk = 1;
  1289.             enumCreatureType = EnumCreatureType.monster;
  1290.            
  1291.             eggColor1 =  (214 << 16) + (214 << 8) + 214;                    eggColor2 = (168 << 16) + (62 << 8) + 10;
  1292.             defaultBiomesToSpawn.add(BiomeGenBase.river.biomeName);         defaultBiomesToSpawn.add(BiomeGenBase.beach.biomeName);
  1293.         }
  1294.         @Override
  1295.         public void outputDataToList() {
  1296.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1297.             customMobData.addLootToMob(new ItemStack(Item.chickenRaw), 10);
  1298.             customMobData.addLootToMob(new ItemStack(Item.feather), 8);
  1299.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1300.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1301.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Talon.meta()), 4);
  1302.             }
  1303.             CustomEntityList.instance.pelican = Optional.of(customMobData);
  1304.         }
  1305.     },
  1306.     Minotaur{
  1307.         @Override
  1308.         public void loadDefaultProperties() {
  1309.             mobName = "Minotaur";
  1310.             mobClass = EntityMinotaur.class;
  1311.             trackingRange = 128;
  1312.             updateFrequency = 3;
  1313.             sendsVelocityUpdates = true;
  1314.             shouldSpawn = false;            shouldExist = true;
  1315.             shouldHaveEgg = true;           allowConfigOptions = true;
  1316.             eggColor1 = (51 << 16) + (34 << 8) + 8;         eggColor2 = (255 << 16) + (255 << 8) + 255;
  1317.         }
  1318.         @Override
  1319.         public void outputDataToList() {
  1320.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1321.             if(ItemBlockList.furPelt.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.furPelt.get()), 10); }
  1322.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1323.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1324.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Ectoplasm.meta()), 4);
  1325.             }
  1326.             CustomEntityList.instance.minotaur = Optional.of(customMobData);   
  1327.         }
  1328.     },
  1329.     HauntedArmor{
  1330.         @Override
  1331.         public void loadDefaultProperties() {
  1332.             mobName = "Haunted Armor";
  1333.             mobClass = EntityHauntedArmor.class;
  1334.             trackingRange = 128;
  1335.             updateFrequency = 3;
  1336.             sendsVelocityUpdates = true;
  1337.             shouldSpawn = false;            shouldExist = true;
  1338.             shouldHaveEgg = true;           allowConfigOptions = true;         
  1339.             eggColor1 = (194 << 16) + (194 << 8) + 194;     eggColor2 = (251 << 16) + (246 << 8) + 36;
  1340.         }
  1341.         @Override
  1342.         public void outputDataToList() {
  1343.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1344.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1345.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Ectoplasm.meta()), 4);
  1346.             }
  1347.             CustomEntityList.instance.hauntedArmor = Optional.of(customMobData);   
  1348.         }
  1349.     },
  1350.     Centipede{
  1351.         @Override
  1352.         public void loadDefaultProperties() {
  1353.             mobName = "Centipede";
  1354.             mobClass = EntityCentipede.class;
  1355.             trackingRange = 128;
  1356.             updateFrequency = 3;
  1357.             shouldSpawn = true;             shouldExist = true;
  1358.             shouldHaveEgg = true;           allowConfigOptions = true;         
  1359.            
  1360.             spawnRate = 1;
  1361.             secondarySpawnRate = 35;
  1362.             minInChunk = 1;
  1363.             maxInChunk = 1;
  1364.             enumCreatureType = EnumCreatureType.monster;
  1365.             sendsVelocityUpdates = true;
  1366.            
  1367.             eggColor1 = (77 << 16) + (22 << 8) + 17;                        eggColor2 = (212 << 16) + (97 << 8) + 38;
  1368.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.extremeHills.biomeName);
  1369.             defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.taiga.biomeName);
  1370.             defaultBiomesToSpawn.add(BiomeGenBase.swampland.biomeName);     defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);
  1371.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1372.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1373.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1374.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1375.             defaultBiomesToSpawn.add("Woodlands");
  1376.         }
  1377.         @Override
  1378.         public void outputDataToList() {
  1379.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1380.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 15); }
  1381.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1382.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.Antennae.meta()), 1);
  1383.             }
  1384.             CustomEntityList.instance.centipede = Optional.of(customMobData);  
  1385.         }
  1386.     },
  1387.     Follower{
  1388.         @Override
  1389.         public void loadDefaultProperties() {
  1390.             mobName = "Follower";
  1391.             mobClass = EntityFollower.class;
  1392.             trackingRange = 128;
  1393.             updateFrequency = 3;
  1394.             sendsVelocityUpdates = true;
  1395.             shouldSpawn = false;            shouldExist = true;
  1396.             shouldHaveEgg = false;          allowConfigOptions = false;        
  1397.         }
  1398.         @Override
  1399.         public void outputDataToList() {}
  1400.     },
  1401.     HorseRandom{
  1402.         @Override
  1403.         public void loadDefaultProperties() {
  1404.             mobName = "HorseRandom";
  1405.             mobClass = EntityHorseRandom.class;
  1406.             trackingRange = 128;
  1407.             updateFrequency = 3;
  1408.             shouldSpawn = true;             shouldExist = false;
  1409.             shouldHaveEgg = true;           allowConfigOptions = true;
  1410.            
  1411.             spawnRate = 5;
  1412.             secondarySpawnRate = 100;
  1413.             minInChunk = 3;
  1414.             maxInChunk = 4;
  1415.             enumCreatureType = EnumCreatureType.creature;
  1416.             sendsVelocityUpdates = true;
  1417.            
  1418.             eggColor1 =  (200 << 16) + (245 << 8) + 245;                    eggColor2 = (51 << 16) + (51 << 8) + 51;
  1419.             defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName);        defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName);       
  1420.             defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName);      
  1421.             defaultBiomesToSpawn.add("Autumn Woods");                       defaultBiomesToSpawn.add("Birch Forest");
  1422.             defaultBiomesToSpawn.add("Forested Hills");                     defaultBiomesToSpawn.add("Forested Island");
  1423.             defaultBiomesToSpawn.add("Green Hills");                        defaultBiomesToSpawn.add("Redwood Forest");
  1424.             defaultBiomesToSpawn.add("Lush Redwoods");                      defaultBiomesToSpawn.add("Temperate Rainforest");
  1425.             defaultBiomesToSpawn.add("Woodlands");
  1426.         }
  1427.         @Override
  1428.         public void outputDataToList() {
  1429.             CustomMobData customMobData = new CustomMobData(mobName, secondarySpawnRate, reportSpawningInLog);
  1430.             customMobData.addLootToMob(new ItemStack(Item.beefRaw), 10);
  1431.             if(ItemBlockList.scrapMeat.isPresent()){ customMobData.addLootToMob(new ItemStack(ItemBlockList.scrapMeat.get()), 10); }
  1432.             if(ItemBlockList.genericCraftingItems1.isPresent()){
  1433.                 customMobData.addLootToMob(new ItemStack(ItemBlockList.genericCraftingItems1.get().itemID, 1, ItemGenerics.Properties.LargeHeart.meta()), 4);
  1434.             }
  1435.             CustomEntityList.instance.horseRandom = Optional.of(customMobData);
  1436.         }
  1437.     },
  1438.     ;
  1439.    
  1440.    
  1441.     /* Name of the Entity */
  1442.     protected String mobName;
  1443.     /* Class this Entity Belongs To */
  1444.     protected Class mobClass;
  1445.     /* Determines Whether the Entity Spawns in the World or is Declared */
  1446.     protected boolean shouldSpawn = true;
  1447.     protected boolean shouldExist = true;
  1448.     protected boolean shouldHaveEgg = true;
  1449.     protected boolean allowConfigOptions = true;
  1450.    
  1451.     protected boolean reportSpawningInLog = false;
  1452.  
  1453.     protected int trackingRange = 80;
  1454.     protected int updateFrequency = 3;
  1455.     protected boolean sendsVelocityUpdates = true;
  1456.     protected int spawnRate = 0;
  1457.     protected int secondarySpawnRate = 0;
  1458.     protected int eggColor1 = 0;
  1459.     protected int eggColor2 = 0;
  1460.     protected int minInChunk = 1;
  1461.     protected int maxInChunk = 1;
  1462.     protected EnumCreatureType enumCreatureType;
  1463.     protected ArrayList<BiomeGenBase> biomesToSpawn = new ArrayList();
  1464.     protected ArrayList<String> defaultBiomesToSpawn = new ArrayList();
  1465.    
  1466.     public abstract void loadDefaultProperties();
  1467.     /* Used To Mark Entity Present in List and Store Extra Data such as Secondary Spawn Rate for Access Elsewhere (If Desired) */
  1468.     public abstract void outputDataToList();
  1469.  
  1470.     public static void loadSettings(File configDirectory){
  1471.         /* Load Individual Mob Properties and Store them in the Mob General Config */
  1472.         Configuration mobConfig = new Configuration(  new File(configDirectory, DefaultProps.configDirectory + DefaultProps.mobBiomeSpawnConfigFile) );
  1473.         mobConfig.load();
  1474.        
  1475.         /* Load Configuration Settings */
  1476.         for (final CustomEntityManager mob : CustomEntityManager.values()) {
  1477.            
  1478.             /* Load Default Properties */
  1479.             mob.loadDefaultProperties();
  1480.            
  1481.             if(!mob.allowConfigOptions){
  1482.                 continue;
  1483.             }
  1484.             /* Load Variables that are User Configurable, only on Entities that ShouldSpawn by default.
  1485.              *  Non-User Spawnable entities, like Lizard Spit or Pharoah, should be Skipped */
  1486.             mob.shouldExist = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" shouldExist", mob.shouldExist).getBoolean(mob.shouldExist);
  1487.             mob.reportSpawningInLog = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" reportSpawningInLog", mob.reportSpawningInLog).getBoolean(mob.reportSpawningInLog);
  1488.             mob.updateFrequency = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" UpdateFrequency", mob.updateFrequency).getInt(mob.updateFrequency);
  1489.            
  1490.             if(mob.shouldSpawn || mob.shouldHaveEgg){
  1491.                 mob.eggColor1 = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" EggColor1", mob.eggColor1).getInt(mob.eggColor1);
  1492.                 mob.eggColor2 = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" EggColor2", mob.eggColor2).getInt(mob.eggColor2);
  1493.             }
  1494.            
  1495.             if(mob.shouldSpawn){
  1496.                 mob.spawnRate = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" SpawnRate", mob.spawnRate).getInt(mob.spawnRate);
  1497.                 mob.secondarySpawnRate = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" SecondarySpawnRate",mob.secondarySpawnRate).getInt(mob.secondarySpawnRate);
  1498.                 mob.minInChunk = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" minInChunk", mob.minInChunk).getInt(mob.minInChunk);
  1499.                 mob.maxInChunk = mobConfig.get("MOB CONTROLS."+mob.mobName, mob.mobName.toLowerCase()+" maxInChunk", mob.maxInChunk).getInt(mob.maxInChunk);
  1500.             }
  1501.             if(mob.shouldExist){
  1502.                 mob.outputDataToList();
  1503.             }
  1504.         }
  1505.         mobConfig.save();
  1506.        
  1507.         /* Load Individual Mob Biome Properties and Store them in the Mob Spaw Config */
  1508.         Configuration biomeConfig = new Configuration(  new File(configDirectory, DefaultProps.configDirectory + DefaultProps.mobBiomeSpawnConfigFile) );
  1509.         biomeConfig.load();
  1510.         for (final CustomEntityManager mob : CustomEntityManager.values()) {
  1511.             /* If mob shouldn't spawn, it doesn't need to be in Biome Config */
  1512.             if(!mob.shouldSpawn){
  1513.                 continue;
  1514.             }
  1515.             for (int i = 0; i < BiomeGenBase.biomeList.length; i++) {
  1516.                 if(BiomeGenBase.biomeList[i] == null){
  1517.                     continue;
  1518.                 }
  1519.                 if(biomeConfig.get("Mob Spawn Biome Controls."+mob.mobName, mob.mobName.toLowerCase()+" in "+BiomeGenBase.biomeList[i].biomeName, mob.defaultBiomesToSpawn.contains(BiomeGenBase.biomeList[i].biomeName)).getBoolean(false)){
  1520.                     mob.biomesToSpawn.add(BiomeGenBase.biomeList[i]);
  1521.                 }
  1522.             }
  1523.         }
  1524.         biomeConfig.save();
  1525.        
  1526.     }
  1527.    
  1528.     public static void setupMobs(){
  1529.         for (final CustomEntityManager mob : CustomEntityManager.values()) {
  1530.             if(mob.shouldExist){
  1531.                 EntityRegistry.registerModEntity(mob.mobClass,  mob.mobName, ProjectZulu_Mobs.getNextDefaultMobID(),
  1532.                         mod_ProjectZulu.modInstance, mob.trackingRange, mob.updateFrequency, true);
  1533.                 LanguageRegistry.instance().addStringLocalization("entity.".concat(DefaultProps.CoreModId).concat(".").concat(mob.mobName).concat(".name"), "en_US", mob.mobName);
  1534.  
  1535.                 /* if Should Exist, should not Have Egg and Not Spawn (i.e. Lizard Spit) Skip to Next Mob */
  1536.                 if(!mob.shouldHaveEgg){
  1537.                     continue;
  1538.                 }
  1539.                
  1540.                 /* Search For Empty Egg Slot to Put Egg Into */
  1541.                 int eggID = ProjectZulu_Mobs.getNextDefaultEggID();
  1542.                 while(EntityList.IDtoClassMapping.containsKey(eggID)){ eggID = ProjectZulu_Mobs.getNextDefaultEggID(); }
  1543.                 EntityList.IDtoClassMapping.put(eggID, mob.mobClass);
  1544.                 EntityList.entityEggs.put(eggID, new EntityEggInfo(eggID, mob.eggColor1, mob.eggColor2 ));
  1545.                
  1546.                 /* If Should Exist and Not Spawn (i.e. Lizard Spit) Skip to Next Mob */
  1547.                 if(!mob.shouldSpawn){
  1548.                     continue;
  1549.                 }
  1550.                 for (int i = 0; i < mob.biomesToSpawn.size(); i++){
  1551.                     EntityRegistry.addSpawn(mob.mobClass, mob.spawnRate, mob.minInChunk, mob.maxInChunk, mob.enumCreatureType, mob.biomesToSpawn.get(i));
  1552.                 }
  1553.             }
  1554.         }
  1555.     }
  1556. }
Advertisement
Add Comment
Please, Sign In to add comment