001 package net.minecraft.world.gen.structure;
002
003 import java.util.List;
004 import java.util.Random;
005 import net.minecraft.block.Block;
006 import net.minecraft.item.Item;
007 import net.minecraft.util.WeightedRandomChestContent;
008
009 public class StructureMineshaftPieces
010 {
011 /** List of contents that can generate in Mineshafts. */
012 public static final WeightedRandomChestContent[] mineshaftChestContents = new WeightedRandomChestContent[] {new WeightedRandomChestContent(Item.ingotIron.itemID, 0, 1, 5, 10), new WeightedRandomChestContent(Item.ingotGold.itemID, 0, 1, 3, 5), new WeightedRandomChestContent(Item.redstone.itemID, 0, 4, 9, 5), new WeightedRandomChestContent(Item.dyePowder.itemID, 4, 4, 9, 5), new WeightedRandomChestContent(Item.diamond.itemID, 0, 1, 2, 3), new WeightedRandomChestContent(Item.coal.itemID, 0, 3, 8, 10), new WeightedRandomChestContent(Item.bread.itemID, 0, 1, 3, 15), new WeightedRandomChestContent(Item.pickaxeSteel.itemID, 0, 1, 1, 1), new WeightedRandomChestContent(Block.rail.blockID, 0, 4, 8, 1), new WeightedRandomChestContent(Item.melonSeeds.itemID, 0, 2, 4, 10), new WeightedRandomChestContent(Item.pumpkinSeeds.itemID, 0, 2, 4, 10)};
013
014 private static StructureComponent getRandomComponent(List par0List, Random par1Random, int par2, int par3, int par4, int par5, int par6)
015 {
016 int var7 = par1Random.nextInt(100);
017 StructureBoundingBox var8;
018
019 if (var7 >= 80)
020 {
021 var8 = ComponentMineshaftCross.findValidPlacement(par0List, par1Random, par2, par3, par4, par5);
022
023 if (var8 != null)
024 {
025 return new ComponentMineshaftCross(par6, par1Random, var8, par5);
026 }
027 }
028 else if (var7 >= 70)
029 {
030 var8 = ComponentMineshaftStairs.findValidPlacement(par0List, par1Random, par2, par3, par4, par5);
031
032 if (var8 != null)
033 {
034 return new ComponentMineshaftStairs(par6, par1Random, var8, par5);
035 }
036 }
037 else
038 {
039 var8 = ComponentMineshaftCorridor.findValidPlacement(par0List, par1Random, par2, par3, par4, par5);
040
041 if (var8 != null)
042 {
043 return new ComponentMineshaftCorridor(par6, par1Random, var8, par5);
044 }
045 }
046
047 return null;
048 }
049
050 private static StructureComponent getNextMineShaftComponent(StructureComponent par0StructureComponent, List par1List, Random par2Random, int par3, int par4, int par5, int par6, int par7)
051 {
052 if (par7 > 8)
053 {
054 return null;
055 }
056 else if (Math.abs(par3 - par0StructureComponent.getBoundingBox().minX) <= 80 && Math.abs(par5 - par0StructureComponent.getBoundingBox().minZ) <= 80)
057 {
058 StructureComponent var8 = getRandomComponent(par1List, par2Random, par3, par4, par5, par6, par7 + 1);
059
060 if (var8 != null)
061 {
062 par1List.add(var8);
063 var8.buildComponent(par0StructureComponent, par1List, par2Random);
064 }
065
066 return var8;
067 }
068 else
069 {
070 return null;
071 }
072 }
073
074 static StructureComponent getNextComponent(StructureComponent par0StructureComponent, List par1List, Random par2Random, int par3, int par4, int par5, int par6, int par7)
075 {
076 return getNextMineShaftComponent(par0StructureComponent, par1List, par2Random, par3, par4, par5, par6, par7);
077 }
078
079 static WeightedRandomChestContent[] func_78816_a()
080 {
081 return mineshaftChestContents;
082 }
083 }