// Path: src/main/java/oreregistry/api/IUnificationHandler.java
// @FunctionalInterface
// public interface IUnificationHandler {
// 	
// 	void onUnifyItem(ItemStack oldStack, ItemStack newStack, IProduct product);
// }
// 
// Path: src/main/java/oreregistry/api/OreRegistryApi.java
// public class OreRegistryApi {
// 
// 	/**
// 	 * Register resources and get the chosen resource for each type.
// 	 */
// 	public static IResourceRegistry registry;
// 
// 	/**
// 	 * Get information about registered products.
// 	 */
// 	public static IResourceInfo info;
// 
// }
// 
// Path: src/main/java/oreregistry/api/OreRegistryState.java
// public enum OreRegistryState {
//     /**
//      * This state is active if in the pre init phase of fml.
//      */
//     ACTIVE,
//     /**
//      * This state is always active after the pre init phase of fml except the mod chooses currently his products or its currently synchronises with the server.
//      */
//     INACTIVE,
//     /**
//      * This state is active if the client currently synchronises with the server.
//      */
//     SYNCHRONIZE,
//     /**
//      * This state is active if the mod currently chooses the products.
//      */
//     CHOOSE
// 
// }


import java.util.Collection;
import java.util.Map;
import oreregistry.api.IUnificationHandler;
import oreregistry.api.OreRegistryApi;
import oreregistry.api.OreRegistryState;
/*
 * Copyright (c) 2017 Nedelosk, Mezz
 *
 * This work (the MOD) is licensed under the "MIT" License, see LICENSE for details.
 */
package oreregistry.api.registry;



/**
 * Register resources and get the chosen resource for each type.
 * <p>
 * Get the instance from {@link OreRegistryApi#registry}.
 */
public interface IResourceRegistry {

	/**
	 * Register a type of resource added by your mod.
	 */
	IResource registerResource(String resourceType);
	
	/**
	 * Returns a read-only map containing resource names and their associated
	 * resources.
	 */
	Map<String, IResource> getRegisteredResources();
	
	/**
	 * Register a {@link IUnificationHandler}.
	 */
// Path: src/main/java/oreregistry/api/IUnificationHandler.java
// @FunctionalInterface
// public interface IUnificationHandler {
// 	
// 	void onUnifyItem(ItemStack oldStack, ItemStack newStack, IProduct product);
// }
// 
// Path: src/main/java/oreregistry/api/OreRegistryApi.java
// public class OreRegistryApi {
// 
// 	/**
// 	 * Register resources and get the chosen resource for each type.
// 	 */
// 	public static IResourceRegistry registry;
// 
// 	/**
// 	 * Get information about registered products.
// 	 */
// 	public static IResourceInfo info;
// 
// }
// 
// Path: src/main/java/oreregistry/api/OreRegistryState.java
// public enum OreRegistryState {
//     /**
//      * This state is active if in the pre init phase of fml.
//      */
//     ACTIVE,
//     /**
//      * This state is always active after the pre init phase of fml except the mod chooses currently his products or its currently synchronises with the server.
//      */
//     INACTIVE,
//     /**
//      * This state is active if the client currently synchronises with the server.
//      */
//     SYNCHRONIZE,
//     /**
//      * This state is active if the mod currently chooses the products.
//      */
//     CHOOSE
// 
// }


// Path: src/main/java/oreregistry/api/registry/IResourceRegistry.java
import java.util.Collection;
import java.util.Map;
import oreregistry.api.IUnificationHandler;
import oreregistry.api.OreRegistryApi;
import oreregistry.api.OreRegistryState;

/*
 * Copyright (c) 2017 Nedelosk, Mezz
 *
 * This work (the MOD) is licensed under the "MIT" License, see LICENSE for details.
 */
package oreregistry.api.registry;



/**
 * Register resources and get the chosen resource for each type.
 * <p>
 * Get the instance from {@link OreRegistryApi#registry}.
 */
public interface IResourceRegistry {

	/**
	 * Register a type of resource added by your mod.
	 */
	IResource registerResource(String resourceType);
	
	/**
	 * Returns a read-only map containing resource names and their associated
	 * resources.
	 */
	Map<String, IResource> getRegisteredResources();
	
	/**
	 * Register a {@link IUnificationHandler}.
	 */
	void registerUnificationHandler(String resourceType, IUnificationHandler unificationHandler);