// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.procedurallib.logic.cell.evaluator;

import javax.annotation.Nonnull;
import com.hypixel.hytale.procedurallib.logic.point.PointConsumer;
import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
import com.hypixel.hytale.procedurallib.logic.cell.jitter.CellJitter;

public class JitterPointEvaluator implements PointEvaluator
{
    protected final PointEvaluator pointEvaluator;
    protected final CellJitter jitter;
    
    public JitterPointEvaluator(final PointEvaluator pointEvaluator, final CellJitter jitter) {
        this.pointEvaluator = pointEvaluator;
        this.jitter = jitter;
    }
    
    @Override
    public CellJitter getJitter() {
        return this.jitter;
    }
    
    @Override
    public void evalPoint(final int seed, final double x, final double y, final int cellHash, final int cellX, final int cellY, final double cellPointX, final double cellPointY, final ResultBuffer.ResultBuffer2d buffer) {
        this.pointEvaluator.evalPoint(seed, x, y, cellHash, cellX, cellY, cellPointX, cellPointY, buffer);
    }
    
    @Override
    public void evalPoint2(final int seed, final double x, final double y, final int cellHash, final int cellX, final int cellY, final double cellPointX, final double cellPointY, final ResultBuffer.ResultBuffer2d buffer) {
        this.pointEvaluator.evalPoint2(seed, x, y, cellHash, cellX, cellY, cellPointX, cellPointY, buffer);
    }
    
    @Override
    public void evalPoint(final int seed, final double x, final double y, final double z, final int cellHash, final int cellX, final int cellY, final int cellZ, final double cellPointX, final double cellPointY, final double cellPointZ, final ResultBuffer.ResultBuffer3d buffer) {
        this.pointEvaluator.evalPoint(seed, x, y, z, cellHash, cellX, cellY, cellZ, cellPointX, cellPointY, cellPointZ, buffer);
    }
    
    @Override
    public void evalPoint2(final int seed, final double x, final double y, final double z, final int cellHash, final int cellX, final int cellY, final int cellZ, final double cellPointX, final double cellPointY, final double cellPointZ, final ResultBuffer.ResultBuffer3d buffer) {
        this.pointEvaluator.evalPoint2(seed, x, y, z, cellHash, cellX, cellY, cellZ, cellPointX, cellPointY, cellPointZ, buffer);
    }
    
    @Override
    public <T> void collectPoint(final int cellHash, final int cellX, final int cellY, final double cellCentreX, final double cellCentreY, final T ctx, @Nonnull final PointConsumer<T> consumer) {
        this.pointEvaluator.collectPoint(cellHash, cellX, cellY, cellCentreX, cellCentreY, ctx, consumer);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "JitterPointEvaluator{pointEvaluator=" + String.valueOf(this.pointEvaluator) + ", jitter=" + String.valueOf(this.jitter);
    }
}
