93 lines
2.4 KiB
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;
|
|
}
|
|
}
|
|
|