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 }