package WayofTime.bloodmagic.api.registry; import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import java.util.ArrayList; public class ImperfectRitualRegistry { public static final BiMap enabledRituals = HashBiMap.create(); private static final BiMap registry = HashBiMap.create(); /** * The safe way to register a new Ritual. * * @param imperfectRitual - The imperfect ritual to register. * @param id - The ID for the imperfect ritual. Cannot be duplicated. */ public static void registerRitual(ImperfectRitual imperfectRitual, String id) { if (imperfectRitual != null) { if (registry.containsKey(id)) BloodMagicAPI.getLogger().error("Duplicate imperfect ritual id: " + id); else registry.put(id, imperfectRitual); } } public static ImperfectRitual getRitualForId(String id) { return registry.get(id); } public static String getIdForRitual(ImperfectRitual imperfectRitual) { return registry.inverse().get(imperfectRitual); } public static boolean isMapEmpty() { return registry.isEmpty(); } public static int getMapSize() { return registry.size(); } public static boolean ritualEnabled(ImperfectRitual imperfectRitual) { return enabledRituals.get(imperfectRitual); } public static BiMap getRegistry() { return HashBiMap.create(registry); } public static ArrayList getIds() { return new ArrayList(registry.keySet()); } public static ArrayList getRituals() { return new ArrayList(registry.values()); } }