package universalelectricity.prefab.ore; import java.util.ArrayList; import java.util.List; import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; public class OreGenerator implements IWorldGenerator { public static boolean isInitiated = false; /** * Add your ore data to this list of ores for it to automatically generate! No hassle indeed! */ private static final List ORES_TO_GENERATE = new ArrayList(); /** * Adds an ore to the ore generate list. Do this in pre-init. */ public static void addOre(OreGenBase data) { if (!isInitiated) { GameRegistry.registerWorldGenerator(new OreGenerator()); } ORES_TO_GENERATE.add(data); } /** * Checks to see if this ore * * @param oreName * @return */ public static boolean oreExists(String oreName) { for (OreGenBase ore : ORES_TO_GENERATE) { if (ore.oreDictionaryName == oreName) { return true; } } return false; } /** * Removes an ore to the ore generate list. Do this in init. */ public static void removeOre(OreGenBase data) { ORES_TO_GENERATE.remove(data); } @Override public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { chunkX = chunkX << 4; chunkZ = chunkZ << 4; // Checks to make sure this is the normal // world for (OreGenBase oreData : ORES_TO_GENERATE) { if (oreData.shouldGenerate && oreData.isOreGeneratedInWorld(world, chunkGenerator)) { oreData.generate(world, rand, chunkX, chunkZ); } } } }