Advertisement
Guest User

Untitled

a guest
Mar 30th, 2011
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.59 KB | None | 0 0
  1. package net.minecraft.src;
  2. // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
  3. // Jad home page: http://www.kpdus.com/jad.html
  4. // Decompiler options: packimports(3) braces deadcode
  5.  
  6. import java.util.Random;
  7.  
  8. public class WorldGenDungeons extends WorldGenerator
  9. {
  10.  
  11.     public WorldGenDungeons()
  12.     {
  13.     }
  14.  
  15.     public boolean generate(World world, Random random, int i, int j, int k)
  16.     {
  17.         byte byte0 = 3;
  18.         int l = random.nextInt(2) + 2;
  19.         int i1 = random.nextInt(2) + 2;
  20.         int j1 = 0;
  21.         for(int k1 = i - l - 1; k1 <= i + l + 1; k1++)
  22.         {
  23.             for(int j2 = j - 1; j2 <= j + byte0 + 1; j2++)
  24.             {
  25.                 for(int i3 = k - i1 - 1; i3 <= k + i1 + 1; i3++)
  26.                 {
  27.                     Material material = world.getBlockMaterial(k1, j2, i3);
  28.                     if(j2 == j - 1 && !material.isSolid())
  29.                     {
  30.                         return false;
  31.                     }
  32.                     if(j2 == j + byte0 + 1 && !material.isSolid())
  33.                     {
  34.                         return false;
  35.                     }
  36.                     if((k1 == i - l - 1 || k1 == i + l + 1 || i3 == k - i1 - 1 || i3 == k + i1 + 1) && j2 == j && world.isAirBlock(k1, j2, i3) && world.isAirBlock(k1, j2 + 1, i3))
  37.                     {
  38.                         j1++;
  39.                     }
  40.                 }
  41.  
  42.             }
  43.  
  44.         }
  45.  
  46.         if(j1 < 1 || j1 > 5)
  47.         {
  48.             return false;
  49.         }
  50.         for(int l1 = i - l - 1; l1 <= i + l + 1; l1++)
  51.         {
  52.             for(int k2 = j + byte0; k2 >= j - 1; k2--)
  53.             {
  54.                 for(int j3 = k - i1 - 1; j3 <= k + i1 + 1; j3++)
  55.                 {
  56.                     if(l1 == i - l - 1 || k2 == j - 1 || j3 == k - i1 - 1 || l1 == i + l + 1 || k2 == j + byte0 + 1 || j3 == k + i1 + 1)
  57.                     {
  58.                         if(k2 >= 0 && !world.getBlockMaterial(l1, k2 - 1, j3).isSolid())
  59.                         {
  60.                             world.setBlockWithNotify(l1, k2, j3, 0);
  61.                             continue;
  62.                         }
  63.                         if(!world.getBlockMaterial(l1, k2, j3).isSolid())
  64.                         {
  65.                             continue;
  66.                         }
  67.                         if(k2 == j - 1 && random.nextInt(4) != 0)
  68.                         {
  69.                             world.setBlockWithNotify(l1, k2, j3, Block.cobblestoneMossy.blockID);
  70.                         } else
  71.                         {
  72.                             world.setBlockWithNotify(l1, k2, j3, Block.cobblestone.blockID);
  73.                         }
  74.                     } else
  75.                     {
  76.                         world.setBlockWithNotify(l1, k2, j3, 0);
  77.                     }
  78.                 }
  79.  
  80.             }
  81.  
  82.         }
  83.  
  84.         for(int i2 = 0; i2 < 2; i2++)
  85.         {
  86. label0:
  87.             for(int l2 = 0; l2 < 3; l2++)
  88.             {
  89.                 int k3 = (i + random.nextInt(l * 2 + 1)) - l;
  90.                 int l3 = j;
  91.                 int i4 = (k + random.nextInt(i1 * 2 + 1)) - i1;
  92.                 if(!world.isAirBlock(k3, l3, i4))
  93.                 {
  94.                     continue;
  95.                 }
  96.                 int j4 = 0;
  97.                 if(world.getBlockMaterial(k3 - 1, l3, i4).isSolid())
  98.                 {
  99.                     j4++;
  100.                 }
  101.                 if(world.getBlockMaterial(k3 + 1, l3, i4).isSolid())
  102.                 {
  103.                     j4++;
  104.                 }
  105.                 if(world.getBlockMaterial(k3, l3, i4 - 1).isSolid())
  106.                 {
  107.                     j4++;
  108.                 }
  109.                 if(world.getBlockMaterial(k3, l3, i4 + 1).isSolid())
  110.                 {
  111.                     j4++;
  112.                 }
  113.                 if(j4 != 1)
  114.                 {
  115.                     continue;
  116.                 }
  117.                 world.setBlockWithNotify(k3, l3, i4, Block.crate.blockID);
  118.                 TileEntityChest tileentitychest = (TileEntityChest)world.getBlockTileEntity(k3, l3, i4);
  119.                 int k4 = 0;
  120.                 do
  121.                 {
  122.                     if(k4 >= 8)
  123.                     {
  124.                         break label0;
  125.                     }
  126.                     ItemStack itemstack = pickCheckLootItem(random);
  127.                     if(itemstack != null)
  128.                     {
  129.                         tileentitychest.setInventorySlotContents(random.nextInt(tileentitychest.getSizeInventory()), itemstack);
  130.                     }
  131.                     k4++;
  132.                 } while(true);
  133.             }
  134.  
  135.         }
  136.  
  137.         world.setBlockWithNotify(i, j, k, Block.mobSpawner.blockID);
  138.         TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getBlockTileEntity(i, j, k);
  139.         tileentitymobspawner.setMobID(pickMobSpawner(random));
  140.         return true;
  141.     }
  142.  
  143.     private ItemStack pickCheckLootItem(Random random)
  144.     {
  145.         int i = random.nextInt(11);
  146.         if(i == 0)
  147.         {
  148.             return new ItemStack(Item.saddle);
  149.         }
  150.         if(i == 1)
  151.         {
  152.             return new ItemStack(Item.ingotIron, random.nextInt(4) + 1);
  153.         }
  154.         if(i == 2)
  155.         {
  156.             return new ItemStack(Item.bread);
  157.         }
  158.         if(i == 3)
  159.         {
  160.             return new ItemStack(Item.wheat, random.nextInt(4) + 1);
  161.         }
  162.         if(i == 4)
  163.         {
  164.             return new ItemStack(Item.gunpowder, random.nextInt(4) + 1);
  165.         }
  166.         if(i == 5)
  167.         {
  168.             return new ItemStack(Item.silk, random.nextInt(4) + 1);
  169.         }
  170.         if(i == 6)
  171.         {
  172.             return new ItemStack(Item.bucketEmpty);
  173.         }
  174.         if(i == 7 && random.nextInt(100) == 0)
  175.         {
  176.             return new ItemStack(Item.appleGold);
  177.         }
  178.         if(i == 8 && random.nextInt(2) == 0)
  179.         {
  180.             return new ItemStack(Item.redstone, random.nextInt(4) + 1);
  181.         }
  182.         if(i == 9 && random.nextInt(10) == 0)
  183.         {
  184.             return new ItemStack(Item.itemsList[Item.record13.shiftedIndex + random.nextInt(2)]);
  185.         } else
  186.         {
  187.             return null;
  188.         }
  189.     }
  190.  
  191.     private String pickMobSpawner(Random random)
  192.     {
  193.         int i = random.nextInt(4);
  194.         if(i == 0)
  195.         {
  196.             return "Skeleton";
  197.         }
  198.         if(i == 1)
  199.         {
  200.             return "Zombie";
  201.         }
  202.         if(i == 2)
  203.         {
  204.             return "Zombie";
  205.         }
  206.         if(i == 3)
  207.         {
  208.             return "Spider";
  209.         } else
  210.         {
  211.             return "";
  212.         }
  213.     }
  214. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement