package net.minecraft.world.level.newbiome.layer.traits;

import net.minecraft.world.level.newbiome.context.Context;
import net.minecraft.world.level.newbiome.area.Area;
import net.minecraft.world.level.newbiome.area.AreaFactory;
import net.minecraft.world.level.newbiome.context.BigContext;

public interface AreaTransformer2 extends DimensionTransformer {
    default <R extends Area> AreaFactory<R> run(final BigContext<R> cxm, final AreaFactory<R> cxj2, final AreaFactory<R> cxj3) {
        final Area cxi5;
        final Area cxi6;
        final Area cxi7;
        final Area cxi8;
        return () -> {
            cxi5 = cxj2.make();
            cxi6 = cxj3.make();
            return cxm.createResult((integer4, integer5) -> {
                cxm.initRandom(integer4, integer5);
                return this.applyPixel(cxm, cxi7, cxi8, integer4, integer5);
            }, (R)cxi5, (R)cxi6);
        };
    }
    
    int applyPixel(final Context cxn, final Area cxi2, final Area cxi3, final int integer4, final int integer5);
}
