Interface UpgradeBase

All Known Subinterfaces:
IPocketUpgrade, ITurtleUpgrade
All Known Implementing Classes:
AbstractPocketUpgrade, AbstractTurtleUpgrade

public interface UpgradeBase
Common functionality between ITurtleUpgrade and IPocketUpgrade.
  • Method Summary

    Modifier and Type
    Method
    Description
    net.minecraft.world.item.ItemStack
    Return an item stack representing the type of item that a computer must be crafted with to create a version which holds this upgrade.
    static String
    getDefaultAdjective(net.minecraft.resources.ResourceLocation id)
    Get a suitable default unlocalised adjective for an upgrade ID.
    Return an unlocalised string to describe this type of computer in item names.
    default net.minecraft.nbt.CompoundTag
    getUpgradeData(net.minecraft.world.item.ItemStack stack)
    Extract upgrade data from an ItemStack.
    net.minecraft.resources.ResourceLocation
    Gets a unique identifier representing this type of turtle upgrade.
    default net.minecraft.world.item.ItemStack
    getUpgradeItem(net.minecraft.nbt.CompoundTag upgradeData)
    Returns the item stack representing a currently equipped turtle upgrade.
    default boolean
    isItemSuitable(net.minecraft.world.item.ItemStack stack)
    Determine if an item is suitable for being used for this upgrade.
  • Method Details

    • getUpgradeID

      net.minecraft.resources.ResourceLocation getUpgradeID()
      Gets a unique identifier representing this type of turtle upgrade. eg: "computercraft:wireless_modem" or "my_mod:my_upgrade".

      You should use a unique resource domain to ensure this upgrade is uniquely identified. The upgrade will fail registration if an already used ID is specified.

      Returns:
      The unique ID for this upgrade.
    • getUnlocalisedAdjective

      String getUnlocalisedAdjective()
      Return an unlocalised string to describe this type of computer in item names.

      Examples of built-in adjectives are "Wireless", "Mining" and "Crafty".

      Returns:
      The localisation key for this upgrade's adjective.
    • getCraftingItem

      net.minecraft.world.item.ItemStack getCraftingItem()
      Return an item stack representing the type of item that a computer must be crafted with to create a version which holds this upgrade. This item stack is also used to determine the upgrade given by turtle.equipLeft() or pocket.equipBack()

      This should be constant over a session (or at least a datapack reload). It is recommended that you cache the stack too, in order to prevent constructing it every time the method is called.

      Returns:
      The item stack to craft with, or ItemStack.EMPTY if it cannot be crafted.
    • getUpgradeItem

      default net.minecraft.world.item.ItemStack getUpgradeItem(net.minecraft.nbt.CompoundTag upgradeData)
      Returns the item stack representing a currently equipped turtle upgrade.

      While upgrades can store upgrade data (ITurtleAccess.getUpgradeNBTData(TurtleSide) and IPocketAccess.getUpgradeNBTData()}, by default this data is discarded when an upgrade is unequipped, and the original item stack is returned.

      By overriding this method, you can create a new ItemStack which contains enough data to re-create the upgrade data if the item is re-equipped.

      When overriding this, you should override getUpgradeData(ItemStack) and isItemSuitable(ItemStack) at the same time,

      Parameters:
      upgradeData - The current upgrade data. This should NOT be mutated.
      Returns:
      The item stack returned when unequipping.
    • getUpgradeData

      default net.minecraft.nbt.CompoundTag getUpgradeData(net.minecraft.world.item.ItemStack stack)
      Extract upgrade data from an ItemStack.

      This upgrade data will be available with ITurtleAccess.getUpgradeNBTData(TurtleSide) or IPocketAccess.getUpgradeNBTData().

      This should be an inverse to getUpgradeItem(CompoundTag).

      Parameters:
      stack - The stack that was equipped by the turtle or pocket computer. This will have the same item as getCraftingItem().
      Returns:
      The upgrade data that should be set on the turtle or pocket computer.
    • isItemSuitable

      default boolean isItemSuitable(net.minecraft.world.item.ItemStack stack)
      Determine if an item is suitable for being used for this upgrade.

      When un-equipping an upgrade, we return getCraftingItem() rather than the original stack. In order to prevent people losing items with enchantments (or repairing items with non-0 damage), we impose additional checks on the item.

      The default check requires that any non-capability NBT is exactly the same as the crafting item, but this may be relaxed for your upgrade.

      This is based on net.minecraftforge.common.crafting.StrictNBTIngredient's check.

      Parameters:
      stack - The stack to check. This is guaranteed to be non-empty and have the same item as getCraftingItem().
      Returns:
      If this stack may be used to equip this upgrade.
    • getDefaultAdjective

      static String getDefaultAdjective(net.minecraft.resources.ResourceLocation id)
      Get a suitable default unlocalised adjective for an upgrade ID. This converts "modid:some_upgrade" to "upgrade.modid.some_upgrade.adjective".
      Parameters:
      id - The upgrade ID.
      Returns:
      The generated adjective.
      See Also: