1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-04-21 02:03:13 +00:00

Automatically generate impostor recipes

Previously we would register the recipes within our code, but the
advancements were written manually. This now generates JSON files for
both the advancement and recipe.

While this does mean we're shipping even more JSON, we'll need to do
this for 1.13 anyway, and means our advancements are guaranteed to be
consistent.

On a side note, a couple of other changes:
 - Turtle upgrades are now mounted on the right in the creative
   menu/fake recipes. This means the upgrade is now clearly visible in
   the inventory.
 - We no longer generate legacy turtle items at all: we'll always
   construct turtle_expanded.
 - Several peripheral items are no longer registered as having sub-types
   (namely advanced and full-block modems).
 - We only have one disk advancement now, which unlocks all 16 recipes.
 - We have removed the disk conversion recipes - these can be
   exposed through JEI if needed.
This commit is contained in:
SquidDev 2019-03-16 00:15:31 +00:00
parent 765ad0bd3f
commit 105c66127c
124 changed files with 1329 additions and 1103 deletions
src/main
java/dan200/computercraft/shared
resources/assets/computercraft
advancements/recipes
advanced_pocket_upgrade_computercraft_advanved_modem.jsonadvanced_pocket_upgrade_computercraft_speaker.jsonadvanced_pocket_upgrade_computercraft_wireless_modem.jsonadvanced_turtle_upgrade_computercraft_advanced_modem_1.jsonadvanced_turtle_upgrade_computercraft_speaker_1.jsonadvanced_turtle_upgrade_computercraft_wireless_modem_1.jsonadvanced_turtle_upgrade_minecraft_crafting_table_1.jsonadvanced_turtle_upgrade_minecraft_diamond_axe_1.jsonadvanced_turtle_upgrade_minecraft_diamond_hoe_1.jsonadvanced_turtle_upgrade_minecraft_diamond_pickaxe_1.jsonadvanced_turtle_upgrade_minecraft_diamond_shovel_1.jsonadvanced_turtle_upgrade_minecraft_diamond_sword_1.jsondisk_imposter_1.jsondisk_imposter_10.jsondisk_imposter_11.jsondisk_imposter_12.jsondisk_imposter_13.jsondisk_imposter_14.jsondisk_imposter_15.jsondisk_imposter_convert_1.jsondisk_imposter_convert_10.jsondisk_imposter_convert_11.jsondisk_imposter_convert_12.jsondisk_imposter_convert_13.jsondisk_imposter_convert_14.jsondisk_imposter_convert_15.json
generated
normal_pocket_upgrade_computercraft_advanved_modem.jsonnormal_pocket_upgrade_computercraft_speaker.jsonnormal_pocket_upgrade_computercraft_wireless_modem.jsonnormal_turtle_upgrade_computercraft_advanced_modem_1.jsonnormal_turtle_upgrade_computercraft_speaker_1.jsonnormal_turtle_upgrade_computercraft_wireless_modem_1.jsonnormal_turtle_upgrade_minecraft_crafting_table_1.jsonnormal_turtle_upgrade_minecraft_diamond_axe_1.jsonnormal_turtle_upgrade_minecraft_diamond_hoe_1.jsonnormal_turtle_upgrade_minecraft_diamond_pickaxe_1.jsonnormal_turtle_upgrade_minecraft_diamond_shovel_1.jsonnormal_turtle_upgrade_minecraft_diamond_sword_1.json
recipes

@ -39,6 +39,9 @@ public final class PocketUpgrades
public static IPocketUpgrade get( String id )
{
// Fix a typo in the advanced modem upgrade's name. I'm sorry, I realise this is horrible.
if( id.equals( "computercraft:advanved_modem" ) ) id = "computercraft:advanced_modem";
return upgrades.get( id );
}

@ -8,13 +8,10 @@ package dan200.computercraft.shared;
import dan200.computercraft.ComputerCraft;
import dan200.computercraft.api.ComputerCraftAPI;
import dan200.computercraft.api.pocket.IPocketUpgrade;
import dan200.computercraft.api.turtle.ITurtleUpgrade;
import dan200.computercraft.shared.computer.blocks.BlockCommandComputer;
import dan200.computercraft.shared.computer.blocks.BlockComputer;
import dan200.computercraft.shared.computer.blocks.TileCommandComputer;
import dan200.computercraft.shared.computer.blocks.TileComputer;
import dan200.computercraft.shared.computer.core.ComputerFamily;
import dan200.computercraft.shared.computer.items.ItemCommandComputer;
import dan200.computercraft.shared.computer.items.ItemComputer;
import dan200.computercraft.shared.media.items.ItemDiskExpanded;
@ -33,7 +30,6 @@ import dan200.computercraft.shared.peripheral.monitor.TileMonitor;
import dan200.computercraft.shared.peripheral.printer.TilePrinter;
import dan200.computercraft.shared.peripheral.speaker.TileSpeaker;
import dan200.computercraft.shared.pocket.items.ItemPocketComputer;
import dan200.computercraft.shared.pocket.items.PocketComputerItemFactory;
import dan200.computercraft.shared.pocket.peripherals.PocketModem;
import dan200.computercraft.shared.pocket.peripherals.PocketSpeaker;
import dan200.computercraft.shared.turtle.blocks.BlockTurtle;
@ -43,19 +39,11 @@ import dan200.computercraft.shared.turtle.blocks.TileTurtleExpanded;
import dan200.computercraft.shared.turtle.items.ItemTurtleAdvanced;
import dan200.computercraft.shared.turtle.items.ItemTurtleLegacy;
import dan200.computercraft.shared.turtle.items.ItemTurtleNormal;
import dan200.computercraft.shared.turtle.items.TurtleItemFactory;
import dan200.computercraft.shared.turtle.upgrades.*;
import dan200.computercraft.shared.util.Colour;
import dan200.computercraft.shared.util.ImpostorRecipe;
import dan200.computercraft.shared.util.ImpostorShapelessRecipe;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
@ -203,98 +191,7 @@ public final class Registry
registerLegacyUpgrades();
}
@SubscribeEvent
public static void registerRecipes( RegistryEvent.Register<IRecipe> event )
{
IForgeRegistry<IRecipe> registry = event.getRegistry();
// Register fake recipes for the recipe book and JEI. We have several dynamic recipes,
// and we'd like people to be able to see them.
// Turtle upgrades
// TODO: Figure out a way to do this in a "nice" way.
for( ITurtleUpgrade upgrade : TurtleUpgrades.getVanillaUpgrades() )
{
ItemStack craftingItem = upgrade.getCraftingItem();
// A turtle just containing this upgrade
for( ComputerFamily family : ComputerFamily.values() )
{
if( !TurtleUpgrades.suitableForFamily( family, upgrade ) ) continue;
ItemStack baseTurtle = TurtleItemFactory.create( -1, null, -1, family, null, null, 0, null );
if( !baseTurtle.isEmpty() )
{
ItemStack craftedTurtle = TurtleItemFactory.create( -1, null, -1, family, upgrade, null, 0, null );
ItemStack craftedTurtleFlipped = TurtleItemFactory.create( -1, null, -1, family, null, upgrade, 0, null );
registry.register(
new ImpostorRecipe( "computercraft:" + family.toString() + "_turtle_upgrade", 2, 1, new ItemStack[] { baseTurtle, craftingItem }, craftedTurtle )
.setRegistryName( new ResourceLocation( "computercraft:" + family + "_turtle_upgrade_" + upgrade.getUpgradeID().toString().replace( ':', '_' ) + "_1" ) )
);
registry.register(
new ImpostorRecipe( "computercraft:" + family.toString() + "_turtle_upgrade", 2, 1, new ItemStack[] { craftingItem, baseTurtle }, craftedTurtleFlipped )
.setRegistryName( new ResourceLocation( "computercraft:" + family + "_turtle_upgrade_" + upgrade.getUpgradeID().toString().replace( ':', '_' ) + "_2" ) )
);
}
}
}
// Coloured disks
ItemStack paper = new ItemStack( Items.PAPER, 1 );
ItemStack redstone = new ItemStack( Items.REDSTONE, 1 );
for( int colour = 0; colour < 16; colour++ )
{
ItemStack disk = ItemDiskLegacy.createFromIDAndColour( -1, null, Colour.values()[colour].getHex() );
ItemStack dye = new ItemStack( Items.DYE, 1, colour );
int diskIdx = 0;
ItemStack[] disks = new ItemStack[15];
for( int otherColour = 0; otherColour < 16; otherColour++ )
{
if( colour != otherColour )
{
disks[diskIdx++] = ItemDiskLegacy.createFromIDAndColour( -1, null, Colour.values()[otherColour].getHex() );
}
}
// Normal recipe
registry.register(
new ImpostorShapelessRecipe( "computercraft:disk", disk, new ItemStack[] { redstone, paper, dye } )
.setRegistryName( new ResourceLocation( "computercraft:disk_imposter_" + colour ) )
);
// Conversion recipe
registry.register(
new ImpostorShapelessRecipe( "computercraft:disk", disk, NonNullList.from( Ingredient.EMPTY, Ingredient.fromStacks( disks ), Ingredient.fromStacks( dye ) ) )
.setRegistryName( new ResourceLocation( "computercraft:disk_imposter_convert_" + colour ) )
);
}
// Pocket computer upgrades
ItemStack pocketComputer = PocketComputerItemFactory.create( -1, null, -1, ComputerFamily.Normal, null );
ItemStack advancedPocketComputer = PocketComputerItemFactory.create( -1, null, -1, ComputerFamily.Advanced, null );
for( IPocketUpgrade upgrade : PocketUpgrades.getVanillaUpgrades() )
{
registry.register( new ImpostorRecipe(
"computercraft:normal_pocket_upgrade",
1, 2,
new ItemStack[] { upgrade.getCraftingItem(), pocketComputer },
PocketComputerItemFactory.create( -1, null, -1, ComputerFamily.Normal, upgrade )
).setRegistryName( new ResourceLocation( "computercraft:normal_pocket_upgrade_" + upgrade.getUpgradeID().toString().replace( ':', '_' ) ) )
);
registry.register(
new ImpostorRecipe( "computercraft:advanced_pocket_upgrade",
1, 2,
new ItemStack[] { upgrade.getCraftingItem(), advancedPocketComputer },
PocketComputerItemFactory.create( -1, null, -1, ComputerFamily.Advanced, upgrade )
).setRegistryName( new ResourceLocation( "computercraft:advanced_pocket_upgrade_" + upgrade.getUpgradeID().toString().replace( ':', '_' ) ) )
);
}
}
public static void registerTurtleUpgrades()
private static void registerTurtleUpgrades()
{
// Upgrades
ComputerCraft.TurtleUpgrades.wirelessModem = new TurtleModem( false, new ResourceLocation( "computercraft", "wireless_modem" ), 1 );
@ -325,7 +222,7 @@ public final class Registry
TurtleUpgrades.registerInternal( ComputerCraft.TurtleUpgrades.diamondHoe );
}
public static void registerPocketUpgrades()
private static void registerPocketUpgrades()
{
// Register pocket upgrades
ComputerCraft.PocketUpgrades.wirelessModem = new PocketModem( false );

@ -29,6 +29,7 @@ public class ItemPeripheral extends ItemPeripheralBase
super( block );
setTranslationKey( "computercraft:peripheral" );
setCreativeTab( ComputerCraft.mainCreativeTab );
setHasSubtypes( true );
}
@Nonnull

@ -23,7 +23,6 @@ public abstract class ItemPeripheralBase extends ItemBlock implements IPeriphera
{
super( block );
setMaxStackSize( 64 );
setHasSubtypes( true );
}
public abstract PeripheralType getPeripheralType( int damage );

@ -31,6 +31,7 @@ public class ItemCable extends ItemPeripheralBase
super( block );
setTranslationKey( "computercraft:cable" );
setCreativeTab( ComputerCraft.mainCreativeTab );
setHasSubtypes( true );
}
@Nonnull

@ -25,11 +25,8 @@ public class PocketModem extends AbstractPocketUpgrade
{
super(
advanced
? new ResourceLocation( "computercraft", "advanved_modem" )
? new ResourceLocation( "computercraft", "advanced_modem" )
: new ResourceLocation( "computercraft", "wireless_modem" ),
advanced
? "upgrade.computercraft:advanced_modem.adjective"
: "upgrade.computercraft:wireless_modem.adjective",
PeripheralItemFactory.create(
advanced ? PeripheralType.AdvancedModem : PeripheralType.WirelessModem,
null, 1

@ -38,8 +38,6 @@ public abstract class ItemTurtleBase extends ItemComputerBase implements ITurtle
setHasSubtypes( true );
}
public abstract ItemStack create( int id, String label, int colour, ITurtleUpgrade leftUpgrade, ITurtleUpgrade rightUpgrade, int fuelLevel, ResourceLocation overlay );
public abstract ComputerFamily getFamily();
@Override
@ -62,7 +60,7 @@ public abstract class ItemTurtleBase extends ItemComputerBase implements ITurtle
{
if( !TurtleUpgrades.suitableForFamily( family, upgrade ) ) continue;
ItemStack stack = TurtleItemFactory.create( -1, null, -1, family, upgrade, null, 0, null );
ItemStack stack = TurtleItemFactory.create( -1, null, -1, family, null, upgrade, 0, null );
if( !stack.isEmpty() && stack.getItem() == this ) list.add( stack );
}
}

@ -10,7 +10,6 @@ import dan200.computercraft.ComputerCraft;
import dan200.computercraft.api.turtle.ITurtleUpgrade;
import dan200.computercraft.api.turtle.TurtleSide;
import dan200.computercraft.shared.computer.core.ComputerFamily;
import dan200.computercraft.shared.computer.items.ItemComputer;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -27,59 +26,6 @@ public class ItemTurtleLegacy extends ItemTurtleBase
setCreativeTab( ComputerCraft.mainCreativeTab );
}
@Override
public ItemStack create( int id, String label, int colour, ITurtleUpgrade leftUpgrade, ITurtleUpgrade rightUpgrade, int fuelLevel, ResourceLocation overlay )
{
// Legacy turtles only support pickaxes and modems
if( (leftUpgrade != null && leftUpgrade != ComputerCraft.TurtleUpgrades.diamondPickaxe) ||
(rightUpgrade != null && rightUpgrade != ComputerCraft.TurtleUpgrades.wirelessModem) ||
(colour != -1) || (overlay != null) )
{
return null;
}
// Build the subtype
int subType = 0;
if( leftUpgrade != null )
{
subType = subType + 1;
}
if( rightUpgrade != null )
{
subType = subType + 2;
}
// Build the ID
int damage = subType;
if( id >= 0 && id <= ItemComputer.HIGHEST_DAMAGE_VALUE_ID )
{
damage += ((id + 1) << 2);
}
// Build the stack
ItemStack stack = new ItemStack( this, 1, damage );
if( fuelLevel > 0 || id > ItemComputer.HIGHEST_DAMAGE_VALUE_ID )
{
NBTTagCompound nbt = new NBTTagCompound();
if( fuelLevel > 0 )
{
nbt.setInteger( "fuelLevel", fuelLevel );
}
if( id > ItemComputer.HIGHEST_DAMAGE_VALUE_ID )
{
nbt.setInteger( "computerID", id );
}
stack.setTagCompound( nbt );
}
if( label != null )
{
stack.setStackDisplayName( label );
}
// Return the stack
return stack;
}
// IComputerItem implementation
@Override

@ -29,7 +29,6 @@ public class ItemTurtleNormal extends ItemTurtleBase
setCreativeTab( ComputerCraft.mainCreativeTab );
}
@Override
public ItemStack create( int id, String label, int colour, ITurtleUpgrade leftUpgrade, ITurtleUpgrade rightUpgrade, int fuelLevel, ResourceLocation overlay )
{
// Build the stack

@ -41,17 +41,9 @@ public class TurtleItemFactory
switch( family )
{
case Normal:
{
ItemTurtleBase legacy = ComputerCraft.Items.turtle;
ItemTurtleBase normal = ComputerCraft.Items.turtleExpanded;
ItemStack legacyStack = legacy.create( id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay );
return legacyStack != null ? legacyStack : normal.create( id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay );
}
return ComputerCraft.Items.turtleExpanded.create( id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay );
case Advanced:
{
ItemTurtleBase advanced = ComputerCraft.Items.turtleAdvanced;
return advanced.create( id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay );
}
return ComputerCraft.Items.turtleAdvanced.create( id, label, colour, leftUpgrade, rightUpgrade, fuelLevel, overlay );
default:
return ItemStack.EMPTY;
}

@ -11,11 +11,11 @@ import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraft.item.crafting.ShapelessRecipes;
import net.minecraft.util.JsonUtils;
import net.minecraft.util.NonNullList;
import net.minecraft.world.World;
import net.minecraftforge.common.crafting.CraftingHelper;
import net.minecraftforge.common.crafting.IRecipeFactory;
import net.minecraftforge.common.crafting.JsonContext;
@ -60,7 +60,7 @@ public class ImpostorShapelessRecipe extends ShapelessRecipes
{
String group = JsonUtils.getString( json, "group", "" );
NonNullList<Ingredient> ings = RecipeUtil.getIngredients( context, json );
ItemStack itemstack = ShapedRecipes.deserializeItem( JsonUtils.getJsonObject( json, "result" ), true );
ItemStack itemstack = CraftingHelper.getItemStack( JsonUtils.getJsonObject( json, "result" ), context );
return new ImpostorShapelessRecipe( group, itemstack, ings );
}
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_pocket_upgrade_computercraft_advanved_modem" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:pocket_computer", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_pocket_upgrade_computercraft_advanved_modem" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_pocket_upgrade_computercraft_speaker" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:pocket_computer", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_pocket_upgrade_computercraft_speaker" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_pocket_upgrade_computercraft_wireless_modem" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:pocket_computer", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_pocket_upgrade_computercraft_wireless_modem" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_computercraft_advanced_modem_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_computercraft_advanced_modem_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_computercraft_speaker_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_computercraft_speaker_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_computercraft_wireless_modem_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_computercraft_wireless_modem_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_minecraft_crafting_table_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_minecraft_crafting_table_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_minecraft_diamond_axe_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_minecraft_diamond_axe_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_minecraft_diamond_hoe_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_minecraft_diamond_hoe_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_minecraft_diamond_pickaxe_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_minecraft_diamond_pickaxe_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_minecraft_diamond_shovel_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_minecraft_diamond_shovel_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:advanced_turtle_upgrade_minecraft_diamond_sword_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle_advanced", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:advanced_turtle_upgrade_minecraft_diamond_sword_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_10" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_10" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_11" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_11" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_12" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_12" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_13" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_13" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_14" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_14" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_15" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_15" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_10" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_10" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_11" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_11" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_12" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_12" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_13" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_13" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_14" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_14" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:disk_imposter_convert_15" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:disk_imposter_convert_15" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -0,0 +1,116 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"computercraft:generated/disk/disk_1",
"computercraft:generated/disk/disk_2",
"computercraft:generated/disk/disk_3",
"computercraft:generated/disk/disk_4",
"computercraft:generated/disk/disk_5",
"computercraft:generated/disk/disk_6",
"computercraft:generated/disk/disk_7",
"computercraft:generated/disk/disk_8",
"computercraft:generated/disk/disk_9",
"computercraft:generated/disk/disk_10",
"computercraft:generated/disk/disk_11",
"computercraft:generated/disk/disk_12",
"computercraft:generated/disk/disk_13",
"computercraft:generated/disk/disk_14",
"computercraft:generated/disk/disk_15",
"computercraft:generated/disk/disk_16"
]
},
"criteria": {
"has_printer": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:peripheral", "data": 0 } ]
}
},
"has_recipe_1": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_1" }
},
"has_recipe_2": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_2" }
},
"has_recipe_3": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_3" }
},
"has_recipe_4": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_4" }
},
"has_recipe_5": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_5" }
},
"has_recipe_6": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_6" }
},
"has_recipe_7": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_7" }
},
"has_recipe_8": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_8" }
},
"has_recipe_9": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_9" }
},
"has_recipe_10": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_10" }
},
"has_recipe_11": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_11" }
},
"has_recipe_12": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_12" }
},
"has_recipe_13": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_13" }
},
"has_recipe_14": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_14" }
},
"has_recipe_15": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_15" }
},
"has_recipe_16": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/disk/disk_16" }
}
},
"requirements": [
[
"has_printer",
"has_recipe_1",
"has_recipe_2",
"has_recipe_3",
"has_recipe_4",
"has_recipe_5",
"has_recipe_6",
"has_recipe_7",
"has_recipe_8",
"has_recipe_9",
"has_recipe_10",
"has_recipe_11",
"has_recipe_12",
"has_recipe_13",
"has_recipe_14",
"has_recipe_15",
"has_recipe_16"
]
]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/pocket_advanced/computercraft_advanced_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:pocket_computer", "data": 1 },
{ "item": "computercraft:advanced_modem" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/pocket_advanced/computercraft_advanced_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/pocket_advanced/computercraft_speaker" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:pocket_computer", "data": 1 },
{ "item": "computercraft:peripheral", "data": 5 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/pocket_advanced/computercraft_speaker" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/pocket_advanced/computercraft_wireless_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:pocket_computer", "data": 1 },
{ "item": "computercraft:peripheral", "data": 1 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/pocket_advanced/computercraft_wireless_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/pocket_normal/computercraft_advanced_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:pocket_computer", "data": 0 },
{ "item": "computercraft:advanced_modem" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/pocket_normal/computercraft_advanced_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/pocket_normal/computercraft_speaker" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:pocket_computer", "data": 0 },
{ "item": "computercraft:peripheral", "data": 5 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/pocket_normal/computercraft_speaker" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/pocket_normal/computercraft_wireless_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:pocket_computer", "data": 0 },
{ "item": "computercraft:peripheral", "data": 1 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/pocket_normal/computercraft_wireless_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/computercraft_advanced_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "computercraft:advanced_modem" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/computercraft_advanced_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/computercraft_speaker" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "computercraft:peripheral", "data": 5 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/computercraft_speaker" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/computercraft_wireless_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "computercraft:peripheral", "data": 1 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/computercraft_wireless_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/minecraft_crafting_table" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "minecraft:crafting_table" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/minecraft_crafting_table" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/minecraft_diamond_axe" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "minecraft:diamond_axe" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/minecraft_diamond_axe" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/minecraft_diamond_hoe" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "minecraft:diamond_hoe" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/minecraft_diamond_hoe" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/minecraft_diamond_pickaxe" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "minecraft:diamond_pickaxe" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/minecraft_diamond_pickaxe" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/minecraft_diamond_shovel" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "minecraft:diamond_shovel" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/minecraft_diamond_shovel" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_advanced/minecraft_diamond_sword" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_advanced", "data": 0 },
{ "item": "minecraft:diamond_sword" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_advanced/minecraft_diamond_sword" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/computercraft_advanced_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "computercraft:advanced_modem" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/computercraft_advanced_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/computercraft_speaker" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "computercraft:peripheral", "data": 5 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/computercraft_speaker" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/computercraft_wireless_modem" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "computercraft:peripheral", "data": 1 }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/computercraft_wireless_modem" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/minecraft_crafting_table" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "minecraft:crafting_table" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/minecraft_crafting_table" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/minecraft_diamond_axe" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "minecraft:diamond_axe" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/minecraft_diamond_axe" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/minecraft_diamond_hoe" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "minecraft:diamond_hoe" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/minecraft_diamond_hoe" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/minecraft_diamond_pickaxe" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "minecraft:diamond_pickaxe" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/minecraft_diamond_pickaxe" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/minecraft_diamond_shovel" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "minecraft:diamond_shovel" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/minecraft_diamond_shovel" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -0,0 +1,22 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:generated/turtle_normal/minecraft_diamond_sword" ]
},
"criteria": {
"has_items": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{ "item": "computercraft:turtle_expanded", "data": 0 },
{ "item": "minecraft:diamond_sword" }
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:generated/turtle_normal/minecraft_diamond_sword" }
}
},
"requirements": [ [ "has_items", "has_the_recipe" ] ]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_pocket_upgrade_computercraft_advanved_modem" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:pocket_computer", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_pocket_upgrade_computercraft_advanved_modem" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_pocket_upgrade_computercraft_speaker" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:pocket_computer", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_pocket_upgrade_computercraft_speaker" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_pocket_upgrade_computercraft_wireless_modem" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:pocket_computer", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_pocket_upgrade_computercraft_wireless_modem" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_computercraft_advanced_modem_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_computercraft_advanced_modem_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_computercraft_speaker_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_computercraft_speaker_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_computercraft_wireless_modem_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_computercraft_wireless_modem_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_minecraft_crafting_table_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_minecraft_crafting_table_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_minecraft_diamond_axe_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_minecraft_diamond_axe_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_minecraft_diamond_hoe_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_minecraft_diamond_hoe_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_minecraft_diamond_pickaxe_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_minecraft_diamond_pickaxe_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_minecraft_diamond_shovel_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_minecraft_diamond_shovel_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,24 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [ "computercraft:normal_turtle_upgrade_minecraft_diamond_sword_1" ]
},
"criteria": {
"has_normal": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [ { "item": "computercraft:turtle", "data": 0 } ]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": { "recipe": "computercraft:normal_turtle_upgrade_minecraft_diamond_sword_1" }
}
},
"requirements": [
[
"has_normal",
"has_the_recipe"
]
]
}

@ -1,8 +0,0 @@
{
"type": "computercraft:impostor_shapeless",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" }
],
"result": { "item": "computercraft:disk", "data": 0 }
}

@ -9,5 +9,5 @@
"#": { "type": "forge:ore_dict", "ore": "ingotGold" },
"E": { "item": "minecraft:ender_eye" }
},
"result": { "item": "computercraft:advanced_modem", "data": 0 }
"result": { "item": "computercraft:advanced_modem" }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 0 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 1118481 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 9 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 15905484 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 10 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 8375321 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 11 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 14605932 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 12 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 10072818 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 13 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 15040472 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 14 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 15905331 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 15 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 15790320 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 1 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 13388876 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 2 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 5744206 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 3 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 8349260 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 4 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 3368652 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 5 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 11691749 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 6 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 5020082 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 7 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 10066329 } }
}

@ -0,0 +1,10 @@
{
"type": "computercraft:impostor_shapeless",
"group": "computercraft:disk",
"ingredients": [
{ "type": "forge:ore_dict", "ore": "dustRedstone" },
{ "type": "forge:ore_dict", "ore": "paper" },
{ "item": "minecraft:dye", "data": 8 }
],
"result": { "item": "computercraft:disk_expanded", "data": 0, "nbt": { "color": 5000268 } }
}

@ -0,0 +1,13 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_pocket_advanced",
"pattern": [
"#",
"T"
],
"key": {
"#": { "item": "computercraft:advanced_modem" },
"T": { "item": "computercraft:pocket_computer", "data": 1 }
},
"result": { "item": "computercraft:pocket_computer", "data": 1, "nbt": { "upgrade": "computercraft:advanced_modem" } }
}

@ -0,0 +1,13 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_pocket_advanced",
"pattern": [
"#",
"T"
],
"key": {
"#": { "item": "computercraft:peripheral", "data": 5 },
"T": { "item": "computercraft:pocket_computer", "data": 1 }
},
"result": { "item": "computercraft:pocket_computer", "data": 1, "nbt": { "upgrade": "computercraft:speaker" } }
}

@ -0,0 +1,13 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_pocket_advanced",
"pattern": [
"#",
"T"
],
"key": {
"#": { "item": "computercraft:peripheral", "data": 1 },
"T": { "item": "computercraft:pocket_computer", "data": 1 }
},
"result": { "item": "computercraft:pocket_computer", "data": 1, "nbt": { "upgrade": "computercraft:wireless_modem" } }
}

@ -0,0 +1,13 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_pocket_normal",
"pattern": [
"#",
"T"
],
"key": {
"#": { "item": "computercraft:advanced_modem" },
"T": { "item": "computercraft:pocket_computer", "data": 0 }
},
"result": { "item": "computercraft:pocket_computer", "data": 0, "nbt": { "upgrade": "computercraft:advanced_modem" } }
}

@ -0,0 +1,13 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_pocket_normal",
"pattern": [
"#",
"T"
],
"key": {
"#": { "item": "computercraft:peripheral", "data": 5 },
"T": { "item": "computercraft:pocket_computer", "data": 0 }
},
"result": { "item": "computercraft:pocket_computer", "data": 0, "nbt": { "upgrade": "computercraft:speaker" } }
}

@ -0,0 +1,13 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_pocket_normal",
"pattern": [
"#",
"T"
],
"key": {
"#": { "item": "computercraft:peripheral", "data": 1 },
"T": { "item": "computercraft:pocket_computer", "data": 0 }
},
"result": { "item": "computercraft:pocket_computer", "data": 0, "nbt": { "upgrade": "computercraft:wireless_modem" } }
}

@ -0,0 +1,12 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_turtle_advanced",
"pattern": [
"T#"
],
"key": {
"#": { "item": "computercraft:advanced_modem" },
"T": { "item": "computercraft:turtle_advanced", "data": 0 }
},
"result": { "item": "computercraft:turtle_advanced", "data": 0, "nbt": { "rightUpgrade": "computercraft:advanced_modem" } }
}

@ -0,0 +1,12 @@
{
"type": "computercraft:impostor_shaped",
"group": "computercraft:upgrade_turtle_advanced",
"pattern": [
"T#"
],
"key": {
"#": { "item": "computercraft:peripheral", "data": 5 },
"T": { "item": "computercraft:turtle_advanced", "data": 0 }
},
"result": { "item": "computercraft:turtle_advanced", "data": 0, "nbt": { "rightUpgrade": "computercraft:speaker" } }
}

Some files were not shown because too many files have changed in this diff Show More