Advertisement
Guest User

Untitled

a guest
Aug 24th, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.74 KB | None | 0 0
  1. package TFC.WorldGen.Generators;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Random;
  6.  
  7. import net.minecraft.world.World;
  8. import net.minecraft.world.chunk.IChunkProvider;
  9. import TFC.WorldGen.DataLayer;
  10. import TFC.WorldGen.TFCWorldChunkManager;
  11. import cpw.mods.fml.common.IWorldGenerator;
  12.  
  13. public class WorldGenOre implements IWorldGenerator
  14. {
  15.     int Min;
  16.     int Max;
  17.     int ChunkX;
  18.     int ChunkZ;
  19.     World worldObj;
  20.     Random random;
  21.  
  22.     public static HashMap<String, OreSpawnData> OreList = new HashMap<String, OreSpawnData>();
  23.  
  24.     public WorldGenOre()
  25.     {
  26.  
  27.     }
  28.  
  29.     @Override
  30.     public void generate(Random rand, int chunkX, int chunkZ, World world,
  31.             IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
  32.     {
  33.         chunkX *= 16;
  34.         chunkZ *= 16;
  35.         ChunkX = chunkX;
  36.         ChunkZ = chunkZ;
  37.         worldObj = world;
  38.         random = rand;
  39.  
  40.         Iterator iter = OreList.values().iterator();
  41.         while(iter.hasNext())
  42.         {
  43.             OreSpawnData osd = (OreSpawnData) iter.next();
  44.             if(osd.type == 0)
  45.             {
  46.                 if(osd.size == 0)
  47.                 {
  48.                     oreSmall(osd.id, osd.meta, osd.base, osd.rarity, osd.min, osd.max, osd.vDensity, osd.hDensity);
  49.                 }
  50.                 else if(osd.size == 1)
  51.                 {
  52.                     oreMedium(osd.id, osd.meta, osd.base, osd.rarity, osd.min, osd.max, osd.vDensity, osd.hDensity);
  53.                 }
  54.                 else if(osd.size == 2)
  55.                 {
  56.                     oreLarge(osd.id, osd.meta, osd.base, osd.rarity, osd.min, osd.max, osd.vDensity, osd.hDensity);
  57.                 }
  58.             }
  59.             else if(osd.type == 1)
  60.             {
  61.                 if(osd.size == 0)
  62.                 {
  63.                     oreSmallVein(osd.id, osd.meta, osd.base, osd.rarity, osd.min, osd.max, osd.vDensity, osd.hDensity);
  64.                 }
  65.                 else if(osd.size == 1)
  66.                 {
  67.                     oreMediumVein(osd.id, osd.meta, osd.base, osd.rarity, osd.min, osd.max, osd.vDensity, osd.hDensity);
  68.                 }
  69.                 else if(osd.size == 2)
  70.                 {
  71.                     oreLargeVein(osd.id, osd.meta, osd.base, osd.rarity, osd.min, osd.max, osd.vDensity, osd.hDensity);
  72.                 }
  73.             }
  74.         }
  75.     }
  76.  
  77.     private void oreSmallVein(int id, int meta, int[] baseRocks, int rarity, int min, int max, int vDensity, int hDensity)
  78.     {
  79.         createOreVein(id, meta ,baseRocks,
  80.                 /*rarity*/rarity,/*veinSize*/20,/*veinAmt*/30,/*height*/5,/*diameter*/40,/*vDensity*/vDensity,/*hDensity*/hDensity,        
  81.                 worldObj, random, ChunkX, ChunkZ, min, max, "Graphite");
  82.  
  83.     }
  84.  
  85.     private void oreMediumVein(int id, int meta, int[] baseRocks, int rarity, int min, int max, int vDensity, int hDensity)
  86.     {
  87.         createOreVein(id, meta ,baseRocks,
  88.                 /*rarity*/rarity,/*veinSize*/30,/*veinAmt*/40,/*height*/10,/*diameter*/60,/*vDensity*/vDensity,/*hDensity*/hDensity,        
  89.                 worldObj, random, ChunkX, ChunkZ, min, max, "Graphite");
  90.  
  91.     }
  92.  
  93.     private void oreLargeVein(int id, int meta, int[] baseRocks, int rarity, int min, int max, int vDensity, int hDensity)
  94.     {
  95.         createOreVein(id, meta ,baseRocks,
  96.                 /*rarity*/rarity,/*veinSize*/60,/*veinAmt*/45,/*height*/20,/*diameter*/80,/*vDensity*/vDensity,/*hDensity*/hDensity,        
  97.                 worldObj, random, ChunkX, ChunkZ, min, max, "Graphite");
  98.  
  99.     }
  100.  
  101.     private void oreSmall(int id, int meta, int[] baseRocks, int rarity, int min, int max, int vDensity, int hDensity)
  102.     {
  103.         createOreVein(id, meta ,baseRocks,
  104.                 /*rarity*/rarity,/*veinSize*/20,/*veinAmt*/30,/*height*/5,/*diameter*/80,/*vDensity*/vDensity,/*hDensity*/hDensity,        
  105.                 worldObj, random, ChunkX, ChunkZ, min, max, "Graphite");
  106.  
  107.     }
  108.  
  109.     private void oreMedium(int id, int meta, int[] baseRocks, int rarity, int min, int max, int vDensity, int hDensity)
  110.     {
  111.         createOre(id, meta ,baseRocks,
  112.                 /*rarity*/rarity,/*veinSize*/30,/*veinAmt*/40,/*height*/10,/*diameter*/120,/*vDensity*/vDensity,/*hDensity*/hDensity,        
  113.                 worldObj, random, ChunkX, ChunkZ, min, max, "Graphite");
  114.  
  115.     }
  116.  
  117.     private void oreLarge(int id, int meta, int[] baseRocks, int rarity, int min, int max, int vDensity, int hDensity)
  118.     {
  119.         createOre(id, meta ,baseRocks,
  120.                 /*rarity*/rarity,/*veinSize*/60,/*veinAmt*/40,/*height*/5,/*diameter*/120,/*vDensity*/vDensity,/*hDensity*/hDensity,        
  121.                 worldObj, random, ChunkX, ChunkZ, min, max, "Graphite");
  122.  
  123.     }
  124.  
  125.     private static void createOre(int i, int j, int[] Layers, int rarity, int veinSize,
  126.             int veinAmount, int height, int diameter, int vDensity, int hDensity,World world, Random rand, int chunkX, int chunkZ, int min, int max, String name)
  127.     {
  128.         if(world.getWorldChunkManager() instanceof TFCWorldChunkManager)
  129.         {
  130.             for(int n = 0; n < Layers.length/2;)
  131.             {
  132.                 DataLayer rockLayer1 = ((TFCWorldChunkManager)world.getWorldChunkManager()).getRockLayerAt(chunkX, chunkZ, 0);
  133.                 DataLayer rockLayer2 = ((TFCWorldChunkManager)world.getWorldChunkManager()).getRockLayerAt(chunkX, chunkZ, 1);
  134.                 DataLayer rockLayer3 = ((TFCWorldChunkManager)world.getWorldChunkManager()).getRockLayerAt(chunkX, chunkZ, 2);
  135.                 if((rockLayer1.data1 == Layers[n] && (rockLayer1.data2 == Layers[n+1] || Layers[n+1] == -1)) ||
  136.                         (rockLayer2.data1 == Layers[n] && (rockLayer2.data2 == Layers[n+1] || Layers[n+1] == -1)) ||
  137.                         (rockLayer3.data1 == Layers[n] && (rockLayer3.data2 == Layers[n+1] || Layers[n+1] == -1)))
  138.                 {
  139.                     int grade = rand.nextInt(100);
  140.                     if(grade<20)
  141.                         grade = 1;
  142.                     else if(grade <50)
  143.                         grade = 2;
  144.                     else
  145.                         grade = 0;
  146.                     new WorldGenMinable(i, j,Layers[n],Layers[n+1],rarity,veinSize,veinAmount,height,diameter,vDensity,hDensity, false, grade).generate(
  147.                             world, rand, chunkX, chunkZ, min, max, name);
  148.                 }
  149.                 n+=2;
  150.             }
  151.         }
  152.     }
  153.  
  154.     private static void createOreVein(int i, int j, int[] Layers, int rarity, int veinSize,
  155.             int veinAmount, int height, int diameter, int vDensity, int hDensity,World world, Random rand, int chunkX, int chunkZ, int min, int max, String name)
  156.     {
  157.         if(world.getWorldChunkManager() instanceof TFCWorldChunkManager)
  158.         {
  159.             for(int n = 0; n < Layers.length/2;)
  160.             {
  161.                 DataLayer rockLayer1 = ((TFCWorldChunkManager)world.getWorldChunkManager()).getRockLayerAt(chunkX, chunkZ, 0);
  162.                 DataLayer rockLayer2 = ((TFCWorldChunkManager)world.getWorldChunkManager()).getRockLayerAt(chunkX, chunkZ, 1);
  163.                 DataLayer rockLayer3 = ((TFCWorldChunkManager)world.getWorldChunkManager()).getRockLayerAt(chunkX, chunkZ, 2);
  164.                 if((rockLayer1.data1 == Layers[n] && (rockLayer1.data2 == Layers[n+1] || Layers[n+1] == -1)) ||
  165.                         (rockLayer2.data1 == Layers[n] && (rockLayer2.data2 == Layers[n+1] || Layers[n+1] == -1)) ||
  166.                         (rockLayer3.data1 == Layers[n] && (rockLayer3.data2 == Layers[n+1] || Layers[n+1] == -1)))
  167.                 {
  168.                     int grade = rand.nextInt(100);
  169.                     if(grade<20)
  170.                         grade = 1;
  171.                     else if(grade <50)
  172.                         grade = 2;
  173.                     else
  174.                         grade = 0;
  175.                     new WorldGenMinable(i, j,Layers[n],Layers[n+1],rarity,veinSize,veinAmount,height,diameter,vDensity,hDensity, true, grade).generate(
  176.                             world, rand, chunkX, chunkZ, min, max, name);
  177.                 }
  178.                 n+=2;
  179.             }
  180.         }
  181.     }
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement