package joshie.harvest.npcs.gift;
import joshie.harvest.api.npc.gift.GiftCategory;
import joshie.harvest.api.npc.gift.IGiftHandler;
import joshie.harvest.core.util.holders.HolderRegistry;
import joshie.harvest.npcs.NPCHelper;
import net.minecraft.item.ItemStack;
import java.util.EnumMap;
import static joshie.harvest.api.npc.gift.GiftCategory.*;
public class Gifts implements IGiftHandler {
final HolderRegistry<Quality> stackRegistry = new HolderRegistry<>();
final EnumMap<GiftCategory, Quality> categoryRegistry = new EnumMap<>(GiftCategory.class);
public Gifts() {
categoryRegistry.put(GEM, Quality.GOOD);
categoryRegistry.put(FLOWER, Quality.GOOD);
categoryRegistry.put(COOKING, Quality.GOOD);
categoryRegistry.put(MONEY, Quality.GOOD);
categoryRegistry.put(MEAT, Quality.DECENT);
categoryRegistry.put(VEGETABLE, Quality.DECENT);
categoryRegistry.put(FRUIT, Quality.DECENT);
categoryRegistry.put(HERB, Quality.DECENT);
categoryRegistry.put(MILK, Quality.DECENT);
categoryRegistry.put(EGG, Quality.DECENT);
categoryRegistry.put(WOOL, Quality.DECENT);
categoryRegistry.put(ART, Quality.DECENT);
categoryRegistry.put(KNOWLEDGE, Quality.DECENT);
categoryRegistry.put(MUSHROOM, Quality.DECENT);
categoryRegistry.put(MAGIC, Quality.DECENT);
categoryRegistry.put(FISH, Quality.DISLIKE);
categoryRegistry.put(PLANT, Quality.DISLIKE);
categoryRegistry.put(MINERAL, Quality.BAD);
categoryRegistry.put(BUILDING, Quality.BAD);
categoryRegistry.put(MONSTER, Quality.BAD);
categoryRegistry.put(JUNK, Quality.BAD);
}
public Quality getQuality(ItemStack stack) {
Quality itemQuality = stackRegistry.getValueOf(stack);
if (itemQuality != null) return itemQuality;
GiftCategory category = NPCHelper.INSTANCE.getGifts().getRegistry().getValueOf(stack);
return category == null ? Quality.DECENT : categoryRegistry.get(category);
}
}