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

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

import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.builtin.hytalegenerator.material.Material;
import javax.annotation.Nonnull;
import com.hypixel.hytale.builtin.hytalegenerator.MaterialSet;
import com.hypixel.hytale.builtin.hytalegenerator.bounds.SpaceSize;

public class MaterialSetPattern extends Pattern
{
    private static final SpaceSize READ_SPACE_SIZE;
    private final MaterialSet materialSet;
    
    public MaterialSetPattern(@Nonnull final MaterialSet materialSet) {
        this.materialSet = materialSet;
    }
    
    @Override
    public boolean matches(@Nonnull final Context context) {
        if (!context.materialSpace.isInsideSpace(context.position)) {
            return false;
        }
        final Material material = context.materialSpace.getContent(context.position);
        final int hash = material.hashMaterialIds();
        return this.materialSet.test(hash);
    }
    
    @Override
    public SpaceSize readSpace() {
        return MaterialSetPattern.READ_SPACE_SIZE.clone();
    }
    
    static {
        READ_SPACE_SIZE = new SpaceSize(new Vector3i(0, 0, 0), new Vector3i(1, 0, 1));
    }
}
