blob: 279785e1a0c2849e3f9af4a35d40e60d1b195094 [file] [log] [blame] [raw]
package li.cil.oc.api.driver;
import net.minecraft.item.ItemStack;
/**
* May be implemented by drivers for robot upgrades that act as hotswap bays,
* i.e. which can be installed into the 'dynamic' slots, and provide on-the-fly
* changeable upgrade slots (i.e. which can be changed in the robot GUI,
* without disassembling and re-assembling the robot).
* <p/>
* These drivers will not be queried for environments. The reported tier is the
* maximum tier supported in the dynamic slot they provide.
*/
public interface UpgradeSlot extends Item {
/**
* The type of slot provided as the dynamic slot. This will usually be
* for other upgrades, but may be for any type of item component.
* <p/>
* While the driver's own type implicitly has to be 'Upgrade' and could
* therefore be used instead, this makes the intention more clear.
*
* @param stack the item stack to get the provided slot type for.
* @return the slot type provided by that dynamic slot upgrade.
*/
Slot providedSlot(ItemStack stack);
}