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

package com.hypixel.hytale.server.worldgen.cache;

import com.hypixel.hytale.server.worldgen.chunk.ChunkGenerator;
import java.util.Objects;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.worldgen.cave.Cave;
import com.hypixel.hytale.server.worldgen.cave.CaveType;

public class CaveGeneratorCache extends ExtendedCoordinateCache<CaveType, Cave>
{
    public CaveGeneratorCache(@Nonnull final CaveFunction caveFunction, final int maxSize, final long expireAfterSeconds) {
        Objects.requireNonNull(caveFunction);
        super(caveFunction::compute, null, maxSize, expireAfterSeconds);
    }
    
    @Nonnull
    @Override
    protected ExtendedCoordinateKey<CaveType> localKey() {
        return ChunkGenerator.getResource().cacheCaveCoordinateKey;
    }
    
    @FunctionalInterface
    public interface CaveFunction
    {
        Cave compute(final CaveType p0, final int p1, final int p2, final int p3);
    }
}
