CC-Tweaked/src/main/java/dan200/computercraft/shared/turtle/items/ItemTurtleLegacy.java

93 lines
2.4 KiB
Java

/*
* This file is part of ComputerCraft - http://www.computercraft.info
* Copyright Daniel Ratcliffe, 2011-2019. Do not distribute without permission.
* Send enquiries to dratcliffe@gmail.com
*/
package dan200.computercraft.shared.turtle.items;
import dan200.computercraft.ComputerCraft;
import dan200.computercraft.api.turtle.ITurtleUpgrade;
import dan200.computercraft.api.turtle.TurtleSide;
import dan200.computercraft.shared.computer.core.ComputerFamily;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
import javax.annotation.Nonnull;
public class ItemTurtleLegacy extends ItemTurtleBase
{
public ItemTurtleLegacy( Block block )
{
super( block );
setTranslationKey( "computercraft:turtle" );
setCreativeTab( ComputerCraft.mainCreativeTab );
}
// IComputerItem implementation
@Override
public int getComputerID( @Nonnull ItemStack stack )
{
if( stack.hasTagCompound() && stack.getTagCompound().hasKey( "computerID" ) )
{
return stack.getTagCompound().getInteger( "computerID" );
}
else
{
int damage = stack.getItemDamage();
return ((damage & 0xfffc) >> 2) - 1;
}
}
@Override
public ComputerFamily getFamily()
{
return ComputerFamily.Normal;
}
// ITurtleItem implementation
@Override
public ITurtleUpgrade getUpgrade( @Nonnull ItemStack stack, @Nonnull TurtleSide side )
{
int damage = stack.getItemDamage();
switch( side )
{
case Left:
if( (damage & 0x1) > 0 ) return ComputerCraft.TurtleUpgrades.diamondPickaxe;
break;
case Right:
if( (damage & 0x2) > 0 ) return ComputerCraft.TurtleUpgrades.wirelessModem;
break;
}
return null;
}
@Override
public int getColour( @Nonnull ItemStack stack )
{
return -1;
}
@Override
public ResourceLocation getOverlay( @Nonnull ItemStack stack )
{
return null;
}
@Override
public int getFuelLevel( @Nonnull ItemStack stack )
{
if( stack.hasTagCompound() )
{
NBTTagCompound nbt = stack.getTagCompound();
return nbt.getInteger( "fuelLevel" );
}
return 0;
}
}