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

package com.hypixel.hytale.builtin.hytalegenerator.positionproviders;

import com.hypixel.hytale.math.vector.Vector3d;
import com.hypixel.hytale.builtin.hytalegenerator.VectorUtil;
import javax.annotation.Nonnull;

public class SpherePositionProvider extends PositionProvider
{
    @Nonnull
    private final PositionProvider positionProvider;
    private final double range;
    
    public SpherePositionProvider(@Nonnull final PositionProvider positionProvider, final double range) {
        this.positionProvider = positionProvider;
        this.range = range;
    }
    
    @Override
    public void positionsIn(@Nonnull final Context context) {
        final Context childContext = new Context(context);
        childContext.consumer = (position -> {
            final double distance = position.length();
            if (VectorUtil.isInside(position, context.minInclusive, context.maxExclusive) && distance <= this.range) {
                context.consumer.accept(position);
            }
            return;
        });
        this.positionProvider.positionsIn(childContext);
    }
}
