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    }