public ShapeDetector.ShapeDetectorCollection f(World var1, BlockPosition var2) { EnumDirection.EnumAxis var3 = EnumDirection.EnumAxis.Z; BlockPortal.Shape var4 = new BlockPortal.Shape(var1, var2, EnumDirection.EnumAxis.X); LoadingCache var5 = ShapeDetector.a(var1, true); if (!var4.d()) { var3 = EnumDirection.EnumAxis.X; var4 = new BlockPortal.Shape(var1, var2, EnumDirection.EnumAxis.Z); } if (!var4.d()) { return new ShapeDetector.ShapeDetectorCollection( var2, EnumDirection.NORTH, EnumDirection.UP, var5, 1, 1, 1); } else { int[] var6 = new int[EnumDirection.EnumAxisDirection.values().length]; EnumDirection var7 = var4.c.f(); BlockPosition var8 = var4.f.up(var4.a() - 1); EnumDirection.EnumAxisDirection[] var9 = EnumDirection.EnumAxisDirection.values(); int var10 = var9.length; int var11; for (var11 = 0; var11 < var10; ++var11) { EnumDirection.EnumAxisDirection var12 = var9[var11]; ShapeDetector.ShapeDetectorCollection var13 = new ShapeDetector.ShapeDetectorCollection( var7.c() == var12 ? var8 : var8.shift(var4.c, var4.b() - 1), EnumDirection.a(var12, var3), EnumDirection.UP, var5, var4.b(), var4.a(), 1); for (int var14 = 0; var14 < var4.b(); ++var14) { for (int var15 = 0; var15 < var4.a(); ++var15) { ShapeDetectorBlock var16 = var13.a(var14, var15, 1); if (var16.a() != null && var16.a().getBlock().getMaterial() != Material.AIR) { ++var6[var12.ordinal()]; } } } } EnumDirection.EnumAxisDirection var17 = EnumDirection.EnumAxisDirection.POSITIVE; EnumDirection.EnumAxisDirection[] var18 = EnumDirection.EnumAxisDirection.values(); var11 = var18.length; for (int var19 = 0; var19 < var11; ++var19) { EnumDirection.EnumAxisDirection var20 = var18[var19]; if (var6[var20.ordinal()] < var6[var17.ordinal()]) { var17 = var20; } } return new ShapeDetector.ShapeDetectorCollection( var7.c() == var17 ? var8 : var8.shift(var4.c, var4.b() - 1), EnumDirection.a(var17, var3), EnumDirection.UP, var5, var4.b(), var4.a(), 1); } }