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

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 final Pattern pattern, @Nonnull final Vector3i offset) {
        this.pattern = pattern;
        this.offset = offset;
        this.readSpaceSize = pattern.readSpace().moveBy(offset);
    }
    
    @Override
    public boolean matches(@Nonnull final Context context) {
        final Context childContext = new Context(context);
        childContext.position = context.position.clone().add(this.offset);
        return this.pattern.matches(childContext);
    }
    
    @Nonnull
    @Override
    public SpaceSize readSpace() {
        return this.readSpaceSize.clone();
    }
}
