public ComponentNetherBridgeStartPiece(Random par1Random, int par2, int par3) : base(par1Random, par2, par3) { Field_40034_d = new List <StructureComponent>(); Field_40035_b = new List <StructureNetherBridgePieceWeight>(); StructureNetherBridgePieceWeight[] astructurenetherbridgepieceweight = StructureNetherBridgePieces.GetPrimaryComponents(); int i = astructurenetherbridgepieceweight.Length; for (int j = 0; j < i; j++) { StructureNetherBridgePieceWeight structurenetherbridgepieceweight = astructurenetherbridgepieceweight[j]; structurenetherbridgepieceweight.Field_40698_c = 0; Field_40035_b.Add(structurenetherbridgepieceweight); } Field_40036_c = new List <StructureNetherBridgePieceWeight>(); astructurenetherbridgepieceweight = StructureNetherBridgePieces.GetSecondaryComponents(); i = astructurenetherbridgepieceweight.Length; for (int k = 0; k < i; k++) { StructureNetherBridgePieceWeight structurenetherbridgepieceweight1 = astructurenetherbridgepieceweight[k]; structurenetherbridgepieceweight1.Field_40698_c = 0; Field_40036_c.Add(structurenetherbridgepieceweight1); } }
private ComponentNetherBridgePiece GetNextComponent(ComponentNetherBridgeStartPiece par1ComponentNetherBridgeStartPiece, List <StructureNetherBridgePieceWeight> par2List, List <StructureComponent> par3List, Random par4Random, int par5, int par6, int par7, int par8, int par9) { int var10 = this.GetTotalWeight(par2List); bool var11 = var10 > 0 && par9 <= 30; int var12 = 0; while (var12 < 5 && var11) { ++var12; int var13 = par4Random.Next(var10); IEnumerator <StructureNetherBridgePieceWeight> var14 = par2List.GetEnumerator(); while (var14.MoveNext()) { StructureNetherBridgePieceWeight var15 = var14.Current; var13 -= var15.Field_40697_b; if (var13 < 0) { if (!var15.Func_40693_a(par9) || var15 == par1ComponentNetherBridgeStartPiece.Field_40037_a && !var15.Field_40696_e) { break; } ComponentNetherBridgePiece var16 = StructureNetherBridgePieces.CreateNextComponent(var15, par3List, par4Random, par5, par6, par7, par8, par9); if (var16 != null) { ++var15.Field_40698_c; par1ComponentNetherBridgeStartPiece.Field_40037_a = var15; if (!var15.Func_40694_a()) { par2List.Remove(var15); } return(var16); } } } } ComponentNetherBridgeEnd var17 = ComponentNetherBridgeEnd.Func_40023_a(par3List, par4Random, par5, par6, par7, par8, par9); return(var17); }