package jas.spawner.modern.modification; //package jas.common.modification; // //import jas.common.ImportedSpawnList; //import jas.common.JustAnotherSpawner; //import jas.common.spawner.biome.group.BiomeGroupRegistry; //import jas.common.spawner.biome.group.BiomeGroupRegistry.BiomeGroup; //import jas.common.spawner.biome.structure.StructureHandler; //import jas.common.spawner.biome.structure.StructureHandlerRegistry; //import jas.common.spawner.creature.entry.BiomeSpawnListRegistry; //import jas.common.spawner.creature.entry.SpawnListEntryBuilder; //import jas.common.spawner.creature.handler.LivingGroupRegistry; //import jas.common.spawner.creature.handler.LivingHandler; //import jas.common.spawner.creature.handler.LivingHandlerBuilder; //import jas.common.spawner.creature.handler.LivingHandlerRegistry; //import jas.common.spawner.creature.handler.LivingGroupRegistry.LivingGroup; //import jas.common.spawner.creature.type.CreatureTypeRegistry; // //import java.util.ArrayList; //import java.util.Collection; // //import net.minecraft.entity.EntityLiving; // //import com.google.common.base.Optional; //import com.google.common.collect.ImmutableList; // //public class ModAddLivingGroup extends BaseModification { // // public final String groupName; // public final Optional<String> configName; // public final ArrayList<String> contents; // private Optional<LivingGroup> livingGroup = Optional.absent(); // // public ModAddLivingGroup(String groupName, ArrayList<String> contents) { // this(groupName, null, contents); // } // // public ModAddLivingGroup(String groupName, String configName, ArrayList<String> contents) { // this.groupName = groupName; // this.configName = configName != null ? Optional.of(configName) : Optional.<String> absent(); // this.contents = contents; // } // // @Override // public void applyModification(LivingGroupRegistry registry) { // LivingGroup group; // if (configName.isPresent()) { // group = new LivingGroup(groupName, configName.get(), contents); // } else { // group = new LivingGroup(groupName, contents); // } // if (registry.addLivingGroup(group)) { // livingGroup = Optional.of(group); // } // } // // @Override // public void applyModification(LivingHandlerRegistry registry) { // if (livingGroup.isPresent()) { // registry.addLivingHandler(new LivingHandlerBuilder(groupName)); // } // } // // @Override // public void applyModification(BiomeSpawnListRegistry registry) { // if (livingGroup.isPresent() && !livingGroup.get().contents().isEmpty()) { // BiomeGroupRegistry biomeGroupRegistry = registry.biomeGroupRegistry; // LivingGroupRegistry livingGroupRegistry = registry.livingGroupRegistry; // LivingHandlerRegistry livingHandlerRegistry = registry.livingHandlerRegistry; // LivingHandler handler = livingHandlerRegistry.getLivingHandler(livingGroup.get().groupID); // // ImportedSpawnList importedSpawnList = JustAnotherSpawner.importedSpawnList(); // if (!handler.creatureTypeID.equalsIgnoreCase(CreatureTypeRegistry.NONE) && handler.shouldSpawn) { // for (BiomeGroup biomeGroup : biomeGroupRegistry.iDToGroup().values()) { // SpawnListEntryBuilder spawnListEntry = findVanillaSpawnListEntry(biomeGroup, livingGroup.get(), // importedSpawnList, biomeGroupRegistry, livingGroupRegistry); // registry.addSpawnListEntry(spawnListEntry); // } // // } // } // } // // @Override // public void applyModification(StructureHandlerRegistry registry) { // // Newly declared entities are not added to StructureSpawnList // } // // private SpawnListEntryBuilder findVanillaSpawnListEntry(BiomeGroup group, LivingGroup livingGroup, // ImportedSpawnList importedSpawnList, BiomeGroupRegistry biomeGroupRegistry, // LivingGroupRegistry livingGroupRegistry) { // for (String pckgNames : group.getBiomeNames()) { // for (Integer biomeID : biomeGroupRegistry.pckgNameToBiomeID().get(pckgNames)) { // Collection<net.minecraft.world.biome.BiomeGenBase.SpawnListEntry> spawnListEntries = importedSpawnList // .getSpawnableCreatureList(biomeID); // for (String jasName : livingGroup.entityJASNames()) { // Class<? extends EntityLiving> livingClass = livingGroupRegistry.JASNametoEntityClass.get(jasName); // for (net.minecraft.world.biome.BiomeGenBase.SpawnListEntry spawnListEntry : spawnListEntries) { // if (spawnListEntry.entityClass.equals(livingClass)) { // return new SpawnListEntryBuilder(livingGroup.groupID, group.groupID) // .setWeight(spawnListEntry.itemWeight).setMinChunkPack(spawnListEntry.minGroupCount) // .setMaxChunkPack(spawnListEntry.maxGroupCount); // } // } // } // } // } // return new SpawnListEntryBuilder(livingGroup.groupID, group.groupID); // } //}