    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.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)};
    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    }