From fa33949113faffce2bc396090ce18f7bea4a2c14 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Sun, 16 Feb 2025 21:12:35 +0000 Subject: [PATCH] Merge AbstractComputerItem and ComputerItem ComputerItem was just an empty subclass, so no sense keeping around. We probably could get rid of CommandComputerItem too (just do an `instanceof GameMasterBlock` in `getPlacementState`), but there's no rush. --- .../computercraft/shared/ModRegistry.java | 7 ++-- .../computer/items/AbstractComputerItem.java | 33 ------------------- .../shared/computer/items/ComputerItem.java | 27 ++++++++++++--- .../shared/media/MountMedia.java | 4 +-- .../shared/turtle/items/TurtleItem.java | 9 ++--- 5 files changed, 30 insertions(+), 50 deletions(-) delete mode 100644 projects/common/src/main/java/dan200/computercraft/shared/computer/items/AbstractComputerItem.java diff --git a/projects/common/src/main/java/dan200/computercraft/shared/ModRegistry.java b/projects/common/src/main/java/dan200/computercraft/shared/ModRegistry.java index 5ec1ced59..6f329bbc6 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/ModRegistry.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/ModRegistry.java @@ -35,9 +35,8 @@ import dan200.computercraft.shared.computer.blocks.ComputerBlockEntity; import dan200.computercraft.shared.computer.core.ComputerFamily; import dan200.computercraft.shared.computer.core.ServerComputer; import dan200.computercraft.shared.computer.inventory.ComputerMenuWithoutInventory; -import dan200.computercraft.shared.computer.items.AbstractComputerItem; -import dan200.computercraft.shared.computer.items.CommandComputerItem; import dan200.computercraft.shared.computer.items.ComputerItem; +import dan200.computercraft.shared.computer.items.CommandComputerItem; import dan200.computercraft.shared.computer.items.ServerComputerReference; import dan200.computercraft.shared.config.Config; import dan200.computercraft.shared.data.BlockNamedEntityLootCondition; @@ -317,7 +316,7 @@ public final class ModRegistry { /** * The id of a computer. * - * @see AbstractComputerItem + * @see ComputerItem * @see PocketComputerItem */ public static final RegistryEntry> COMPUTER_ID = register("computer_id", b -> b @@ -327,7 +326,7 @@ public final class ModRegistry { /** * The storage capacity of a computer or disk. * - * @see AbstractComputerItem + * @see ComputerItem * @see PocketComputerItem * @see DiskItem */ diff --git a/projects/common/src/main/java/dan200/computercraft/shared/computer/items/AbstractComputerItem.java b/projects/common/src/main/java/dan200/computercraft/shared/computer/items/AbstractComputerItem.java deleted file mode 100644 index f41a0a8f6..000000000 --- a/projects/common/src/main/java/dan200/computercraft/shared/computer/items/AbstractComputerItem.java +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. -// -// SPDX-License-Identifier: LicenseRef-CCPL - -package dan200.computercraft.shared.computer.items; - -import dan200.computercraft.shared.ModRegistry; -import dan200.computercraft.shared.computer.blocks.AbstractComputerBlock; -import net.minecraft.ChatFormatting; -import net.minecraft.core.component.DataComponents; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; - -import java.util.List; - -public class AbstractComputerItem extends BlockItem { - public AbstractComputerItem(AbstractComputerBlock block, Properties settings) { - super(block, settings); - } - - @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List list, TooltipFlag options) { - if (options.isAdvanced() || !stack.has(DataComponents.CUSTOM_NAME)) { - var id = stack.get(ModRegistry.DataComponents.COMPUTER_ID.get()); - if (id != null) { - list.add(Component.translatable("gui.computercraft.tooltip.computer_id", id.id()) - .withStyle(ChatFormatting.GRAY)); - } - } - } -} diff --git a/projects/common/src/main/java/dan200/computercraft/shared/computer/items/ComputerItem.java b/projects/common/src/main/java/dan200/computercraft/shared/computer/items/ComputerItem.java index af637288c..ecf1a3b27 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/computer/items/ComputerItem.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/computer/items/ComputerItem.java @@ -4,11 +4,30 @@ package dan200.computercraft.shared.computer.items; -import dan200.computercraft.shared.computer.blocks.ComputerBlock; +import dan200.computercraft.shared.ModRegistry; +import dan200.computercraft.shared.computer.blocks.AbstractComputerBlock; +import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; -public class ComputerItem extends AbstractComputerItem { - // TODO: Do we deprecate this? - public ComputerItem(ComputerBlock block, Properties settings) { +import java.util.List; + +public class ComputerItem extends BlockItem { + public ComputerItem(AbstractComputerBlock block, Properties settings) { super(block, settings); } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List list, TooltipFlag options) { + if (options.isAdvanced() || !stack.has(DataComponents.CUSTOM_NAME)) { + var id = stack.get(ModRegistry.DataComponents.COMPUTER_ID.get()); + if (id != null) { + list.add(Component.translatable("gui.computercraft.tooltip.computer_id", id.id()) + .withStyle(ChatFormatting.GRAY)); + } + } + } } diff --git a/projects/common/src/main/java/dan200/computercraft/shared/media/MountMedia.java b/projects/common/src/main/java/dan200/computercraft/shared/media/MountMedia.java index 9ffa835b3..0e5a6bb58 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/media/MountMedia.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/media/MountMedia.java @@ -8,7 +8,7 @@ import dan200.computercraft.api.ComputerCraftAPI; import dan200.computercraft.api.filesystem.Mount; import dan200.computercraft.api.media.IMedia; import dan200.computercraft.shared.ModRegistry; -import dan200.computercraft.shared.computer.items.AbstractComputerItem; +import dan200.computercraft.shared.computer.items.ComputerItem; import dan200.computercraft.shared.config.ConfigSpec; import dan200.computercraft.shared.media.items.DiskItem; import dan200.computercraft.shared.util.DataComponentUtil; @@ -27,7 +27,7 @@ import java.util.function.Supplier; */ public final class MountMedia implements IMedia { /** - * A {@link MountMedia} implementation for {@linkplain AbstractComputerItem computers}. + * A {@link MountMedia} implementation for {@linkplain ComputerItem computers}. */ public static final IMedia COMPUTER = new MountMedia("computer", ModRegistry.DataComponents.COMPUTER_ID, false, ConfigSpec.computerSpaceLimit); diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItem.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItem.java index 8b09b3390..9ba36d168 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItem.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItem.java @@ -11,7 +11,7 @@ import dan200.computercraft.api.turtle.TurtleSide; import dan200.computercraft.api.upgrades.UpgradeData; import dan200.computercraft.impl.TurtleUpgrades; import dan200.computercraft.shared.ModRegistry; -import dan200.computercraft.shared.computer.items.AbstractComputerItem; +import dan200.computercraft.shared.computer.items.ComputerItem; import dan200.computercraft.shared.turtle.TurtleOverlay; import dan200.computercraft.shared.turtle.blocks.TurtleBlock; import net.minecraft.core.cauldron.CauldronInteraction; @@ -22,7 +22,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.LayeredCauldronBlock; import org.jspecify.annotations.Nullable; -public class TurtleItem extends AbstractComputerItem { +public class TurtleItem extends ComputerItem { public TurtleItem(TurtleBlock block, Properties settings) { super(block, settings); } @@ -78,11 +78,6 @@ public class TurtleItem extends AbstractComputerItem { return overlay == null ? null : overlay.value(); } - public static int getFuelLevel(ItemStack stack) { - var fuel = stack.get(ModRegistry.DataComponents.FUEL.get()); - return fuel == null ? 0 : fuel; - } - public static final CauldronInteraction CAULDRON_INTERACTION = (blockState, level, pos, player, hand, stack) -> { if (!stack.has(DataComponents.DYED_COLOR)) return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; if (!level.isClientSide) {