34 lines
986 B
Java
34 lines
986 B
Java
package com.hypixel.hytale.builtin.hytalegenerator.patterns;
|
|
|
|
import com.hypixel.hytale.builtin.hytalegenerator.bounds.SpaceSize;
|
|
import com.hypixel.hytale.math.vector.Vector3i;
|
|
import javax.annotation.Nonnull;
|
|
|
|
public class OffsetPattern extends Pattern {
|
|
@Nonnull
|
|
private final Pattern pattern;
|
|
@Nonnull
|
|
private final Vector3i offset;
|
|
@Nonnull
|
|
private final SpaceSize readSpaceSize;
|
|
|
|
public OffsetPattern(@Nonnull Pattern pattern, @Nonnull Vector3i offset) {
|
|
this.pattern = pattern;
|
|
this.offset = offset;
|
|
this.readSpaceSize = pattern.readSpace().moveBy(offset);
|
|
}
|
|
|
|
@Override
|
|
public boolean matches(@Nonnull Pattern.Context context) {
|
|
Pattern.Context childContext = new Pattern.Context(context);
|
|
childContext.position = context.position.clone().add(this.offset);
|
|
return this.pattern.matches(childContext);
|
|
}
|
|
|
|
@Nonnull
|
|
@Override
|
|
public SpaceSize readSpace() {
|
|
return this.readSpaceSize.clone();
|
|
}
|
|
}
|