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.pickaxeIron.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 j1 = par1Random.nextInt(100); 017 StructureBoundingBox structureboundingbox; 018 019 if (j1 >= 80) 020 { 021 structureboundingbox = ComponentMineshaftCross.findValidPlacement(par0List, par1Random, par2, par3, par4, par5); 022 023 if (structureboundingbox != null) 024 { 025 return new ComponentMineshaftCross(par6, par1Random, structureboundingbox, par5); 026 } 027 } 028 else if (j1 >= 70) 029 { 030 structureboundingbox = ComponentMineshaftStairs.findValidPlacement(par0List, par1Random, par2, par3, par4, par5); 031 032 if (structureboundingbox != null) 033 { 034 return new ComponentMineshaftStairs(par6, par1Random, structureboundingbox, par5); 035 } 036 } 037 else 038 { 039 structureboundingbox = ComponentMineshaftCorridor.findValidPlacement(par0List, par1Random, par2, par3, par4, par5); 040 041 if (structureboundingbox != null) 042 { 043 return new ComponentMineshaftCorridor(par6, par1Random, structureboundingbox, 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 structurecomponent1 = getRandomComponent(par1List, par2Random, par3, par4, par5, par6, par7 + 1); 059 060 if (structurecomponent1 != null) 061 { 062 par1List.add(structurecomponent1); 063 structurecomponent1.buildComponent(par0StructureComponent, par1List, par2Random); 064 } 065 066 return structurecomponent1; 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}