package org.mafagafogigante.dungeon.entity.items; import org.mafagafogigante.dungeon.game.Id; import org.jetbrains.annotations.NotNull; /** * Restrictions imposed upon an ItemFactory. * * <p>It is of the ItemFactory discretion to call {@code registerItem()} on an ItemFactoryRestriction. */ interface ItemFactoryRestrictions { /** * Evaluates if an item with the provided Id may be made. */ boolean canMakeItem(@NotNull Id id); /** * Registers a new Item made by the ItemFactory. */ void registerItem(@NotNull Id id); }