mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-07-07 12:32:54 +00:00
Revert "persist turtle upgrade information inside turtle item"
This reverts commit 90ab2098cffaa2914e3c4343defadaf63288b4e3.
This commit is contained in:
parent
0187b8179d
commit
81c090c922
@ -100,13 +100,13 @@ class RecipeProvider extends net.minecraft.data.recipes.RecipeProvider {
|
|||||||
*/
|
*/
|
||||||
private void turtleUpgrades(Consumer<FinishedRecipe> add) {
|
private void turtleUpgrades(Consumer<FinishedRecipe> add) {
|
||||||
for (var family : ComputerFamily.values()) {
|
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;
|
if (base.isEmpty()) continue;
|
||||||
|
|
||||||
var nameId = family.name().toLowerCase(Locale.ROOT);
|
var nameId = family.name().toLowerCase(Locale.ROOT);
|
||||||
|
|
||||||
for (var upgrade : turtleUpgrades.getGeneratedUpgrades()) {
|
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
|
ShapedRecipeBuilder
|
||||||
.shaped(RecipeCategory.REDSTONE, result.getItem())
|
.shaped(RecipeCategory.REDSTONE, result.getItem())
|
||||||
.group(String.format("%s:turtle_%s", ComputerCraftAPI.MOD_ID, nameId))
|
.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<FinishedRecipe> add, String overlay, Consumer<ShapelessRecipeBuilder> build) {
|
private void turtleOverlay(Consumer<FinishedRecipe> add, String overlay, Consumer<ShapelessRecipeBuilder> build) {
|
||||||
for (var family : ComputerFamily.values()) {
|
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;
|
if (base.isEmpty()) continue;
|
||||||
|
|
||||||
var nameId = family.name().toLowerCase(Locale.ROOT);
|
var nameId = family.name().toLowerCase(Locale.ROOT);
|
||||||
|
@ -444,9 +444,9 @@ public final class ModRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void addTurtle(CreativeModeTab.Output out, TurtleItem turtle) {
|
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()
|
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);
|
.forEach(out::accept);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ public final class RecipeModHelpers {
|
|||||||
List<ItemStack> upgradeItems = new ArrayList<>();
|
List<ItemStack> upgradeItems = new ArrayList<>();
|
||||||
for (var family : MAIN_FAMILIES) {
|
for (var family : MAIN_FAMILIES) {
|
||||||
for (var upgrade : TurtleUpgrades.instance().getUpgrades()) {
|
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()) {
|
for (var upgrade : PocketUpgrades.instance().getUpgrades()) {
|
||||||
|
@ -220,8 +220,7 @@ public class UpgradeRecipeGenerator<T> {
|
|||||||
var item = (TurtleItem) stack.getItem();
|
var item = (TurtleItem) stack.getItem();
|
||||||
return TurtleItemFactory.create(
|
return TurtleItemFactory.create(
|
||||||
item.getComputerID(stack), item.getLabel(stack), item.getColour(stack), item.getFamily(),
|
item.getComputerID(stack), item.getLabel(stack), item.getColour(stack), item.getFamily(),
|
||||||
left, right, item.getFuelLevel(stack), item.getOverlay(stack),
|
left, right, item.getFuelLevel(stack), item.getOverlay(stack)
|
||||||
item.getUpgradeData(stack, TurtleSide.LEFT), item.getUpgradeData(stack, TurtleSide.RIGHT)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,8 +271,8 @@ public class UpgradeRecipeGenerator<T> {
|
|||||||
if (turtle != null) {
|
if (turtle != null) {
|
||||||
recipes.add(turtle(
|
recipes.add(turtle(
|
||||||
ingredient, // Right upgrade, recipe on left
|
ingredient, // Right upgrade, recipe on left
|
||||||
Ingredient.of(TurtleItemFactory.create(-1, null, -1, family, null, null, 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, null, null)
|
TurtleItemFactory.create(-1, null, -1, family, null, turtle, 0, null)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,10 +130,6 @@ public class TurtleBlock extends AbstractComputerBlock<TurtleBlockEntity> implem
|
|||||||
// Set Upgrades
|
// Set Upgrades
|
||||||
for (var side : TurtleSide.values()) {
|
for (var side : TurtleSide.values()) {
|
||||||
turtle.getAccess().setUpgrade(side, item.getUpgrade(stack, side));
|
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));
|
turtle.getAccess().setFuelLevel(item.getFuelLevel(stack));
|
||||||
|
@ -8,7 +8,6 @@ import dan200.computercraft.api.turtle.ITurtleUpgrade;
|
|||||||
import dan200.computercraft.api.turtle.TurtleSide;
|
import dan200.computercraft.api.turtle.TurtleSide;
|
||||||
import dan200.computercraft.shared.common.IColouredItem;
|
import dan200.computercraft.shared.common.IColouredItem;
|
||||||
import dan200.computercraft.shared.computer.items.IComputerItem;
|
import dan200.computercraft.shared.computer.items.IComputerItem;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
@ -18,9 +17,6 @@ public interface ITurtleItem extends IComputerItem, IColouredItem {
|
|||||||
@Nullable
|
@Nullable
|
||||||
ITurtleUpgrade getUpgrade(ItemStack stack, TurtleSide side);
|
ITurtleUpgrade getUpgrade(ItemStack stack, TurtleSide side);
|
||||||
|
|
||||||
@Nullable
|
|
||||||
CompoundTag getUpgradeData(ItemStack stack, TurtleSide side);
|
|
||||||
|
|
||||||
int getFuelLevel(ItemStack stack);
|
int getFuelLevel(ItemStack stack);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -14,7 +14,6 @@ import dan200.computercraft.shared.computer.core.ComputerFamily;
|
|||||||
import dan200.computercraft.shared.computer.items.AbstractComputerItem;
|
import dan200.computercraft.shared.computer.items.AbstractComputerItem;
|
||||||
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;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
@ -33,8 +32,7 @@ public class TurtleItem extends AbstractComputerItem implements ITurtleItem {
|
|||||||
public ItemStack create(
|
public ItemStack create(
|
||||||
int id, @Nullable String label, int colour,
|
int id, @Nullable String label, int colour,
|
||||||
@Nullable ITurtleUpgrade leftUpgrade, @Nullable ITurtleUpgrade rightUpgrade,
|
@Nullable ITurtleUpgrade leftUpgrade, @Nullable ITurtleUpgrade rightUpgrade,
|
||||||
int fuelLevel, @Nullable ResourceLocation overlay,
|
int fuelLevel, @Nullable ResourceLocation overlay
|
||||||
@Nullable CompoundTag leftUpgradeData, @Nullable CompoundTag rightUpdateData
|
|
||||||
) {
|
) {
|
||||||
// Build the stack
|
// Build the stack
|
||||||
var stack = new ItemStack(this);
|
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());
|
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) {
|
if (rightUpgrade != null) {
|
||||||
stack.getOrCreateTag().putString(NBT_RIGHT_UPGRADE, rightUpgrade.getUpgradeID().toString());
|
stack.getOrCreateTag().putString(NBT_RIGHT_UPGRADE, rightUpgrade.getUpgradeID().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rightUpdateData != null && !rightUpdateData.isEmpty()) {
|
|
||||||
stack.getOrCreateTag().put(NBT_RIGHT_UPGRADE_DATA, rightUpdateData);
|
|
||||||
}
|
|
||||||
|
|
||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,7 +103,7 @@ public class TurtleItem extends AbstractComputerItem implements ITurtleItem {
|
|||||||
getComputerID(stack), getLabel(stack),
|
getComputerID(stack), getLabel(stack),
|
||||||
getColour(stack), family,
|
getColour(stack), family,
|
||||||
getUpgrade(stack, TurtleSide.LEFT), getUpgrade(stack, TurtleSide.RIGHT),
|
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;
|
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
|
@Override
|
||||||
public @Nullable ResourceLocation getOverlay(ItemStack stack) {
|
public @Nullable ResourceLocation getOverlay(ItemStack stack) {
|
||||||
var tag = stack.getTag();
|
var tag = stack.getTag();
|
||||||
|
@ -9,7 +9,6 @@ import dan200.computercraft.api.turtle.TurtleSide;
|
|||||||
import dan200.computercraft.shared.ModRegistry;
|
import dan200.computercraft.shared.ModRegistry;
|
||||||
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||||
import dan200.computercraft.shared.turtle.blocks.ITurtleBlockEntity;
|
import dan200.computercraft.shared.turtle.blocks.ITurtleBlockEntity;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
@ -25,22 +24,20 @@ public final class TurtleItemFactory {
|
|||||||
return create(
|
return create(
|
||||||
turtle.getComputerID(), turtle.getLabel(), turtle.getColour(), turtle.getFamily(),
|
turtle.getComputerID(), turtle.getLabel(), turtle.getColour(), turtle.getFamily(),
|
||||||
access.getUpgrade(TurtleSide.LEFT), access.getUpgrade(TurtleSide.RIGHT),
|
access.getUpgrade(TurtleSide.LEFT), access.getUpgrade(TurtleSide.RIGHT),
|
||||||
access.getFuelLevel(), turtle.getOverlay(),
|
access.getFuelLevel(), turtle.getOverlay()
|
||||||
access.getUpgradeNBTData(TurtleSide.LEFT), access.getUpgradeNBTData(TurtleSide.RIGHT)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack create(
|
public static ItemStack create(
|
||||||
int id, @Nullable String label, int colour, ComputerFamily family,
|
int id, @Nullable String label, int colour, ComputerFamily family,
|
||||||
@Nullable ITurtleUpgrade leftUpgrade, @Nullable ITurtleUpgrade rightUpgrade,
|
@Nullable ITurtleUpgrade leftUpgrade, @Nullable ITurtleUpgrade rightUpgrade,
|
||||||
int fuelLevel, @Nullable ResourceLocation overlay,
|
int fuelLevel, @Nullable ResourceLocation overlay
|
||||||
@Nullable CompoundTag leftUpgradeData, @Nullable CompoundTag rightUpdateData
|
|
||||||
) {
|
) {
|
||||||
return switch (family) {
|
return switch (family) {
|
||||||
case NORMAL ->
|
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 ->
|
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;
|
default -> ItemStack.EMPTY;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -44,9 +44,7 @@ public class TurtleOverlayRecipe extends ShapelessRecipe {
|
|||||||
turtle.getUpgrade(stack, TurtleSide.LEFT),
|
turtle.getUpgrade(stack, TurtleSide.LEFT),
|
||||||
turtle.getUpgrade(stack, TurtleSide.RIGHT),
|
turtle.getUpgrade(stack, TurtleSide.RIGHT),
|
||||||
turtle.getFuelLevel(stack),
|
turtle.getFuelLevel(stack),
|
||||||
overlay,
|
overlay
|
||||||
turtle.getUpgradeData(stack, TurtleSide.LEFT),
|
|
||||||
turtle.getUpgradeData(stack, TurtleSide.RIGHT)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ public final class TurtleRecipe extends ComputerFamilyRecipe {
|
|||||||
var computerID = item.getComputerID(stack);
|
var computerID = item.getComputerID(stack);
|
||||||
var label = item.getLabel(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<TurtleRecipe> {
|
public static class Serializer extends ComputerFamilyRecipe.Serializer<TurtleRecipe> {
|
||||||
|
@ -32,7 +32,7 @@ public final class TurtleUpgradeRecipe extends CustomRecipe {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getResultItem(RegistryAccess registryAccess) {
|
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
|
@Override
|
||||||
@ -128,10 +128,7 @@ public final class TurtleUpgradeRecipe extends CustomRecipe {
|
|||||||
var fuelLevel = itemTurtle.getFuelLevel(turtle);
|
var fuelLevel = itemTurtle.getFuelLevel(turtle);
|
||||||
var colour = itemTurtle.getColour(turtle);
|
var colour = itemTurtle.getColour(turtle);
|
||||||
var overlay = itemTurtle.getOverlay(turtle);
|
var overlay = itemTurtle.getOverlay(turtle);
|
||||||
return TurtleItemFactory.create(
|
return TurtleItemFactory.create(computerID, label, colour, family, upgrades[0], upgrades[1], fuelLevel, overlay);
|
||||||
computerID, label, colour, family, upgrades[0], upgrades[1], fuelLevel, overlay,
|
|
||||||
itemTurtle.getUpgradeData(turtle, TurtleSide.LEFT), itemTurtle.getUpgradeData(turtle, TurtleSide.RIGHT)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user