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

package com.hypixel.hytale.server.core.asset.packet;

import com.hypixel.hytale.assetstore.AssetMap;
import javax.annotation.Nullable;
import java.util.Set;
import com.hypixel.hytale.protocol.Packet;
import java.util.Map;
import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;

public abstract class DefaultAssetPacketGenerator<K, T extends JsonAssetWithMap<K, DefaultAssetMap<K, T>>> extends SimpleAssetPacketGenerator<K, T, DefaultAssetMap<K, T>>
{
    @Override
    public abstract Packet generateInitPacket(final DefaultAssetMap<K, T> p0, final Map<K, T> p1);
    
    public abstract Packet generateUpdatePacket(final Map<K, T> p0);
    
    @Nullable
    public abstract Packet generateRemovePacket(final Set<K> p0);
    
    public final Packet generateUpdatePacket(final DefaultAssetMap<K, T> assetMap, final Map<K, T> loadedAssets) {
        return this.generateUpdatePacket(loadedAssets);
    }
    
    @Nullable
    public final Packet generateRemovePacket(final DefaultAssetMap<K, T> assetMap, final Set<K> removed) {
        return this.generateRemovePacket(removed);
    }
}
