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

package com.hypixel.hytale.server.worldgen.chunk;

import javax.annotation.Nonnull;
import java.util.List;
import com.hypixel.hytale.math.util.FastRandom;
import com.hypixel.hytale.server.worldgen.zone.Zone;
import com.hypixel.hytale.server.worldgen.zoom.FuzzyZoom;

public class MaskProvider
{
    protected final FuzzyZoom fuzzyZoom;
    
    public MaskProvider(final FuzzyZoom fuzzyZoom) {
        this.fuzzyZoom = fuzzyZoom;
    }
    
    public double getX(final int seed, final double x, final double y) {
        return this.fuzzyZoom.getX(seed, x, y);
    }
    
    public double getY(final int seed, final double x, final double y) {
        return this.fuzzyZoom.getY(seed, x, y);
    }
    
    public int get(final int seed, final double x, final double y) {
        return this.fuzzyZoom.generate(x, y);
    }
    
    public double distance(final double x, final double y) {
        return this.fuzzyZoom.distance(x, y);
    }
    
    public boolean inBounds(final double x, final double y) {
        return this.fuzzyZoom.inBounds(x, y);
    }
    
    public FuzzyZoom getFuzzyZoom() {
        return this.fuzzyZoom;
    }
    
    public Zone.UniqueCandidate[] generateUniqueZoneCandidates(final Zone.UniqueEntry[] entries, final int maxPositions) {
        return this.fuzzyZoom.generateUniqueZoneCandidates(entries, maxPositions);
    }
    
    public MaskProvider generateUniqueZones(final int seed, final Zone.UniqueCandidate[] candidates, final FastRandom random, final List<Zone.Unique> zones) {
        return new MaskProvider(this.fuzzyZoom.generateUniqueZones(candidates, random, zones));
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "MaskProvider{fuzzyZoom=" + String.valueOf(this.fuzzyZoom);
    }
}
