drackiseries

More Ore Generation

Jul 6th, 2012
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.43 KB | None | 0 0
  1. THIS IS FOR ORE GENERATION THAT IS NOT IN STONE. IN THIS EXAMPLE IT IS SAND.
  2.  
  3.  
  4.  
  5. package net.minecraft.src;
  6.  
  7. import java.util.Random;
  8.  
  9. public class mod_tutorial extends BaseMod
  10. {
  11.    
  12.     //Blocks
  13.  
  14.     public static final Block DrackiOre = (new BlockDrackiOre(204, ModLoader.addOverride("/terrain.png","/Blocks/dracki_ore.png")).setHardness(3.0F).setResistance(1.0F).setBlockName("Fyrite"));
  15.    
  16.    
  17.     //Items
  18.    
  19.     public static final Item DrackiDust = (new Item(1017).setItemName("DrackiDust"));
  20.    
  21.  
  22.     public void load()
  23.     {
  24.        
  25.         DrackiDust.iconIndex = ModLoader.addOverride("/gui/items.png","/Items/drackidust.png");
  26.        
  27.    
  28.         //Registering
  29.        
  30.         ModLoader.registerBlock(DrackiOre);
  31.        
  32.         //Adding names
  33.  
  34.         ModLoader.addName(DrackiOre, "Dracki Ore");
  35.         ModLoader.addName(DrackiDust, "Dracki Dust");
  36.        
  37.        
  38.        
  39.         //Crafting Recipes
  40.        
  41.         //Smelting Recipes
  42.        
  43.         //Shapeless Recipes
  44.        
  45.     }
  46.    
  47.     public void generateSurface(World world, Random random, int chunkX, int chunkZ)
  48.     {
  49.         for (int i = 0; i < 50; i++)
  50.         {
  51.             int randPosX = chunkX + random.nextInt(16);
  52.             int randPosY = random.nextInt(128);
  53.             int randPosZ = chunkZ + random.nextInt(16);
  54.             (new WorldGenDrackiOre(mod_tutorial.DrackiOre.blockID, 60)).generate(world, random, randPosX, randPosY, randPosZ);
  55.         }
  56.        
  57.     }
  58.    
  59.     public String getVersion()
  60.     {
  61.         return "1.2.5";
  62.     }
  63. }
  64.  
  65.  
  66. WORLDGENDRACKIORE FILE:
  67.  
  68.  
  69. package net.minecraft.src;
  70.  
  71. import java.util.Random;
  72.  
  73. public class WorldGenDrackiOre extends WorldGenerator
  74. {
  75.     /** The block ID of the ore to be placed using this generator. */
  76.     private int minableBlockId;
  77.  
  78.     /** The number of blocks to generate. */
  79.     private int numberOfBlocks;
  80.  
  81.     public WorldGenDrackiOre(int par1, int par2)
  82.     {
  83.         minableBlockId = par1;
  84.         numberOfBlocks = par2;
  85.     }
  86.  
  87.     public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
  88.     {
  89.         float f = par2Random.nextFloat() * (float)Math.PI;
  90.         double d = (float)(par3 + 8) + (MathHelper.sin(f) * (float)numberOfBlocks) / 8F;
  91.         double d1 = (float)(par3 + 8) - (MathHelper.sin(f) * (float)numberOfBlocks) / 8F;
  92.         double d2 = (float)(par5 + 8) + (MathHelper.cos(f) * (float)numberOfBlocks) / 8F;
  93.         double d3 = (float)(par5 + 8) - (MathHelper.cos(f) * (float)numberOfBlocks) / 8F;
  94.         double d4 = (par4 + par2Random.nextInt(3)) - 2;
  95.         double d5 = (par4 + par2Random.nextInt(3)) - 2;
  96.  
  97.         for (int i = 0; i <= numberOfBlocks; i++)
  98.         {
  99.             double d6 = d + ((d1 - d) * (double)i) / (double)numberOfBlocks;
  100.             double d7 = d4 + ((d5 - d4) * (double)i) / (double)numberOfBlocks;
  101.             double d8 = d2 + ((d3 - d2) * (double)i) / (double)numberOfBlocks;
  102.             double d9 = (par2Random.nextDouble() * (double)numberOfBlocks) / 16D;
  103.             double d10 = (double)(MathHelper.sin(((float)i * (float)Math.PI) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D;
  104.             double d11 = (double)(MathHelper.sin(((float)i * (float)Math.PI) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D;
  105.             int j = MathHelper.floor_double(d6 - d10 / 2D);
  106.             int k = MathHelper.floor_double(d7 - d11 / 2D);
  107.             int l = MathHelper.floor_double(d8 - d10 / 2D);
  108.             int i1 = MathHelper.floor_double(d6 + d10 / 2D);
  109.             int j1 = MathHelper.floor_double(d7 + d11 / 2D);
  110.             int k1 = MathHelper.floor_double(d8 + d10 / 2D);
  111.  
  112.             for (int l1 = j; l1 <= i1; l1++)
  113.             {
  114.                 double d12 = (((double)l1 + 0.5D) - d6) / (d10 / 2D);
  115.  
  116.                 if (d12 * d12 >= 1.0D)
  117.                 {
  118.                     continue;
  119.                 }
  120.  
  121.                 for (int i2 = k; i2 <= j1; i2++)
  122.                 {
  123.                     double d13 = (((double)i2 + 0.5D) - d7) / (d11 / 2D);
  124.  
  125.                     if (d12 * d12 + d13 * d13 >= 1.0D)
  126.                     {
  127.                         continue;
  128.                     }
  129.  
  130.                     for (int j2 = l; j2 <= k1; j2++)
  131.                     {
  132.                         double d14 = (((double)j2 + 0.5D) - d8) / (d10 / 2D);
  133.  
  134.                         if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D && par1World.getBlockId(l1, i2, j2) == Block.sand.blockID)
  135.                         {
  136.                             par1World.setBlock(l1, i2, j2, minableBlockId);
  137.                         }
  138.                     }
  139.                 }
  140.             }
  141.         }
  142.  
  143.         return true;
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment