package openblocks.integration;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.turtle.ITurtleAccess;
import dan200.computercraft.api.turtle.ITurtleUpgrade;
import dan200.computercraft.api.turtle.TurtleCommandResult;
import dan200.computercraft.api.turtle.TurtleSide;
import dan200.computercraft.api.turtle.TurtleUpgradeType;
import dan200.computercraft.api.turtle.TurtleVerb;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.event.TextureStitchEvent;
import openblocks.common.item.MetasGeneric;
import openmods.utils.TextureUtils;
import openperipheral.api.ApiAccess;
import openperipheral.api.architecture.cc.IComputerCraftObjectsFactory;
public class MagnetTurtleUpgrade implements ITurtleUpgrade {
public IIcon icon;
@Override
public int getUpgradeID() {
return TurtleIds.MAGNET_TURTLE_ID;
}
@Override
public String getUnlocalisedAdjective() {
return "openblocks.turtle.magnet";
}
@Override
public TurtleUpgradeType getType() {
return TurtleUpgradeType.Peripheral;
}
@Override
public ItemStack getCraftingItem() {
return MetasGeneric.miracleMagnet.newItemStack();
}
@Override
public IPeripheral createPeripheral(ITurtleAccess turtle, TurtleSide side) {
return ApiAccess.getApi(IComputerCraftObjectsFactory.class).createPeripheral(new MagnetControlAdapter(turtle, side));
}
@Override
public TurtleCommandResult useTool(ITurtleAccess turtle, TurtleSide side, TurtleVerb verb, int direction) {
return null;
}
@Override
public IIcon getIcon(ITurtleAccess turtle, TurtleSide side) {
return icon;
}
@SubscribeEvent
public void registerIcons(TextureStitchEvent evt) {
if (evt.map.getTextureType() == TextureUtils.TEXTURE_MAP_BLOCKS) icon = evt.map.registerIcon("openblocks:magnet_upgrade");
}
@Override
public void update(ITurtleAccess turtle, TurtleSide side) {
IPeripheral peripheral = turtle.getPeripheral(side);
if (peripheral instanceof ITickingTurtle) ((ITickingTurtle)peripheral).onPeripheralTick();
}
}