SHARE
TWEET

Untitled

a guest Oct 20th, 2012 109 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     //world gen minable
  2.     package net.minecraft.src;
  3.     import java.io.*;
  4.     import java.util.*;
  5.     import net.minecraft.client.Minecraft; // remove for multiplayer server
  6.     import java.util.Random;
  7.     import java.util.Arrays;
  8.      
  9.     // Referenced classes of package net.minecraft.src:
  10.     //                      WorldGenerator, MathHelper, World, Block
  11.      
  12.     public class WorldGenMinable extends WorldGenerator
  13.     {
  14.  
  15.                 public WorldGenMinable(int i, int j)
  16.                 {
  17.                         minableBlockId = i;
  18.                 }
  19.  
  20.                 public WorldGenMinable(int id, int meta, int number)
  21.                 {
  22.                         this(id, number);
  23.                         minableBlockMeta = meta;
  24.                 }
  25.                
  26.                 public boolean generateBeforeCheck() // takes a set of current global variables and checks to see if this ore has spawned before in this chunk
  27.                 {
  28.                         genBeforeCheck = false;
  29.                         genBeforeCheck = oreList.contains(Arrays.asList(MPBlockID, minableBlockMeta));
  30.  
  31.                         if(oreList.contains(Arrays.asList(MPBlockID, minableBlockMeta)) == false)
  32.                         {
  33.                                 oreList.add(Arrays.asList(MPBlockID, minableBlockMeta));
  34.                                
  35.                         }
  36.                         return genBeforeCheck;
  37.                 }
  38.                
  39.                 public boolean generate(World world, Random random, int i, int j, int k)//obsorb default system
  40.                 {
  41.                         configDirectory = new File(Minecraft.getMinecraftDir() + "");// used for switching the code to multiplayer
  42.                         //configDirectory = new File(new File(".").getAbsolutePath()); // used for switching the code to multiplayer   
  43.  
  44.                         // System.out.println(" 1: call "+minableBlockId+":"+minableBlockMeta); // for debugging
  45.                         randomOut = random;     // pad the seed so it's the same as vannila
  46.                         randomOut.nextFloat(); //   |
  47.                         randomOut.nextInt(3);  //   |                          
  48.                         randomOut.nextInt(3);  //   |
  49.                         randomOut.nextDouble();//   |
  50.                         if (minableBlockId==3)// this makes sure everything is on a once per ore gen basis, because dirt generates first it sets everything up
  51.                         {      
  52.                                 //System.out.println(" 1.2: found dirt, setting up"); /// for debugging
  53.                                 MPChunk_X =((i / 16) * 16);// set output chunk x // snap to grid
  54.                                 MPChunk_Z =((k / 16) * 16);// set output chunk z    
  55.                                                    
  56.         /*----*/    Random randomz = new Random(world.getSeed()); // setup a random for BOD
  57.                                 long l = (randomz.nextLong() / 2L) * 2L + 1L;                       // |
  58.                                 long l1 = (randomz.nextLong() / 2L) * 2L + 1L;                      // |
  59.                                 randomz.setSeed((long)i * l + (long)j * l1 ^ world.getSeed());      // |
  60.         /*----*/    rand = randomz;
  61.  
  62.                                 worldObj = world; // set world
  63.                                 mineCount = 0; // this is a new chunk, so list gets set to the beginning
  64.                            
  65.                                 oreList.clear(); // clear the list of ores, this is a new chunk
  66.                                                            
  67.                         }
  68.                         MPBlockID = minableBlockId;// set output block ID
  69.                         if(MPChunk_X != MPPrevX || MPChunk_Z != MPPrevZ || MPPrevID != MPBlockID || minableBlockMeta != MPPrevMeta)// if it is a new x or y chunk, then generate // blockID stops dirt
  70.                         {
  71.                                 //System.out.println(" 2: allowed ore chunk prev test"); /// for debugging
  72.                                
  73.                                 if (generateBeforeCheck() == false)
  74.                                 {
  75.                                         //System.out.println(" 2.2: procede with gen"); /// for debugging315 56 298
  76.                                         MPPrevX = MPChunk_X;
  77.                                         MPPrevZ = MPChunk_Z;
  78.                                         x_Chunk = MPChunk_X;
  79.                                         z_Chunk = MPChunk_Z;
  80.                                         MPPrevID = MPBlockID;
  81.                                         MPPrevMeta = minableBlockMeta;
  82.                                         mineGen = 1;
  83.                                         subMineGen = 1;
  84.                                    
  85.                                         BODFile = new File(configDirectory + "/BODprops/" + versionNum + "BOD-Mine[1.1].txt");
  86.                                         BODFileOres = BODFile;
  87.                                         BODbiomesFile = new File(configDirectory + "/BODprops/" + versionNum + "BODbiomes-Mine[1.1].txt");
  88.                                         File f=new File(configDirectory + "/BODprops"); // remove minecraft directy portion for multiplayer
  89.                                         if(f.exists()==false)
  90.                                         {
  91.                                                 f.mkdirs();
  92.                                         }
  93.  
  94.                                         if(BODFile.exists()==false)
  95.                                         {
  96.                                                 writeBOD(BODFile);
  97.                                                 //System.out.println("write BODprops"); /// for debugging
  98.                                         }
  99.                                         if(BODbiomesFile.exists()==false)
  100.                                         {
  101.                                                 writeBODbiomes(BODbiomesFile);
  102.                                                 //System.out.println("write BODbiomes"); /// for debugging
  103.                                         }      
  104.                                                    
  105.                                         while(BODFile.exists())
  106.                                         {
  107.                                                 //System.out.println(" 2.3: bod file exists, checking rarity random"); /// for debugging
  108.                                                 betterOreDistribution(x_Chunk, z_Chunk, MPBlockID, minableBlockMeta); // gather ore gen values from .txt
  109.                                            
  110.                                                 if (rarity > 0){rarity = mPBiomeRarity(rarity, x_Chunk, z_Chunk, MPBlockID);} // retrieve rarity for this ore in this biome
  111.                                                 if (rarity == 1 || rarity > 0 && rand.nextInt(rarity) == 0 ) // use values
  112.                                                 {
  113.                                                         //System.out.println(" 2.3.1: rarity passed"); /// for debugging
  114.                                                         while(BODFile.exists())
  115.                                                         {                                      
  116.                                                                 //System.out.println(" 2.3.2: other bod file works"); /// for debugging
  117.                                                                 betterOreDistribution(x_Chunk, z_Chunk, MPBlockID, minableBlockMeta); // gather ore gen values from .txt
  118.                                                                 System.out.println("makin a mine at " + (MPChunk_X / 16) + "," + (MPChunk_Z / 16) + ", id " + MPBlockID + "." + minableBlockMeta/* + "-" + MPPrevID3 + "-" + MPPrevID4*/ + ", settings: R " + rarity + ", VS " + veinSi + ", VA " + veinAm + ", H " + height + ", D " + diameter + ", VD " + vDens + ", HD " + hDens); // used for debugging
  119.                                                                 //System.out.println("generate veins"); /// for debugging
  120.                                                                 for(int loopCount = 0; loopCount < veinAm; loopCount++)
  121.                                                                 {
  122.                                                                         int temp1 = mPCalculateDensity(diameter, hDens);
  123.                                                                         int temp2 = mineHeight + mPCalculateDensity(height, vDens);
  124.                                                                         int temp3 = mPCalculateDensity(diameter, hDens);
  125.                                                                         int l5 = x_Chunk + temp1;
  126.                                                                         int i9 = temp2;
  127.                                                                         int k13 = z_Chunk + temp3;
  128.                                                                         BODgenerate(worldObj, rand, l5, i9, k13, veinSi); // generate based on values
  129.                                                                        
  130.                                                                 }
  131.                            
  132.                                                                 subMineGen++;
  133.                                                                 BODFile = new File(configDirectory + "/BODprops/" + versionNum + "BOD-Mine["+ mineGen +"."+ subMineGen +"].txt");
  134.                                                         }
  135.                                                 }
  136.                                                 subMineGen = 1;
  137.                                                 mineGen++;
  138.                                                 BODFile = new File(configDirectory + "/BODprops/" + versionNum + "BOD-Mine["+ mineGen +"."+ subMineGen +"].txt");
  139.                                         }
  140.                                 }
  141.                                 //else{System.out.println(" checked, and genned before!");}// for debugging
  142.                         }
  143.                         return true;
  144.                 }
  145.            
  146.                 public int mPCalculateDensity(int oreDistance, float oreDensity) // returns the density value
  147.                 {
  148.  
  149.                         int loopCount = 0;
  150.                         int densityValuePassInner = 0;
  151.                         int densityValuePass = 0;
  152.                         oreDensity = oreDensity * .01F;
  153.                         oreDensity = (oreDensity * (oreDistance >> 1)) + 1F;// establishes number of times to loop
  154.                         loopCount = (int)(oreDensity); //stores number of times to loop
  155.                         densityValuePassInner = (int)((oreDistance/oreDensity)+.5F); // distance devided by number of times it will loop, establishes the number for randomization
  156.                         densityValuePass = 0;
  157.                         while (loopCount > 0) // loops to acumulate random values
  158.                         {
  159.                                 densityValuePass = densityValuePass + rand.nextInt(densityValuePassInner); // acumulate randoms
  160.                                 loopCount = loopCount - 1; // decriment loop
  161.                         }
  162.                         return densityValuePass; // return proccesed random value
  163.                 }
  164.            
  165.                 public int mPBiomeRarity(int biomeRar, int xChunkBio, int zChunkBio, int MPMinableBlockId)
  166.                 {
  167.                
  168.                        
  169.                         if(worldObj.getWorldChunkManager() != null)
  170.                         {
  171.                                 worldChunkManager = worldObj.getWorldChunkManager();
  172.                                 BiomeGenBase biomegenbase = worldChunkManager.getBiomeGenAt(xChunkBio, zChunkBio);
  173.                                
  174.                                 Properties props = new Properties();
  175.                                 int biomeVals = rarity;
  176.                                 String valPass = "1";
  177.                                 String valPassB = "1";
  178.                                 int inc1 = 1;
  179.                                 try
  180.                                 {
  181.                                         BODbiomesFile = new File(configDirectory + "/BODprops/" + versionNum + "BODbiomes-Mine["+ mineGen +"."+ subMineGen +"].txt"); // setup file // remove  the minecraft directory portion for multiplayer
  182.                                         if(BODbiomesFile.exists())
  183.                                         {
  184.                                                 props.load(new FileInputStream(BODbiomesFile));
  185.        
  186.                                                 valPass = String.valueOf("OreID[" + MPMinableBlockId + "." + minableBlockMeta + "]-BiomeID[" + biomegenbase.biomeID + "]");
  187.        
  188.                                                 if (props.getProperty(valPass)!= null) // make sure it exists first
  189.                                                 {
  190.                                                         valPassB = props.getProperty(valPass); // get new rarity value
  191.                                                         biomeVals = Integer.valueOf(valPassB);
  192.                                                 }
  193.                                         }
  194.                                 }
  195.                                 catch(IOException j)
  196.                                 {
  197.                                         System.out.println("couldnt load BODbiomes"); /// for debugging
  198.                                 }
  199.                                                                 /*try
  200.                                                                                 {
  201.                                                                                                 File List = new File(Minecraft.getMinecraftDir() + "/BODprops/(V2.4)BiomesList.txt"); // setup file // remove  the minecraft directory portion for multiplayer
  202.                                                                                                 props.load(new FileInputStream(List));
  203.                                                                                 }
  204.                                                                 catch(IOException g)
  205.                                                                 {
  206.                                                                                 try // Write Biome ID reference
  207.                                                                                                 {
  208.                                                                                                                 BufferedWriter out = new BufferedWriter(new FileWriter(BODFile));
  209.                                                                                                                 inc1 = 0;
  210.                                                                                                                 out.write("This file acts as a reference to all Biomes used currently." + "\r\n"  + "To refresh this list, delete this text file, and a new one will be made with updated biomes when new generation takes place");
  211.                                                                                                                 while (inc1 <= 255)
  212.                                                                                                                 {
  213.                                                                                                                 if(biomegenbase.biomeList[inc1] == null){ out.write("ID" + inc1 + ": unused ID" + "\r\n");}
  214.                                                                                                                 else
  215.                                                                                                                                 {
  216.                                                                                                                                                 out.write("Biome ID " + inc1 + ": " + biomegenbase.biomeList[inc1] + "\r\n");
  217.                                                                                                                                 }
  218.                                                                                                                 inc1++;
  219.                                                                                                                 }
  220.                                                                                                                 out.close();
  221.                                                                                                 }
  222.                                                                                 catch(IOException k){}
  223.                                                         }*/
  224.                                 if( valPass != null){biomeRar =  biomeVals ;}
  225.                                 else {biomeRar = rarity;}
  226.                                 return biomeRar;
  227.                         }
  228.                         else {return rarity;}
  229.                 }
  230.                    
  231.                 public boolean betterOreDistribution(int xChunk, int zChunk, int MPMinableBlockId, int MPMinableBlockMeta)
  232.                 {
  233.                         //System.out.println("assigning variables"); /// for debugging
  234.                         rarity = 2;
  235.                         veinSi = 2;
  236.                         veinAm = 2;
  237.                         height = 2;
  238.                         mineHeight = 2;
  239.                         diameter = 2;
  240.                         vDens = 2;
  241.                         hDens = 2;
  242.                         String valPass = "1";
  243.  
  244.                         Properties props = new Properties();
  245.                         //try retrieve data from file
  246.                         try
  247.                         {
  248.                            
  249.                                 BODFile = new File(configDirectory + "/BODprops/" + versionNum + "BOD-Mine["+ mineGen +"."+ subMineGen +"].txt");
  250.                                 if(BODFile.exists())
  251.                                 {
  252.                                         props.load(new FileInputStream(BODFile));
  253.                                         // assign value to ore variable only if it is not null
  254.  
  255.                                         String valPass1 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "Rarity");
  256.                                         String valPass2 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "VeinSize");
  257.                                         String valPass3 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "VeinAmount");
  258.                                         String valPass4 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "Height");
  259.                                         String valPass8 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "MineHeight");
  260.                                         String valPass5 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "Diameter");
  261.                                         String valPass6 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "VerticalDensity");
  262.                                         String valPass7 = String.valueOf(MPMinableBlockId + "." + MPMinableBlockMeta + "HorizontalDensity");
  263.                                         //System.out.println(MPMinableBlockId + "." + MPMinableBlockMeta + "HorizontalDensity"); /// for debugging
  264.  
  265.                                         if(mineGen == 1 && subMineGen == 1 )
  266.                                         {
  267.                                                 if (props.getProperty(valPass1)== null || props.getProperty(valPass2)== null || props.getProperty(valPass3)== null || props.getProperty(valPass4)== null || props.getProperty(valPass5)== null || props.getProperty(valPass6)== null || props.getProperty(valPass7)== null)
  268.                                                 {
  269.                                                         try
  270.                                                         {
  271.  
  272.                                                                 BufferedWriter out = new BufferedWriter(new FileWriter(BODFile,true));
  273.                                                                 out.write("#NewBlock" + MPMinableBlockId + "\r\n");
  274.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "Rarity=50" + "\r\n");
  275.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "VeinSize=10" + "\r\n");
  276.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "VeinAmount=70" + "\r\n");
  277.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "Height=95" + "\r\n");
  278.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "MineHeight=0" + "\r\n");
  279.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "Diameter=48" + "\r\n");
  280.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "VerticalDensity=10" + "\r\n");
  281.                                                                 out.write(MPMinableBlockId + "." + MPMinableBlockMeta + "HorizontalDensity=10" + "\r\n" + "\r\n");
  282.                                                                 out.close();
  283.                                                                 //System.out.println(MPMinableBlockId + "." + MPMinableBlockMeta + "HorizontalDensity=10"); /// for debugging
  284.                                                         }
  285.                                                         catch (IOException h)
  286.                                                         {
  287.                                                                 System.out.println("couldnt write in new ore settings for ore" + MPMinableBlockId + "." + MPMinableBlockMeta); /// for debugging
  288.                                                         }
  289.                                                 }
  290.                                         }
  291.                                         if (props.getProperty(valPass1)!= null){
  292.                                         valPass = props.getProperty(valPass1); // rarity
  293.                                         rarity = Integer.valueOf(valPass) ; }
  294.                                    
  295.                                         if (props.getProperty(valPass2) != null){
  296.                                         valPass = props.getProperty(valPass2); // size
  297.                                         veinSi = Integer.valueOf(valPass) ; }
  298.                                    
  299.                                         if (props.getProperty(valPass3) != null){
  300.                                         valPass = props.getProperty(valPass3); // amount
  301.                                         veinAm = Integer.valueOf(valPass) ;      }
  302.                                    
  303.                                         if (props.getProperty(valPass4) != null){
  304.                                         valPass = props.getProperty(valPass4); // height
  305.                                         height = Integer.valueOf(valPass) ;      }
  306.                                    
  307.                                         if (props.getProperty(valPass8) != null){
  308.                                         valPass = props.getProperty(valPass8); // mineHeight
  309.                                         mineHeight = Integer.valueOf(valPass) ;      }
  310.                                    
  311.                                         if (props.getProperty(valPass5) != null){
  312.                                         valPass = props.getProperty(valPass5); // diameter
  313.                                         diameter = Integer.valueOf(valPass) ; }
  314.                                    
  315.                                         if (props.getProperty(valPass6) != null){
  316.                                         valPass = props.getProperty(valPass6); // vertical dense.
  317.                                         vDens = Integer.valueOf(valPass) ; }
  318.                                    
  319.                                         if (props.getProperty(valPass7) != null){
  320.                                         valPass = props.getProperty(valPass7); // horiz. dense.
  321.                                         hDens = Integer.valueOf(valPass) ; }
  322.                                 }
  323.                                 //else{System.out.println("couldnt assign variables, BODfile doesnt exist: " + BODFile);} /// for debugging}
  324.                         }                              
  325.  
  326.                         //catch exception in case properties file does not exist
  327.                         catch(IOException e)
  328.                         {
  329.                                         System.out.println("assigning variables had an exception!!!"); /// for debugging
  330.                         }  
  331.                          // all variables set, continue to generate
  332.                         return true;
  333.                 }
  334.                    
  335.                 public boolean BODgenerate(World world, Random rand, int par3, int par4, int par5, int xyz)
  336.                 {
  337.  
  338.                         //==========================================mp mod
  339.                         numberOfBlocks = xyz; //input number of blocks per vein
  340.  
  341.                         //==========================================mp mod
  342.                         float var6 = rand.nextFloat() * (float)Math.PI;
  343.                         double var7 = (double)((float)(par3 + 8) + MathHelper.sin(var6) * (float)numberOfBlocks / 8.0F);
  344.                         double var9 = (double)((float)(par3 + 8) - MathHelper.sin(var6) * (float)numberOfBlocks / 8.0F);
  345.                         double var11 = (double)((float)(par5 + 8) + MathHelper.cos(var6) * (float)numberOfBlocks / 8.0F);
  346.                         double var13 = (double)((float)(par5 + 8) - MathHelper.cos(var6) * (float)numberOfBlocks / 8.0F);
  347.                         double var15 = (double)(par4 + rand.nextInt(3) - 2);
  348.                         double var17 = (double)(par4 + rand.nextInt(3) - 2);
  349.  
  350.                         for (int var19 = 0; var19 <= numberOfBlocks; ++var19)
  351.                         {
  352.                                 double var20 = var7 + (var9 - var7) * (double)var19 / (double)numberOfBlocks;
  353.                                 double var22 = var15 + (var17 - var15) * (double)var19 / (double)numberOfBlocks;
  354.                                 double var24 = var11 + (var13 - var11) * (double)var19 / (double)numberOfBlocks;
  355.                                 double var26 = rand.nextDouble() * (double)this.numberOfBlocks / 16.0D;
  356.                                 double var28 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)numberOfBlocks) + 1.0F) * var26 + 1.0D;
  357.                                 double var30 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)numberOfBlocks) + 1.0F) * var26 + 1.0D;
  358.                                 int var32 = MathHelper.floor_double(var20 - var28 / 2.0D);
  359.                                 int var33 = MathHelper.floor_double(var22 - var30 / 2.0D);
  360.                                 int var34 = MathHelper.floor_double(var24 - var28 / 2.0D);
  361.                                 int var35 = MathHelper.floor_double(var20 + var28 / 2.0D);
  362.                                 int var36 = MathHelper.floor_double(var22 + var30 / 2.0D);
  363.                                 int var37 = MathHelper.floor_double(var24 + var28 / 2.0D);
  364.  
  365.                                 for (int var38 = var32; var38 <= var35; ++var38)
  366.                                 {
  367.                                         double var39 = ((double)var38 + 0.5D - var20) / (var28 / 2.0D);
  368.  
  369.                                         if (var39 * var39 < 1.0D)
  370.                                         {
  371.                                                 for (int var41 = var33; var41 <= var36; ++var41)
  372.                                                 {
  373.                                                         double var42 = ((double)var41 + 0.5D - var22) / (var30 / 2.0D);
  374.  
  375.                                                         if (var39 * var39 + var42 * var42 < 1.0D)
  376.                                                         {
  377.                                                                 for (int var44 = var34; var44 <= var37; ++var44)
  378.                                                                 {
  379.                                                                         double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D);
  380.  
  381.                                                                         Block block = Block.blocksList[world.getBlockId(var38, var41, var44)];
  382.                                                                         //if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && (block != null && block.isGenMineableReplaceable(par1World, var38, var41, var44)))
  383.                                                                         if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && (block != null && (world.getBlockId(var38, var41, var44) == Block.stone.blockID || world.getBlockId(var38, var41, var44) == 87 || world.getBlockId(var38, var41, var44) == 121)))
  384.                                                                         {
  385.                                                                                 world.setBlockAndMetadata(var38, var41, var44, minableBlockId, minableBlockMeta);
  386.                                                                                 //System.out.println("block at " + var38 +" "+var41+" "+var44); /// for debugging
  387.                                                                         }
  388.                                                                 }
  389.                                                         }
  390.                                                 }
  391.                                         }
  392.                                 }
  393.                         }
  394.                         //System.out.println("a vein was placed " + minableBlockId + "." + minableBlockMeta+ " at " + par3 +" "+par4+" "+par5); /// for debugging
  395.                         return true;
  396.                 }
  397.      
  398.                 public boolean writeBOD(File writeTo)
  399.                 {
  400.                         try // write BOD(<version>).txt
  401.                         {
  402.                                 BufferedWriter out = new BufferedWriter(new FileWriter(writeTo));
  403.                                 out.write("#see forum for more instructions: http://www.minecraftforum.net/topic/330485-132spsmp-marcopolos-mods-better-ore-distributionv25beta3-trap-friendly-cactus-and-practical-tnt/" + "\r\n");
  404.                                 out.write("#format X.Ysetting=Z" + "\r\n");
  405.                                 out.write("# X = block ID" + "\r\n");
  406.                                 out.write("# Y = meta data" + "\r\n");
  407.                                 out.write("# Z = value for setting" + "\r\n");
  408.                                
  409.                                 out.write("#Dirt" + "\r\n"); // dirt
  410.                                 out.write("3.0Rarity=50" + "\r\n");
  411.                                 out.write("3.0VeinSize=30" + "\r\n");
  412.                                 out.write("3.0VeinAmount=17" + "\r\n");
  413.                                 out.write("3.0Height=128" + "\r\n");
  414.                                 out.write("3.0MineHeight=0" + "\r\n");
  415.                                 out.write("3.0Diameter=32" + "\r\n");
  416.                                 out.write("3.0VerticalDensity=15" + "\r\n");
  417.                                 out.write("3.0HorizontalDensity=10" + "\r\n" + "\r\n");
  418.                    
  419.                                 out.write("#Gravel" + "\r\n"); // gravel
  420.                                 out.write("13.0Rarity=50" + "\r\n");
  421.                                 out.write("13.0VeinSize=30" + "\r\n");
  422.                                 out.write("13.0VeinAmount=17" + "\r\n");
  423.                                 out.write("13.0Height=128" + "\r\n");
  424.                                 out.write("13.0MineHeight=0" + "\r\n");
  425.                                 out.write("13.0Diameter=32" + "\r\n");
  426.                                 out.write("13.0VerticalDensity=15" + "\r\n");
  427.                                 out.write("13.0HorizontalDensity=10" + "\r\n" + "\r\n");
  428.                                
  429.                                 out.write("#Gold" + "\r\n"); // gold
  430.                                 out.write("14.0Rarity=140" + "\r\n");
  431.                                 out.write("14.0VeinSize=8" + "\r\n");
  432.                                 out.write("14.0VeinAmount=135" + "\r\n");
  433.                                 out.write("14.0Height=80" + "\r\n");
  434.                                 out.write("14.0MineHeight=0" + "\r\n");
  435.                                 out.write("14.0Diameter=60" + "\r\n");
  436.                                 out.write("14.0VerticalDensity=20" + "\r\n");
  437.                                 out.write("14.0HorizontalDensity=10" + "\r\n" + "\r\n");
  438.                                  
  439.                                 out.write("#Iron" + "\r\n"); // Iron
  440.                                 out.write("15.0Rarity=75" + "\r\n");
  441.                                 out.write("15.0VeinSize=8" + "\r\n");
  442.                                 out.write("15.0VeinAmount=220" + "\r\n");
  443.                                 out.write("15.0Height=80" + "\r\n");
  444.                                 out.write("15.0MineHeight=0" + "\r\n");
  445.                                 out.write("15.0Diameter=65" + "\r\n");
  446.                                 out.write("15.0VerticalDensity=15" + "\r\n");
  447.                                 out.write("15.0HorizontalDensity=15" + "\r\n" + "\r\n");
  448.                                
  449.                                 out.write("#Coal" + "\r\n"); // coal
  450.                                 out.write("16.0Rarity=95" + "\r\n");
  451.                                 out.write("16.0VeinSize=7" + "\r\n");
  452.                                 out.write("16.0VeinAmount=300" + "\r\n");
  453.                                 out.write("16.0Height=2" + "\r\n");
  454.                                 out.write("16.0MineHeight=45" + "\r\n");
  455.                                 out.write("16.0Diameter=70" + "\r\n");
  456.                                 out.write("16.0VerticalDensity=85" + "\r\n");
  457.                                 out.write("16.0HorizontalDensity=10" + "\r\n" + "\r\n");
  458.                                    
  459.                                 out.write("#Lapis" + "\r\n"); // lapis
  460.                                 out.write("21.0Rarity=225" + "\r\n");
  461.                                 out.write("21.0VeinSize=8" + "\r\n");
  462.                                 out.write("21.0VeinAmount=200" + "\r\n");
  463.                                 out.write("21.0Height=50" + "\r\n");
  464.                                 out.write("21.0MineHeight=0" + "\r\n");
  465.                                 out.write("21.0Diameter=70" + "\r\n");
  466.                                 out.write("21.0VerticalDensity=20" + "\r\n");
  467.                                 out.write("21.0HorizontalDensity=10" + "\r\n" + "\r\n");
  468.                                
  469.                                 out.write("#Diamond" + "\r\n"); // daimond
  470.                                 out.write("56.0Rarity=160" + "\r\n");
  471.                                 out.write("56.0VeinSize=8" + "\r\n");
  472.                                 out.write("56.0VeinAmount=220" + "\r\n");
  473.                                 out.write("56.0Height=70" + "\r\n");
  474.                                 out.write("56.0MineHeight=0" + "\r\n");
  475.                                 out.write("56.0Diameter=70" + "\r\n");
  476.                                 out.write("56.0VerticalDensity=20" + "\r\n");
  477.                                 out.write("56.0HorizontalDensity=10" + "\r\n" + "\r\n");
  478.                                
  479.                                 out.write("#Redstone" + "\r\n"); // redstone
  480.                                 out.write("73.0Rarity=110" + "\r\n");
  481.                                 out.write("73.0VeinSize=12" + "\r\n");
  482.                                 out.write("73.0VeinAmount=160" + "\r\n");
  483.                                 out.write("73.0Height=12" + "\r\n");
  484.                                 out.write("73.0MineHeight=0" + "\r\n");
  485.                                 out.write("73.0Diameter=160" + "\r\n");
  486.                                 out.write("73.0VerticalDensity=20" + "\r\n");
  487.                                 out.write("73.0HorizontalDensity=5" + "\r\n" + "\r\n");
  488.                                 out.close();
  489.                         }
  490.                         catch (IOException f)
  491.                         {
  492.                                 System.out.println("could not write BODprops"); /// for debugging
  493.                         }
  494.                         return true;
  495.                 }
  496.                    
  497.                 public boolean writeBODbiomes(File writeTo)
  498.                 {
  499.                         try
  500.                         {
  501.                                 BufferedWriter out = new BufferedWriter(new FileWriter(writeTo));
  502.                                 out.write("# 3.0=dirt, 13.0=gravel, 14.0=gold, 15.0=iron, 16.0=coal, 21.0=lapis, 56.0=diamond, 73.0=redstone" + "\r\n");
  503.                                 out.write("\r\n");
  504.                                 out.write("# ------------------------------------------------------------"+"\r\n");
  505.                                 out.write("# format is OreID[X.Xo]-BiomeID[Y]=Z" + "\r\n");
  506.                                 out.write("# X = Ore ID"+"\r\n");
  507.                                 out.write("# Xo = meta data for Ore ID"+"\r\n");
  508.                                 out.write("# Y = Biome ID"+"\r\n");
  509.                                 out.write("# Z = the rarity you want for that ore in that biome"+"\r\n");
  510.                                 out.write("# ------------------------------------------------------------"+"\r\n");
  511.                                 out.write("\r\n");
  512.                                 out.write("#-----------Ocean 0" + "\r\n");
  513.                                 out.write("OreID[21.0]-BiomeID[0]=75" + "\r\n");
  514.                                 out.write("\r\n");
  515.                            
  516.                                 out.write("#-----------Plains 1" + "\r\n");
  517.                                 out.write("OreID[3.0]-BiomeID[1]=25" + "\r\n");
  518.                                 out.write("\r\n");
  519.                            
  520.                                 out.write("#-----------Desert 2" + "\r\n");
  521.                                 out.write("OreID[15.0]-BiomeID[2]=37" + "\r\n");
  522.                                 out.write("\r\n");
  523.                            
  524.                                 out.write("#-----------extremeHills 3" + "\r\n");
  525.                                 out.write("OreID[14.0]-BiomeID[3]=70" + "\r\n");
  526.                                 out.write("\r\n");
  527.                            
  528.                                 out.write("#-----------Forest 4" + "\r\n");
  529.                                 out.write("OreID[15.0]-BiomeID[4]=37" + "\r\n");
  530.                                 out.write("\r\n");
  531.                            
  532.                                 out.write("#-----------Taiga 5" + "\r\n");
  533.                                 out.write("OreID[16.0]-BiomeID[5]=42" + "\r\n");
  534.                                 out.write("\r\n");
  535.                            
  536.                                 out.write("#-----------Swampland 6" + "\r\n");
  537.                                 out.write("OreID[73.0]-BiomeID[6]=55" + "\r\n");
  538.                                 out.write("\r\n");
  539.                            
  540.                                 out.write("#-----------River 7" + "\r\n");
  541.                                 out.write("OreID[14.0]-BiomeID[7]=70" + "\r\n");
  542.                                 out.write("\r\n");
  543.                            
  544.                                 out.write("#-----------FrozenOcean 10" + "\r\n");
  545.                                 out.write("\r\n");
  546.                            
  547.                                 out.write("#-----------FrozenRiver 11" + "\r\n");
  548.                                 out.write("\r\n");
  549.                            
  550.                                 out.write("#-----------IcePlains 12" + "\r\n");
  551.                                 out.write("\r\n");
  552.                            
  553.                                 out.write("#-----------IceMountain 13" + "\r\n");
  554.                                 out.write("\r\n");
  555.                            
  556.                                 out.write("#-----------MushroomIsland 14" + "\r\n");
  557.                                 out.write("OreID[13.0]-BiomeID[14]=40" + "\r\n");
  558.                                 out.write("OreID[14.0]-BiomeID[14]=50" + "\r\n");
  559.                                 out.write("OreID[15.0]-BiomeID[14]=50" + "\r\n");
  560.                                 out.write("OreID[16.0]-BiomeID[14]=50" + "\r\n");
  561.                                 out.write("OreID[21.0]-BiomeID[14]=50" + "\r\n");
  562.                                 out.write("OreID[56.0]-BiomeID[14]=50" + "\r\n");
  563.                                 out.write("OreID[73.0]-BiomeID[14]=50" + "\r\n");
  564.                                 out.write("\r\n");
  565.                                 out.write("#-----------mushroomshore 15" + "\r\n");
  566.                                 out.write("\r\n");
  567.                                 out.write("#-----------Beach 16" + "\r\n");
  568.                                 out.write("\r\n");
  569.                                 out.write("#-----------DesertHills 17" + "\r\n");
  570.                                 out.write("\r\n");
  571.                                 out.write("#-----------ForestHills 18" + "\r\n");
  572.                                 out.write("\r\n");
  573.                                 out.write("#-----------taigaHills 19" + "\r\n");
  574.                                 out.write("\r\n");
  575.                                 out.write("#-----------ExtremeHillsEdge 20" + "\r\n");
  576.                                 out.write("\r\n");
  577.                                 out.write("#-----------Jungle 21" + "\r\n");
  578.                                 out.write("\r\n");
  579.                                 out.write("#-----------JungleHills 22" + "\r\n");
  580.                                 out.write("\r\n");
  581.                            
  582.                                 out.close();
  583.                         }
  584.                         catch(IOException i)
  585.                         {
  586.                                 System.out.println("could not write BODbiomes!!!"); /// for debugging
  587.                         }
  588.                         return true;
  589.                 }
  590.      
  591.                 //==========================================mp mod
  592.                 //private static int[] aOreCheck = new int[256];// setup array to store oreIDs for this chunk // has to be static to survive instance calls                
  593.                 //private static int[] metaOreCheck = new int[16];// this is used to check the metaIDs of a given ore ID
  594.                 private static ArrayList oreList = new ArrayList();
  595.                 public static int MPChunk_X;
  596.                 public static int MPChunk_Z;
  597.                 private int x_Chunk;
  598.                 private int z_Chunk;
  599.                 public int MPBlockID;
  600.                 private int minableBlockMeta;
  601.                 public static int MPPrevX;
  602.                 public static int MPPrevZ;
  603.                 public static int MPPrevID;
  604.                 public static int MPPrevMeta;
  605.                 //public static int MPPrevID3;
  606.                 //public static int MPPrevID4;
  607.                 private static boolean genBeforeCheck;
  608.                 public static int mineCount;
  609.                 public static int mineCountM;
  610.            
  611.                 private static Random randomOut;
  612.                 private static Random rand;
  613.                 private static World worldObj;
  614.                 private File BODFileOres;
  615.                 static File BODFile;
  616.                 static File configDirectory;
  617.                 static File BODbiomesFile;
  618.                 String versionNum = "V(2.5.2)";
  619.                 private static WorldChunkManager worldChunkManager;
  620.                 private static WorldChunkManagerHell worldChunkManagerHell;
  621.                
  622.                 private int mineGen = 1;
  623.                 private int subMineGen = 1;
  624.                 private int rarity = 2;
  625.                 private int veinSi = 2;
  626.                 private int veinAm = 2;
  627.                 private int height = 2;
  628.                 private int mineHeight = 2;
  629.                 private int diameter = 2;
  630.                 private int vDens = 2;
  631.                 private int hDens = 2;
  632.            
  633.                 //==========================================mp mod
  634.                 private int minableBlockId;
  635.                 private int numberOfBlocks;
  636. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top