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

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

import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
import com.hypixel.hytale.builtin.hytalegenerator.conveyor.stagedconveyor.ContextDependency;
import com.hypixel.hytale.builtin.hytalegenerator.props.ScanResult;
import com.hypixel.hytale.builtin.hytalegenerator.threadindexer.WorkerIndexer;
import com.hypixel.hytale.builtin.hytalegenerator.material.Material;
import com.hypixel.hytale.builtin.hytalegenerator.datastructures.voxelspace.VoxelSpace;
import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
import com.hypixel.hytale.builtin.hytalegenerator.props.Prop;
import javax.annotation.Nonnull;
import com.hypixel.hytale.codec.builder.BuilderCodec;

public class NoPropAsset extends PropAsset
{
    public static final BuilderCodec<NoPropAsset> CODEC;
    
    @Nonnull
    @Override
    public Prop build(@Nonnull final Argument argument) {
        return new Prop(this) {
            final Bounds3i emptyBounds_voxelGrid = new Bounds3i();
            
            @Override
            public ScanResult scan(@Nonnull final Vector3i position, @Nonnull final VoxelSpace<Material> materialSpace, @Nonnull final WorkerIndexer.Id id) {
                return ScanResult.noScanResult();
            }
            
            @Override
            public void place(@Nonnull final Context context) {
            }
            
            @Override
            public ContextDependency getContextDependency() {
                return ContextDependency.EMPTY;
            }
            
            @NonNullDecl
            @Override
            public Bounds3i getReadBounds_voxelGrid() {
                return this.emptyBounds_voxelGrid;
            }
            
            @Nonnull
            @Override
            public Bounds3i getWriteBounds_voxelGrid() {
                return this.emptyBounds_voxelGrid;
            }
        };
    }
    
    @Override
    public void cleanUp() {
    }
    
    static {
        CODEC = BuilderCodec.builder(NoPropAsset.class, NoPropAsset::new, PropAsset.ABSTRACT_CODEC).build();
    }
}
