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

package com.hypixel.hytale.builtin.hytalegenerator.props.directionality;

import java.util.Collections;
import java.util.List;
import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.builtin.hytalegenerator.scanners.Scanner;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.core.prefab.PrefabRotation;
import javax.annotation.Nonnull;
import com.hypixel.hytale.builtin.hytalegenerator.patterns.Pattern;

public abstract class Directionality
{
    @Nullable
    public abstract PrefabRotation getRotationAt(@Nonnull final Pattern.Context p0);
    
    public abstract Pattern getGeneralPattern();
    
    public abstract Vector3i getReadRangeWith(@Nonnull final Scanner p0);
    
    public abstract List<PrefabRotation> getPossibleRotations();
    
    @Nonnull
    public static Directionality noDirectionality() {
        return new Directionality() {
            @Override
            public PrefabRotation getRotationAt(@Nonnull final Pattern.Context context) {
                return null;
            }
            
            @Nonnull
            @Override
            public Pattern getGeneralPattern() {
                return Pattern.noPattern();
            }
            
            @Nonnull
            @Override
            public Vector3i getReadRangeWith(@Nonnull final Scanner scanner) {
                return new Vector3i();
            }
            
            @Nonnull
            @Override
            public List<PrefabRotation> getPossibleRotations() {
                return Collections.emptyList();
            }
        };
    }
}
