drackiseries

Nether Ores Generation

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