Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / AutoRecipeAbstract.java
package net.minecraft.server;

import java.util.Iterator;

public interface AutoRecipeAbstract<T> {

    default void a(int i, int j, int k, IRecipe<?> irecipe, Iterator<T> iterator, int l) {
        int i1 = i;
        int j1 = j;

        if (irecipe instanceof ShapedRecipes) {
            ShapedRecipes shapedrecipes = (ShapedRecipes) irecipe;

            i1 = shapedrecipes.i();
            j1 = shapedrecipes.j();
        }

        int k1 = 0;
        int l1 = 0;

        while (l1 < j) {
            if (k1 == k) {
                ++k1;
            }

            boolean flag = (float) j1 < (float) j / 2.0F;
            int i2 = MathHelper.d((float) j / 2.0F - (float) j1 / 2.0F);

            if (flag && i2 > l1) {
                k1 += i;
                ++l1;
            }

            int j2 = 0;

            while (true) {
                if (j2 < i) {
                    label76:
                    {
                        if (!iterator.hasNext()) {
                            return;
                        }

                        flag = (float) i1 < (float) i / 2.0F;
                        i2 = MathHelper.d((float) i / 2.0F - (float) i1 / 2.0F);
                        int k2 = i1;
                        boolean flag1 = j2 < i1;

                        if (flag) {
                            k2 = i2 + i1;
                            flag1 = i2 <= j2 && j2 < i2 + i1;
                        }

                        if (flag1) {
                            this.a(iterator, k1, l, l1, j2);
                        } else if (k2 == j2) {
                            k1 += i - j2;
                            break label76;
                        }

                        ++k1;
                        ++j2;
                        continue;
                    }
                }

                ++l1;
                break;
            }
        }

    }

    void a(Iterator<T> iterator, int i, int j, int k, int l);
}