001package net.minecraft.world.gen.structure;
002
003import java.util.List;
004import java.util.Random;
005import net.minecraft.block.Block;
006import net.minecraft.item.Item;
007import net.minecraft.util.WeightedRandomChestContent;
008
009public 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}