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 }