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

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

import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Map;
import java.util.function.Function;

public class ZonePatternGeneratorCache
{
    protected final Function<Integer, ZonePatternGenerator> compute;
    protected final Map<Integer, ZonePatternGenerator> cache;
    
    public ZonePatternGeneratorCache(final ZonePatternProvider provider) {
        this.cache = new ConcurrentHashMap<Integer, ZonePatternGenerator>();
        Objects.requireNonNull(provider);
        this.compute = provider::createGenerator;
    }
    
    public ZonePatternGenerator get(final int seed) {
        try {
            return this.cache.computeIfAbsent(seed, this.compute);
        }
        catch (final Exception e) {
            throw new Error("Failed to receive UniquePrefabEntry for " + seed, (Throwable)e);
        }
    }
}
