61 lines
1.9 KiB
Java
61 lines
1.9 KiB
Java
package com.hypixel.hytale.builtin.hytalegenerator.positionproviders;
|
|
|
|
import com.hypixel.hytale.builtin.hytalegenerator.threadindexer.WorkerIndexer;
|
|
import com.hypixel.hytale.math.vector.Vector3d;
|
|
import java.util.function.Consumer;
|
|
import javax.annotation.Nonnull;
|
|
import javax.annotation.Nullable;
|
|
|
|
public abstract class PositionProvider {
|
|
public abstract void positionsIn(@Nonnull PositionProvider.Context var1);
|
|
|
|
@Nonnull
|
|
public static PositionProvider noPositionProvider() {
|
|
return new PositionProvider() {
|
|
@Override
|
|
public void positionsIn(@Nonnull PositionProvider.Context context) {
|
|
}
|
|
};
|
|
}
|
|
|
|
public static class Context {
|
|
public static final Consumer<Vector3d> EMPTY_CONSUMER = p -> {};
|
|
public Vector3d minInclusive;
|
|
public Vector3d maxExclusive;
|
|
public Consumer<Vector3d> consumer;
|
|
@Nullable
|
|
public Vector3d anchor;
|
|
public WorkerIndexer.Id workerId;
|
|
|
|
public Context() {
|
|
this.minInclusive = Vector3d.ZERO;
|
|
this.maxExclusive = Vector3d.ZERO;
|
|
this.consumer = EMPTY_CONSUMER;
|
|
this.anchor = null;
|
|
this.workerId = WorkerIndexer.Id.UNKNOWN;
|
|
}
|
|
|
|
public Context(
|
|
@Nonnull Vector3d minInclusive,
|
|
@Nonnull Vector3d maxExclusive,
|
|
@Nonnull Consumer<Vector3d> consumer,
|
|
@Nullable Vector3d anchor,
|
|
WorkerIndexer.Id workerId
|
|
) {
|
|
this.minInclusive = minInclusive;
|
|
this.maxExclusive = maxExclusive;
|
|
this.consumer = consumer;
|
|
this.anchor = anchor;
|
|
this.workerId = workerId;
|
|
}
|
|
|
|
public Context(@Nonnull PositionProvider.Context other) {
|
|
this.minInclusive = other.minInclusive;
|
|
this.maxExclusive = other.maxExclusive;
|
|
this.consumer = other.consumer;
|
|
this.anchor = other.anchor;
|
|
this.workerId = other.workerId;
|
|
}
|
|
}
|
|
}
|