| 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); |
| } |