package net.minecraft.world.level.chunk;

import net.minecraft.Util;
import java.util.Arrays;
import net.minecraft.world.level.biome.Biomes;
import net.minecraft.server.level.ChunkHolder;
import java.util.function.Predicate;
import java.util.List;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.lighting.LevelLightEngine;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.level.material.FluidState;
import javax.annotation.Nullable;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.biome.Biome;

public class EmptyLevelChunk extends LevelChunk {
    private static final Biome[] BIOMES;
    
    public EmptyLevelChunk(final Level bjw, final ChunkPos bjh) {
        super(bjw, bjh, new ChunkBiomeContainer(EmptyLevelChunk.BIOMES));
    }
    
    @Override
    public BlockState getBlockState(final BlockPos fk) {
        return Blocks.VOID_AIR.defaultBlockState();
    }
    
    @Nullable
    @Override
    public BlockState setBlockState(final BlockPos fk, final BlockState byj, final boolean boolean3) {
        return null;
    }
    
    @Override
    public FluidState getFluidState(final BlockPos fk) {
        return Fluids.EMPTY.defaultFluidState();
    }
    
    @Nullable
    @Override
    public LevelLightEngine getLightEngine() {
        return null;
    }
    
    @Override
    public int getLightEmission(final BlockPos fk) {
        return 0;
    }
    
    @Override
    public void addEntity(final Entity akq) {
    }
    
    @Override
    public void removeEntity(final Entity akq) {
    }
    
    @Override
    public void removeEntity(final Entity akq, final int integer) {
    }
    
    @Nullable
    @Override
    public BlockEntity getBlockEntity(final BlockPos fk, final EntityCreationType a) {
        return null;
    }
    
    @Override
    public void addBlockEntity(final BlockEntity bwl) {
    }
    
    @Override
    public void setBlockEntity(final BlockPos fk, final BlockEntity bwl) {
    }
    
    @Override
    public void removeBlockEntity(final BlockPos fk) {
    }
    
    @Override
    public void markUnsaved() {
    }
    
    @Override
    public void getEntities(@Nullable final Entity akq, final AABB cvf, final List<Entity> list, final Predicate<? super Entity> predicate) {
    }
    
    @Override
    public <T extends Entity> void getEntitiesOfClass(final Class<? extends T> class1, final AABB cvf, final List<T> list, final Predicate<? super T> predicate) {
    }
    
    @Override
    public boolean isEmpty() {
        return true;
    }
    
    @Override
    public boolean isYSpaceEmpty(final int integer1, final int integer2) {
        return true;
    }
    
    @Override
    public ChunkHolder.FullChunkStatus getFullStatus() {
        return ChunkHolder.FullChunkStatus.BORDER;
    }
    
    static {
        BIOMES = Util.<Biome[]>make(new Biome[ChunkBiomeContainer.BIOMES_SIZE], arr -> Arrays.fill(arr, Biomes.PLAINS));
    }
}
