From 81c090c922fd1b73bdb2b485058708bac8b0001b Mon Sep 17 00:00:00 2001 From: SirEdvin Date: Tue, 6 Jun 2023 22:14:09 +0300 Subject: [PATCH] Revert "persist turtle upgrade information inside turtle item" This reverts commit 90ab2098cffaa2914e3c4343defadaf63288b4e3. --- .../computercraft/data/RecipeProvider.java | 6 ++--- .../computercraft/shared/ModRegistry.java | 4 ++-- .../shared/integration/RecipeModHelpers.java | 2 +- .../integration/UpgradeRecipeGenerator.java | 7 +++--- .../shared/turtle/blocks/TurtleBlock.java | 4 ---- .../shared/turtle/items/ITurtleItem.java | 4 ---- .../shared/turtle/items/TurtleItem.java | 23 ++----------------- .../turtle/items/TurtleItemFactory.java | 11 ++++----- .../turtle/recipes/TurtleOverlayRecipe.java | 4 +--- .../shared/turtle/recipes/TurtleRecipe.java | 2 +- .../turtle/recipes/TurtleUpgradeRecipe.java | 7 ++---- 11 files changed, 19 insertions(+), 55 deletions(-) diff --git a/projects/common/src/main/java/dan200/computercraft/data/RecipeProvider.java b/projects/common/src/main/java/dan200/computercraft/data/RecipeProvider.java index 8534a3ee0..dd4da45cf 100644 --- a/projects/common/src/main/java/dan200/computercraft/data/RecipeProvider.java +++ b/projects/common/src/main/java/dan200/computercraft/data/RecipeProvider.java @@ -100,13 +100,13 @@ class RecipeProvider extends net.minecraft.data.recipes.RecipeProvider { */ private void turtleUpgrades(Consumer add) { for (var family : ComputerFamily.values()) { - var base = TurtleItemFactory.create(-1, null, -1, family, null, null, 0, null, null, null); + var base = TurtleItemFactory.create(-1, null, -1, family, null, null, 0, null); if (base.isEmpty()) continue; var nameId = family.name().toLowerCase(Locale.ROOT); for (var upgrade : turtleUpgrades.getGeneratedUpgrades()) { - var result = TurtleItemFactory.create(-1, null, -1, family, null, upgrade, -1, null, null, null); + var result = TurtleItemFactory.create(-1, null, -1, family, null, upgrade, -1, null); ShapedRecipeBuilder .shaped(RecipeCategory.REDSTONE, result.getItem()) .group(String.format("%s:turtle_%s", ComputerCraftAPI.MOD_ID, nameId)) @@ -181,7 +181,7 @@ class RecipeProvider extends net.minecraft.data.recipes.RecipeProvider { private void turtleOverlay(Consumer add, String overlay, Consumer build) { for (var family : ComputerFamily.values()) { - var base = TurtleItemFactory.create(-1, null, -1, family, null, null, 0, null, null, null); + var base = TurtleItemFactory.create(-1, null, -1, family, null, null, 0, null); if (base.isEmpty()) continue; var nameId = family.name().toLowerCase(Locale.ROOT); 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 a893dd338..13ea6d0a6 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/ModRegistry.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/ModRegistry.java @@ -444,9 +444,9 @@ public final class ModRegistry { } private static void addTurtle(CreativeModeTab.Output out, TurtleItem turtle) { - out.accept(turtle.create(-1, null, -1, null, null, 0, null, null, null)); + out.accept(turtle.create(-1, null, -1, null, null, 0, null)); TurtleUpgrades.getVanillaUpgrades() - .map(x -> turtle.create(-1, null, -1, null, x, 0, null, null, null)) + .map(x -> turtle.create(-1, null, -1, null, x, 0, null)) .forEach(out::accept); } diff --git a/projects/common/src/main/java/dan200/computercraft/shared/integration/RecipeModHelpers.java b/projects/common/src/main/java/dan200/computercraft/shared/integration/RecipeModHelpers.java index 9b5bcf5ea..69e443890 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/integration/RecipeModHelpers.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/integration/RecipeModHelpers.java @@ -51,7 +51,7 @@ public final class RecipeModHelpers { List upgradeItems = new ArrayList<>(); for (var family : MAIN_FAMILIES) { for (var upgrade : TurtleUpgrades.instance().getUpgrades()) { - upgradeItems.add(TurtleItemFactory.create(-1, null, -1, family, null, upgrade, 0, null, null, null)); + upgradeItems.add(TurtleItemFactory.create(-1, null, -1, family, null, upgrade, 0, null)); } for (var upgrade : PocketUpgrades.instance().getUpgrades()) { diff --git a/projects/common/src/main/java/dan200/computercraft/shared/integration/UpgradeRecipeGenerator.java b/projects/common/src/main/java/dan200/computercraft/shared/integration/UpgradeRecipeGenerator.java index 23ce243f8..36e86ed51 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/integration/UpgradeRecipeGenerator.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/integration/UpgradeRecipeGenerator.java @@ -220,8 +220,7 @@ public class UpgradeRecipeGenerator { var item = (TurtleItem) stack.getItem(); return TurtleItemFactory.create( item.getComputerID(stack), item.getLabel(stack), item.getColour(stack), item.getFamily(), - left, right, item.getFuelLevel(stack), item.getOverlay(stack), - item.getUpgradeData(stack, TurtleSide.LEFT), item.getUpgradeData(stack, TurtleSide.RIGHT) + left, right, item.getFuelLevel(stack), item.getOverlay(stack) ); } @@ -272,8 +271,8 @@ public class UpgradeRecipeGenerator { if (turtle != null) { recipes.add(turtle( ingredient, // Right upgrade, recipe on left - Ingredient.of(TurtleItemFactory.create(-1, null, -1, family, null, null, 0, null, null, null)), - TurtleItemFactory.create(-1, null, -1, family, null, turtle, 0, null, null, null) + Ingredient.of(TurtleItemFactory.create(-1, null, -1, family, null, null, 0, null)), + TurtleItemFactory.create(-1, null, -1, family, null, turtle, 0, null) )); } diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlock.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlock.java index 08fb71ed4..59c3f0c99 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlock.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlock.java @@ -130,10 +130,6 @@ public class TurtleBlock extends AbstractComputerBlock implem // Set Upgrades for (var side : TurtleSide.values()) { turtle.getAccess().setUpgrade(side, item.getUpgrade(stack, side)); - var upgradeData = item.getUpgradeData(stack, side); - if (upgradeData != null && !upgradeData.isEmpty()) { - turtle.getAccess().getUpgradeNBTData(side).merge(upgradeData); - } } turtle.getAccess().setFuelLevel(item.getFuelLevel(stack)); diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/ITurtleItem.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/ITurtleItem.java index fd9e51953..5dfb4751a 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/ITurtleItem.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/ITurtleItem.java @@ -8,7 +8,6 @@ import dan200.computercraft.api.turtle.ITurtleUpgrade; import dan200.computercraft.api.turtle.TurtleSide; import dan200.computercraft.shared.common.IColouredItem; import dan200.computercraft.shared.computer.items.IComputerItem; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -18,9 +17,6 @@ public interface ITurtleItem extends IComputerItem, IColouredItem { @Nullable ITurtleUpgrade getUpgrade(ItemStack stack, TurtleSide side); - @Nullable - CompoundTag getUpgradeData(ItemStack stack, TurtleSide side); - int getFuelLevel(ItemStack stack); @Nullable 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 73c3c379e..59620a755 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 @@ -14,7 +14,6 @@ import dan200.computercraft.shared.computer.core.ComputerFamily; import dan200.computercraft.shared.computer.items.AbstractComputerItem; import dan200.computercraft.shared.turtle.blocks.TurtleBlock; import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.InteractionResult; @@ -33,8 +32,7 @@ public class TurtleItem extends AbstractComputerItem implements ITurtleItem { public ItemStack create( int id, @Nullable String label, int colour, @Nullable ITurtleUpgrade leftUpgrade, @Nullable ITurtleUpgrade rightUpgrade, - int fuelLevel, @Nullable ResourceLocation overlay, - @Nullable CompoundTag leftUpgradeData, @Nullable CompoundTag rightUpdateData + int fuelLevel, @Nullable ResourceLocation overlay ) { // Build the stack var stack = new ItemStack(this); @@ -48,18 +46,10 @@ public class TurtleItem extends AbstractComputerItem implements ITurtleItem { stack.getOrCreateTag().putString(NBT_LEFT_UPGRADE, leftUpgrade.getUpgradeID().toString()); } - if (leftUpgradeData != null && !leftUpgradeData.isEmpty()) { - stack.getOrCreateTag().put(NBT_LEFT_UPGRADE_DATA, leftUpgradeData); - } - if (rightUpgrade != null) { stack.getOrCreateTag().putString(NBT_RIGHT_UPGRADE, rightUpgrade.getUpgradeID().toString()); } - if (rightUpdateData != null && !rightUpdateData.isEmpty()) { - stack.getOrCreateTag().put(NBT_RIGHT_UPGRADE_DATA, rightUpdateData); - } - return stack; } @@ -113,7 +103,7 @@ public class TurtleItem extends AbstractComputerItem implements ITurtleItem { getComputerID(stack), getLabel(stack), getColour(stack), family, getUpgrade(stack, TurtleSide.LEFT), getUpgrade(stack, TurtleSide.RIGHT), - getFuelLevel(stack), getOverlay(stack), getUpgradeData(stack, TurtleSide.LEFT), getUpgradeData(stack, TurtleSide.RIGHT) + getFuelLevel(stack), getOverlay(stack) ); } @@ -126,15 +116,6 @@ public class TurtleItem extends AbstractComputerItem implements ITurtleItem { return tag.contains(key) ? TurtleUpgrades.instance().get(tag.getString(key)) : null; } - @Override - public @Nullable CompoundTag getUpgradeData(ItemStack stack, TurtleSide side) { - var tag = stack.getTag(); - if (tag == null) return null; - - var key = side == TurtleSide.LEFT ? NBT_LEFT_UPGRADE_DATA : NBT_RIGHT_UPGRADE_DATA; - return tag.contains(key) ? tag.getCompound(key) : null; - } - @Override public @Nullable ResourceLocation getOverlay(ItemStack stack) { var tag = stack.getTag(); diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItemFactory.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItemFactory.java index 4fbc0ecf0..81953a899 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItemFactory.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/items/TurtleItemFactory.java @@ -9,7 +9,6 @@ import dan200.computercraft.api.turtle.TurtleSide; import dan200.computercraft.shared.ModRegistry; import dan200.computercraft.shared.computer.core.ComputerFamily; import dan200.computercraft.shared.turtle.blocks.ITurtleBlockEntity; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -25,22 +24,20 @@ public final class TurtleItemFactory { return create( turtle.getComputerID(), turtle.getLabel(), turtle.getColour(), turtle.getFamily(), access.getUpgrade(TurtleSide.LEFT), access.getUpgrade(TurtleSide.RIGHT), - access.getFuelLevel(), turtle.getOverlay(), - access.getUpgradeNBTData(TurtleSide.LEFT), access.getUpgradeNBTData(TurtleSide.RIGHT) + access.getFuelLevel(), turtle.getOverlay() ); } public static ItemStack create( int id, @Nullable String label, int colour, ComputerFamily family, @Nullable ITurtleUpgrade leftUpgrade, @Nullable ITurtleUpgrade rightUpgrade, - int fuelLevel, @Nullable ResourceLocation overlay, - @Nullable CompoundTag leftUpgradeData, @Nullable CompoundTag rightUpdateData + int fuelLevel, @Nullable ResourceLocation overlay ) { return switch (family) { case NORMAL -> - ModRegistry.Items.TURTLE_NORMAL.get().create(id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay, leftUpgradeData, rightUpdateData); + ModRegistry.Items.TURTLE_NORMAL.get().create(id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay); case ADVANCED -> - ModRegistry.Items.TURTLE_ADVANCED.get().create(id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay, leftUpgradeData, rightUpdateData); + ModRegistry.Items.TURTLE_ADVANCED.get().create(id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay); default -> ItemStack.EMPTY; }; } diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleOverlayRecipe.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleOverlayRecipe.java index 805e00935..4e6cf5c0b 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleOverlayRecipe.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleOverlayRecipe.java @@ -44,9 +44,7 @@ public class TurtleOverlayRecipe extends ShapelessRecipe { turtle.getUpgrade(stack, TurtleSide.LEFT), turtle.getUpgrade(stack, TurtleSide.RIGHT), turtle.getFuelLevel(stack), - overlay, - turtle.getUpgradeData(stack, TurtleSide.LEFT), - turtle.getUpgradeData(stack, TurtleSide.RIGHT) + overlay ); } diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleRecipe.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleRecipe.java index 74275712a..2451c8324 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleRecipe.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleRecipe.java @@ -31,7 +31,7 @@ public final class TurtleRecipe extends ComputerFamilyRecipe { var computerID = item.getComputerID(stack); var label = item.getLabel(stack); - return TurtleItemFactory.create(computerID, label, -1, getFamily(), null, null, 0, null, null, null); + return TurtleItemFactory.create(computerID, label, -1, getFamily(), null, null, 0, null); } public static class Serializer extends ComputerFamilyRecipe.Serializer { diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleUpgradeRecipe.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleUpgradeRecipe.java index a7c58ead4..690116d56 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleUpgradeRecipe.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/recipes/TurtleUpgradeRecipe.java @@ -32,7 +32,7 @@ public final class TurtleUpgradeRecipe extends CustomRecipe { @Override public ItemStack getResultItem(RegistryAccess registryAccess) { - return TurtleItemFactory.create(-1, null, -1, ComputerFamily.NORMAL, null, null, 0, null, null, null); + return TurtleItemFactory.create(-1, null, -1, ComputerFamily.NORMAL, null, null, 0, null); } @Override @@ -128,10 +128,7 @@ public final class TurtleUpgradeRecipe extends CustomRecipe { var fuelLevel = itemTurtle.getFuelLevel(turtle); var colour = itemTurtle.getColour(turtle); var overlay = itemTurtle.getOverlay(turtle); - return TurtleItemFactory.create( - computerID, label, colour, family, upgrades[0], upgrades[1], fuelLevel, overlay, - itemTurtle.getUpgradeData(turtle, TurtleSide.LEFT), itemTurtle.getUpgradeData(turtle, TurtleSide.RIGHT) - ); + return TurtleItemFactory.create(computerID, label, colour, family, upgrades[0], upgrades[1], fuelLevel, overlay); } @Override