package li.cil.oc.api.driver; import net.minecraft.item.ItemStack; /** * Environment providers allow OpenComputers to resolve item stacks to the * environments generated by the block or item component of the stack. * <p/> * This is mainly used in OpenComputers' NEI usage handler for displaying * a component's API. */ public interface EnvironmentProvider { /** * Get the environment provided by the specified stack. * <p/> * For blocks this will usually be the tile entity. In particular, for * {@link li.cil.oc.api.network.SimpleComponent}s this allows returning * an arbitrary class type instead of an environment type, since the * {@link li.cil.oc.api.network.Environment} interface will be injected * by the class transformer at runtime. * <p/> * For items this will be the type of the environment returned by the * item driver's {@link Item#createEnvironment} method. * * @param stack the stack to get the environment type for. * @return the environment type for the specified stack. */ Class<?> getEnvironment(ItemStack stack); }