package li.cil.oc.api.driver; import li.cil.oc.api.network.Environment; import net.minecraft.item.ItemStack; /** * This interface can be added to either item or block drivers. * <p/> * It is used to statically query the type of environment that would be created * for the block or item represented by an item stack. This is used to provide * automatically generated ingame help in the NEI usage screen, for example. * <p/> * For item drivers this will usually be pretty simple to implement, assuming * the driver only ever generates one type of environment - just return the * class of it and you're done. * <p/> * For block drivers there is a bit more work involved, since you have to check * if the item is the item block that corresponds to the supported block type. * This should usually not be an issue either, though. * * @deprecated Use an {@link EnvironmentProvider} instead. */ @Deprecated public interface EnvironmentAware { /** * Get the type of environment that would be created for the specified * block or item. * <p/> * Note that for block drivers this is called for any type of item stack. * <p/> * For item drivers this is only called if {@link Item#worksWith(net.minecraft.item.ItemStack)} * returns <tt>true</tt>. * * @param stack the item stack representing a block or item to get the * related environment type for. * @return the type of environment this driver would produce, or * <tt>null</tt> if the block or item is not supported. */ Class<? extends Environment> providedEnvironment(ItemStack stack); }