28 lines
1004 B
Java
28 lines
1004 B
Java
package com.hypixel.hytale.builtin.hytalegenerator.positionproviders;
|
|
|
|
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 PositionProvider positionProvider, double range) {
|
|
this.positionProvider = positionProvider;
|
|
this.range = range;
|
|
}
|
|
|
|
@Override
|
|
public void positionsIn(@Nonnull PositionProvider.Context context) {
|
|
PositionProvider.Context childContext = new PositionProvider.Context(context);
|
|
childContext.consumer = position -> {
|
|
double distance = position.length();
|
|
if (VectorUtil.isInside(position, context.minInclusive, context.maxExclusive) && distance <= this.range) {
|
|
context.consumer.accept(position);
|
|
}
|
|
};
|
|
this.positionProvider.positionsIn(childContext);
|
|
}
|
|
}
|