package com.jaquadro.minecraft.gardencore.util; import net.minecraftforge.oredict.OreDictionary; import java.util.HashMap; import java.util.Map; import java.util.Set; public class UniqueMetaRegistry<E> { private Map<UniqueMetaIdentifier, E> registry; public UniqueMetaRegistry () { registry = new HashMap<UniqueMetaIdentifier, E>(); } public void register (UniqueMetaIdentifier id, E entry) { registry.put(id, entry); } public E getEntry (UniqueMetaIdentifier id) { if (id == null) return null; if (registry.containsKey(id)) return registry.get(id); if (id.meta != OreDictionary.WILDCARD_VALUE) { id = new UniqueMetaIdentifier(id.modId, id.name); if (registry.containsKey(id)) return registry.get(id); if (!id.name.isEmpty()) { id = new UniqueMetaIdentifier(id.modId); if (registry.containsKey(id)) return registry.get(id); } } return null; } public void remove (UniqueMetaIdentifier id) { if (id != null) registry.remove(id); } public Set<Map.Entry<UniqueMetaIdentifier, E>> entrySet () { return registry.entrySet(); } public void clear () { registry.clear(); } }