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> cox, final AreaFactory<R> cou2, final AreaFactory<R> cou3) {
        final Area cot5;
        final Area cot6;
        final Area cot7;
        final Area cot8;
        return () -> {
            cot5 = cou2.make();
            cot6 = cou3.make();
            return cox.createResult((integer4, integer5) -> {
                cox.initRandom(integer4, integer5);
                return this.applyPixel(cox, cot7, cot8, integer4, integer5);
            }, (R)cot5, (R)cot6);
        };
    }
    
    int applyPixel(final Context coy, final Area cot2, final Area cot3, final int integer4, final int integer5);
}
