mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-09-08 05:15:58 +00:00
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.
This commit is contained in:
@@ -35,9 +35,8 @@ import dan200.computercraft.shared.computer.blocks.ComputerBlockEntity;
|
|||||||
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||||
import dan200.computercraft.shared.computer.core.ServerComputer;
|
import dan200.computercraft.shared.computer.core.ServerComputer;
|
||||||
import dan200.computercraft.shared.computer.inventory.ComputerMenuWithoutInventory;
|
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.ComputerItem;
|
||||||
|
import dan200.computercraft.shared.computer.items.CommandComputerItem;
|
||||||
import dan200.computercraft.shared.computer.items.ServerComputerReference;
|
import dan200.computercraft.shared.computer.items.ServerComputerReference;
|
||||||
import dan200.computercraft.shared.config.Config;
|
import dan200.computercraft.shared.config.Config;
|
||||||
import dan200.computercraft.shared.data.BlockNamedEntityLootCondition;
|
import dan200.computercraft.shared.data.BlockNamedEntityLootCondition;
|
||||||
@@ -317,7 +316,7 @@ public final class ModRegistry {
|
|||||||
/**
|
/**
|
||||||
* The id of a computer.
|
* The id of a computer.
|
||||||
*
|
*
|
||||||
* @see AbstractComputerItem
|
* @see ComputerItem
|
||||||
* @see PocketComputerItem
|
* @see PocketComputerItem
|
||||||
*/
|
*/
|
||||||
public static final RegistryEntry<DataComponentType<NonNegativeId>> COMPUTER_ID = register("computer_id", b -> b
|
public static final RegistryEntry<DataComponentType<NonNegativeId>> COMPUTER_ID = register("computer_id", b -> b
|
||||||
@@ -327,7 +326,7 @@ public final class ModRegistry {
|
|||||||
/**
|
/**
|
||||||
* The storage capacity of a computer or disk.
|
* The storage capacity of a computer or disk.
|
||||||
*
|
*
|
||||||
* @see AbstractComputerItem
|
* @see ComputerItem
|
||||||
* @see PocketComputerItem
|
* @see PocketComputerItem
|
||||||
* @see DiskItem
|
* @see DiskItem
|
||||||
*/
|
*/
|
||||||
|
@@ -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<Component> 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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -4,11 +4,30 @@
|
|||||||
|
|
||||||
package dan200.computercraft.shared.computer.items;
|
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 {
|
import java.util.List;
|
||||||
// TODO: Do we deprecate this?
|
|
||||||
public ComputerItem(ComputerBlock<?> block, Properties settings) {
|
public class ComputerItem extends BlockItem {
|
||||||
|
public ComputerItem(AbstractComputerBlock<?> block, Properties settings) {
|
||||||
super(block, settings);
|
super(block, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,7 @@ import dan200.computercraft.api.ComputerCraftAPI;
|
|||||||
import dan200.computercraft.api.filesystem.Mount;
|
import dan200.computercraft.api.filesystem.Mount;
|
||||||
import dan200.computercraft.api.media.IMedia;
|
import dan200.computercraft.api.media.IMedia;
|
||||||
import dan200.computercraft.shared.ModRegistry;
|
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.config.ConfigSpec;
|
||||||
import dan200.computercraft.shared.media.items.DiskItem;
|
import dan200.computercraft.shared.media.items.DiskItem;
|
||||||
import dan200.computercraft.shared.util.DataComponentUtil;
|
import dan200.computercraft.shared.util.DataComponentUtil;
|
||||||
@@ -27,7 +27,7 @@ import java.util.function.Supplier;
|
|||||||
*/
|
*/
|
||||||
public final class MountMedia implements IMedia {
|
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);
|
public static final IMedia COMPUTER = new MountMedia("computer", ModRegistry.DataComponents.COMPUTER_ID, false, ConfigSpec.computerSpaceLimit);
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ import dan200.computercraft.api.turtle.TurtleSide;
|
|||||||
import dan200.computercraft.api.upgrades.UpgradeData;
|
import dan200.computercraft.api.upgrades.UpgradeData;
|
||||||
import dan200.computercraft.impl.TurtleUpgrades;
|
import dan200.computercraft.impl.TurtleUpgrades;
|
||||||
import dan200.computercraft.shared.ModRegistry;
|
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.TurtleOverlay;
|
||||||
import dan200.computercraft.shared.turtle.blocks.TurtleBlock;
|
import dan200.computercraft.shared.turtle.blocks.TurtleBlock;
|
||||||
import net.minecraft.core.cauldron.CauldronInteraction;
|
import net.minecraft.core.cauldron.CauldronInteraction;
|
||||||
@@ -22,7 +22,7 @@ import net.minecraft.world.item.ItemStack;
|
|||||||
import net.minecraft.world.level.block.LayeredCauldronBlock;
|
import net.minecraft.world.level.block.LayeredCauldronBlock;
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
public class TurtleItem extends AbstractComputerItem {
|
public class TurtleItem extends ComputerItem {
|
||||||
public TurtleItem(TurtleBlock block, Properties settings) {
|
public TurtleItem(TurtleBlock block, Properties settings) {
|
||||||
super(block, settings);
|
super(block, settings);
|
||||||
}
|
}
|
||||||
@@ -78,11 +78,6 @@ public class TurtleItem extends AbstractComputerItem {
|
|||||||
return overlay == null ? null : overlay.value();
|
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) -> {
|
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 (!stack.has(DataComponents.DYED_COLOR)) return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION;
|
||||||
if (!level.isClientSide) {
|
if (!level.isClientSide) {
|
||||||
|
Reference in New Issue
Block a user