private static StructureComponent GetNextValidComponent(ComponentStrongholdStairs2 par0ComponentStrongholdStairs2, List <StructureComponent> par1List, Random par2Random, int par3, int par4, int par5, int par6, int par7) { if (par7 > 50) { return(null); } if (Math.Abs(par3 - par0ComponentStrongholdStairs2.GetBoundingBox().MinX) > 112 || Math.Abs(par5 - par0ComponentStrongholdStairs2.GetBoundingBox().MinZ) > 112) { return(null); } ComponentStronghold componentstronghold = GetNextComponent(par0ComponentStrongholdStairs2, par1List, par2Random, par3, par4, par5, par6, par7 + 1); if (componentstronghold != null) { par1List.Add(componentstronghold); par0ComponentStrongholdStairs2.Field_35037_b.Add(componentstronghold); } return(componentstronghold); }
private static ComponentStronghold GetNextComponent(ComponentStrongholdStairs2 par0ComponentStrongholdStairs2, List <StructureComponent> par1List, Random par2Random, int par3, int par4, int par5, int par6, int par7) { if (!CanAddStructurePieces()) { return(null); } else { if (StrongComponentType != null) { ComponentStronghold var8 = GetStrongholdComponentFromWeightedPiece(StrongComponentType, par1List, par2Random, par3, par4, par5, par6, par7); StrongComponentType = null; if (var8 != null) { return(var8); } } int var13 = 0; while (var13 < 5) { ++var13; int var9 = par2Random.Next(TotalWeight); IEnumerator <StructureStrongholdPieceWeight> var10 = StructurePieceList.GetEnumerator(); while (var10.MoveNext()) { StructureStrongholdPieceWeight var11 = var10.Current; var9 -= var11.PieceWeight; if (var9 < 0) { if (!var11.CanSpawnMoreStructuresOfType(par7) || var11 == par0ComponentStrongholdStairs2.Field_35038_a) { break; } ComponentStronghold var12 = GetStrongholdComponentFromWeightedPiece(var11.PieceClass, par1List, par2Random, par3, par4, par5, par6, par7); if (var12 != null) { ++var11.InstancesSpawned; par0ComponentStrongholdStairs2.Field_35038_a = var11; if (!var11.CanSpawnMoreStructures()) { StructurePieceList.Remove(var11); } return(var12); } } } } StructureBoundingBox var14 = ComponentStrongholdCorridor.Func_35051_a(par1List, par2Random, par3, par4, par5, par6); if (var14 != null && var14.MinY > 1) { return(new ComponentStrongholdCorridor(par7, par2Random, var14, par6)); } else { return(null); } } }