package mods.ocminecart.common.driver;
import li.cil.oc.api.driver.Item;
import li.cil.oc.api.driver.item.HostAware;
import li.cil.oc.api.driver.item.Slot;
import li.cil.oc.api.network.EnvironmentHost;
import li.cil.oc.api.network.ManagedEnvironment;
import mods.ocminecart.common.component.LinkingUpgrade;
import mods.ocminecart.common.items.ItemLinkingUpgrade;
import mods.ocminecart.common.minecart.IComputerCart;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class DriverLinkingUpgrade implements Item, HostAware {
@Override
public boolean worksWith(ItemStack stack, Class<? extends EnvironmentHost> host) {
return IComputerCart.class.isAssignableFrom(host) && EntityMinecart.class.isAssignableFrom(host) && worksWith(stack);
}
@Override
public boolean worksWith(ItemStack stack) {
return (stack.getItem() instanceof ItemLinkingUpgrade);
}
@Override
public ManagedEnvironment createEnvironment(ItemStack stack,EnvironmentHost host) {
if(!worksWith(stack, host.getClass())) return null;
return new LinkingUpgrade((IComputerCart) host);
}
@Override
public String slot(ItemStack stack) {
return Slot.Upgrade;
}
@Override
public int tier(ItemStack stack) {
return 0;
}
@Override
public NBTTagCompound dataTag(ItemStack stack) {
return CustomDriver.dataTag(stack);
}
}