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

package com.hypixel.hytale.builtin.hytalegenerator.datastructures.voxelspace;

import java.util.function.Predicate;
import javax.annotation.Nullable;
import com.hypixel.hytale.math.vector.Vector3i;
import javax.annotation.Nonnull;

public class NullSpace<V> implements VoxelSpace<V>
{
    private static final NullSpace INSTANCE;
    
    public static <V> NullSpace<V> instance() {
        return NullSpace.INSTANCE;
    }
    
    public static <V> NullSpace<V> instance(@Nonnull final Class<V> clazz) {
        return NullSpace.INSTANCE;
    }
    
    private NullSpace() {
    }
    
    @Override
    public boolean set(final V content, final int x, final int y, final int z) {
        return false;
    }
    
    @Override
    public boolean set(final V content, @Nonnull final Vector3i position) {
        return this.set(content, position.x, position.y, position.z);
    }
    
    @Override
    public void set(final V content) {
    }
    
    @Override
    public void setOrigin(final int x, final int y, final int z) {
    }
    
    @Nullable
    @Override
    public V getContent(final int x, final int y, final int z) {
        return null;
    }
    
    @Nullable
    @Override
    public V getContent(@Nonnull final Vector3i position) {
        return this.getContent(position.x, position.y, position.z);
    }
    
    @Override
    public boolean replace(final V replacement, final int x, final int y, final int z, @Nonnull final Predicate<V> mask) {
        return false;
    }
    
    @Override
    public void pasteFrom(@Nonnull final VoxelSpace<V> source) {
    }
    
    @Override
    public int getOriginX() {
        return 0;
    }
    
    @Override
    public int getOriginY() {
        return 0;
    }
    
    @Override
    public int getOriginZ() {
        return 0;
    }
    
    @Nonnull
    @Override
    public String getName() {
        return "null_space";
    }
    
    @Override
    public boolean isInsideSpace(final int x, final int y, final int z) {
        return false;
    }
    
    @Override
    public boolean isInsideSpace(@Nonnull final Vector3i position) {
        return this.isInsideSpace(position.x, position.y, position.z);
    }
    
    @Override
    public void forEach(final VoxelConsumer<? super V> action) {
    }
    
    @Override
    public int minX() {
        return 0;
    }
    
    @Override
    public int maxX() {
        return 0;
    }
    
    @Override
    public int minY() {
        return 0;
    }
    
    @Override
    public int maxY() {
        return 0;
    }
    
    @Override
    public int minZ() {
        return 0;
    }
    
    @Override
    public int maxZ() {
        return 0;
    }
    
    @Override
    public int sizeX() {
        return 0;
    }
    
    @Override
    public int sizeY() {
        return 0;
    }
    
    @Override
    public int sizeZ() {
        return 0;
    }
    
    static {
        INSTANCE = new NullSpace();
    }
}
