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