diff --git a/build.gradle b/build.gradle index dd2bc44b0..ccf90db0f 100644 --- a/build.gradle +++ b/build.gradle @@ -25,39 +25,37 @@ apply plugin: 'maven-publish' apply plugin: 'maven' -def mc_version = "1.12.2" -def main_version = "1.81.1" -version = "${mc_version}-${main_version}" +version = mod_version group = "org.squiddev" -archivesBaseName = "cc-tweaked" +archivesBaseName = "cc-tweaked-${mc_version}" minecraft { - version = "${mc_version}-14.23.4.2749" + version = "${mc_version}-${forge_version}" runDir = "run" - replace '${version}', main_version + replace '${version}', mod_version - // the mappings can be changed at any time, and must be in the following format. - // snapshot_YYYYMMDD snapshot are built nightly. - // stable_# stables are built at the discretion of the MCP team. - // Use non-default mappings at your own risk. they may not allways work. - // simply re-run your setup task after changing the mappings to update your workspace. - mappings = "snapshot_20180724" - // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. + mappings = mappings_version + makeObfSourceJar = false } repositories { maven { - name = "JEI" - url = "http://dvs1.progwml6.com/files/maven" + name "JEI" + url "http://dvs1.progwml6.com/files/maven" } maven { - name = "squiddev" - url = "https://squiddev.cc/maven" + name "SquidDev" + url "https://squiddev.cc/maven" + } + ivy { + name "Charset" + artifactPattern "https://asie.pl/files/mods/Charset/LibOnly/[module]-[revision](-[classifier]).[ext]" + } + maven { + name "Amadornes" + url "http://maven.amadornes.com/" } - - ivy { artifactPattern "https://asie.pl/files/mods/Charset/LibOnly/[module]-[revision](-[classifier]).[ext]" } - maven { url "http://maven.amadornes.com/" } } configurations { @@ -152,7 +150,7 @@ task proguardMove(dependsOn: proguard) { reobfJar.dependsOn proguardMove processResources { - inputs.property "version", main_version + inputs.property "version", mod_version inputs.property "mcversion", mc_version def hash = 'none' @@ -174,7 +172,7 @@ task proguardMove(dependsOn: proguard) { include 'mcmod.info' include 'assets/computercraft/lua/rom/help/credits.txt' - expand 'version': main_version, + expand 'version': mod_version, 'mcversion': mc_version, 'gitcontributors': contributors.sort(false, String.CASE_INSENSITIVE_ORDER).join('\n') } @@ -260,22 +258,22 @@ task compressJson(dependsOn: extractAnnotationsJar) { pom.project { name 'CC: Tweaked' packaging 'jar' - description 'A fork of ComputerCraft which aims to provide earlier access to the more experimental and in-development features of the mod.' + description 'CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles and more to Minecraft.' url 'https://github.com/SquidDev-CC/CC-Tweaked' scm { - url 'https://github.com/dan200/ComputerCraft.git' + url 'https://github.com/SquidDev-CC/CC-Tweaked.git' } issueManagement { system 'github' - url 'https://github.com/dan200/ComputerCraft/issues' + url 'https://github.com/SquidDev-CC/CC-Tweaked/issues' } licenses { license { name 'ComputerCraft Public License, Version 1.0' - url 'https://github.com/dan200/ComputerCraft/blob/master/LICENSE' + url 'https://github.com/SquidDev-CC/CC-Tweaked/blob/master/LICENSE' distribution 'repo' } } @@ -298,7 +296,7 @@ task compressJson(dependsOn: extractAnnotationsJar) { gradle.projectsEvaluated { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint" + options.compilerArgs << "-Xlint" << "-Xlint:-processing" << "-Werror" } } diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..37d5ad43b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,7 @@ +# Mod properties +mod_version=1.81.1 + +# Minecraft properties +mc_version=1.12.2 +forge_version=14.23.4.2749 +mappings_version=snapshot_20180724 diff --git a/settings.gradle b/settings.gradle index 4643bcd82..fa77a12b7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'cc-tweaked' +rootProject.name = "cc-tweaked-${mc_version}" diff --git a/src/main/java/dan200/computercraft/shared/integration/jei/RecipeResolver.java b/src/main/java/dan200/computercraft/shared/integration/jei/RecipeResolver.java index 7f24c3002..ecbb1c82e 100644 --- a/src/main/java/dan200/computercraft/shared/integration/jei/RecipeResolver.java +++ b/src/main/java/dan200/computercraft/shared/integration/jei/RecipeResolver.java @@ -25,7 +25,6 @@ import net.minecraft.item.ItemStack; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.*; import static java.util.Arrays.asList; @@ -34,8 +33,9 @@ class RecipeResolver implements IRecipeRegistryPlugin { static final ComputerFamily[] MAIN_FAMILIES = new ComputerFamily[] { ComputerFamily.Normal, ComputerFamily.Advanced }; - private final Map> turtleUpgrades = new HashMap<>(); - private final Map> pocketUpgrades = new HashMap<>(); + private final Map> upgradeItemLookup = new HashMap<>(); + private final List pocketUpgrades = new ArrayList<>(); + private final List turtleUpgrades = new ArrayList<>(); private boolean initialised = false; /** @@ -50,51 +50,38 @@ private void setupCache() { ItemStack stack = upgrade.getCraftingItem(); if( stack.isEmpty() ) continue; - turtleUpgrades.computeIfAbsent( stack.getItem(), k -> new ArrayList<>( 1 ) ).add( upgrade ); + + UpgradeInfo info = new UpgradeInfo( stack, upgrade ); + upgradeItemLookup.computeIfAbsent( stack.getItem(), k -> new ArrayList<>( 1 ) ).add( info ); + turtleUpgrades.add( info ); } for( IPocketUpgrade upgrade : PocketUpgrades.getUpgrades() ) { ItemStack stack = upgrade.getCraftingItem(); if( stack.isEmpty() ) continue; - pocketUpgrades.computeIfAbsent( stack.getItem(), k -> new ArrayList<>( 1 ) ).add( upgrade ); + + UpgradeInfo info = new UpgradeInfo( stack, upgrade ); + upgradeItemLookup.computeIfAbsent( stack.getItem(), k -> new ArrayList<>( 1 ) ).add( info ); + pocketUpgrades.add( info ); } } - @Nullable - private ITurtleUpgrade getTurtleUpgrade( @Nonnull ItemStack stack ) + private boolean hasUpgrade( @Nonnull ItemStack stack ) { - if( stack.isEmpty() ) return null; + if( stack.isEmpty() ) return false; setupCache(); - List upgrades = turtleUpgrades.get( stack.getItem() ); - if( upgrades == null ) return null; + List upgrades = upgradeItemLookup.get( stack.getItem() ); + if( upgrades == null ) return false; - for( ITurtleUpgrade upgrade : upgrades ) + for( UpgradeInfo upgrade : upgrades ) { - ItemStack craftingStack = upgrade.getCraftingItem(); - if( !craftingStack.isEmpty() && InventoryUtil.areItemsSimilar( stack, craftingStack ) ) return upgrade; + ItemStack craftingStack = upgrade.stack; + if( !craftingStack.isEmpty() && InventoryUtil.areItemsSimilar( stack, craftingStack ) ) return true; } - return null; - } - - @Nullable - private IPocketUpgrade getPocketUpgrade( @Nonnull ItemStack stack ) - { - if( stack.isEmpty() ) return null; - - setupCache(); - List upgrades = pocketUpgrades.get( stack.getItem() ); - if( upgrades == null ) return null; - - for( IPocketUpgrade upgrade : upgrades ) - { - ItemStack craftingStack = upgrade.getCraftingItem(); - if( !craftingStack.isEmpty() && InventoryUtil.areItemsSimilar( stack, craftingStack ) ) return upgrade; - } - - return null; + return false; } @Nonnull @@ -109,7 +96,7 @@ public List getRecipeCategoryUids( @Nonnull IFocus focus ) { case INPUT: return stack.getItem() instanceof ITurtleItem || stack.getItem() instanceof ItemPocketComputer || - getTurtleUpgrade( stack ) != null || getPocketUpgrade( stack ) != null + hasUpgrade( stack ) ? Collections.singletonList( VanillaRecipeCategoryUid.CRAFTING ) : Collections.emptyList(); case OUTPUT: @@ -152,6 +139,8 @@ public List getRecipeWrappers( @Nonnull IRecipeCat @Nonnull private List findRecipesWithInput( @Nonnull ItemStack stack ) { + setupCache(); + if( stack.getItem() instanceof ITurtleItem ) { // Suggest possible upgrades which can be applied to this turtle @@ -161,16 +150,17 @@ private List findRecipesWithInput( @Nonnull ItemStack stack ) if( left != null && right != null ) return Collections.emptyList(); List recipes = new ArrayList<>(); - for( ITurtleUpgrade upgrade : TurtleUpgrades.getUpgrades() ) + for( UpgradeInfo upgrade : turtleUpgrades ) { + // The turtle is facing towards us, so upgrades on the left are actually crafted on the right. if( left == null ) { - recipes.add( horizontal( asList( stack, upgrade.getCraftingItem() ), turtleWith( stack, upgrade, right ) ) ); + recipes.add( horizontal( asList( stack, upgrade.stack ), turtleWith( stack, upgrade.turtle, right ) ) ); } if( right == null ) { - recipes.add( horizontal( asList( stack, upgrade.getCraftingItem() ), turtleWith( stack, left, upgrade ) ) ); + recipes.add( horizontal( asList( upgrade.stack, stack ), turtleWith( stack, left, upgrade.turtle ) ) ); } } @@ -184,40 +174,44 @@ else if( stack.getItem() instanceof ItemPocketComputer ) if( back != null ) return Collections.emptyList(); List recipes = new ArrayList<>(); - for( IPocketUpgrade upgrade : PocketUpgrades.getUpgrades() ) + for( UpgradeInfo upgrade : pocketUpgrades ) { - recipes.add( vertical( asList( stack, upgrade.getCraftingItem() ), pocketWith( stack, upgrade ) ) ); + recipes.add( vertical( asList( stack, upgrade.stack ), pocketWith( stack, upgrade.pocket ) ) ); } return recipes; } else { - // Find places this may be used as an upgrade. - ITurtleUpgrade turtle = getTurtleUpgrade( stack ); - IPocketUpgrade pocket = getPocketUpgrade( stack ); - if( turtle == null && pocket == null ) return Collections.emptyList(); + List upgrades = upgradeItemLookup.get( stack.getItem() ); + if( upgrades == null ) return Collections.emptyList(); - List recipes = new ArrayList<>( 1 ); - for( ComputerFamily family : MAIN_FAMILIES ) + List recipes = null; + boolean multiple = false; + for( UpgradeInfo upgrade : upgrades ) { - if( turtle != null && TurtleUpgrades.suitableForFamily( family, turtle ) ) + ItemStack craftingStack = upgrade.stack; + if( craftingStack.isEmpty() || !InventoryUtil.areItemsSimilar( stack, craftingStack ) ) { - recipes.add( horizontal( - asList( stack, TurtleItemFactory.create( -1, null, -1, family, null, null, 0, null ) ), - TurtleItemFactory.create( -1, null, -1, family, turtle, null, 0, null ) - ) ); + continue; } - if( pocket != null ) + if( recipes == null ) { - recipes.add( vertical( - asList( stack, PocketComputerItemFactory.create( -1, null, -1, family, null ) ), - PocketComputerItemFactory.create( -1, null, -1, family, pocket ) - ) ); + recipes = upgrade.getRecipes(); + } + else + { + if( !multiple ) + { + multiple = true; + recipes = new ArrayList<>( recipes ); + } + recipes.addAll( upgrade.getRecipes() ); } } - return recipes; + + return recipes == null ? Collections.emptyList() : recipes; } } @@ -233,14 +227,15 @@ private List findRecipesWithOutput( @Nonnull ItemStack stack ) ITurtleUpgrade left = item.getUpgrade( stack, TurtleSide.Left ); ITurtleUpgrade right = item.getUpgrade( stack, TurtleSide.Right ); + // The turtle is facing towards us, so upgrades on the left are actually crafted on the right. if( left != null ) { - recipes.add( horizontal( asList( left.getCraftingItem(), turtleWith( stack, null, right ) ), stack ) ); + recipes.add( horizontal( asList( turtleWith( stack, null, right ), left.getCraftingItem() ), stack ) ); } if( right != null ) { - recipes.add( horizontal( asList( turtleWith( stack, left, null ), right.getCraftingItem() ), stack ) ); + recipes.add( horizontal( asList( right.getCraftingItem(), turtleWith( stack, left, null ) ), stack ) ); } return cast( recipes ); @@ -298,7 +293,7 @@ private static Shaped horizontal( List input, ItemStack result ) return new Shaped( input.size(), 1, input, result ); } - static class Shaped implements IShapedCraftingRecipeWrapper + private static class Shaped implements IShapedCraftingRecipeWrapper { private final int width; private final int height; @@ -332,4 +327,55 @@ public void getIngredients( @Nonnull IIngredients ingredients ) ingredients.setOutput( VanillaTypes.ITEM, output ); } } + + private static class UpgradeInfo + { + final ItemStack stack; + final ITurtleUpgrade turtle; + final IPocketUpgrade pocket; + ArrayList recipes; + + UpgradeInfo( ItemStack stack, ITurtleUpgrade turtle ) + { + this.stack = stack; + this.turtle = turtle; + this.pocket = null; + } + + UpgradeInfo( ItemStack stack, IPocketUpgrade pocket ) + { + this.stack = stack; + this.turtle = null; + this.pocket = pocket; + } + + List getRecipes() + { + ArrayList recipes = this.recipes; + if( recipes != null ) return recipes; + + recipes = this.recipes = new ArrayList<>( 4 ); + for( ComputerFamily family : MAIN_FAMILIES ) + { + if( turtle != null && TurtleUpgrades.suitableForFamily( family, turtle ) ) + { + recipes.add( horizontal( + asList( stack, TurtleItemFactory.create( -1, null, -1, family, null, null, 0, null ) ), + TurtleItemFactory.create( -1, null, -1, family, null, turtle, 0, null ) + ) ); + } + + if( pocket != null ) + { + recipes.add( vertical( + asList( stack, PocketComputerItemFactory.create( -1, null, -1, family, null ) ), + PocketComputerItemFactory.create( -1, null, -1, family, pocket ) + ) ); + } + } + + recipes.trimToSize(); + return recipes; + } + } } diff --git a/src/main/java/dan200/computercraft/shared/pocket/core/PocketServerComputer.java b/src/main/java/dan200/computercraft/shared/pocket/core/PocketServerComputer.java index de39365e5..b560db4a5 100644 --- a/src/main/java/dan200/computercraft/shared/pocket/core/PocketServerComputer.java +++ b/src/main/java/dan200/computercraft/shared/pocket/core/PocketServerComputer.java @@ -42,6 +42,7 @@ public PocketServerComputer( World world, int computerID, String label, int inst @Nullable @Override + @Deprecated public Entity getEntity() { return m_entity; diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_advanced_modem.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_advanced_modem.json index 65ca82de8..ab4c156f4 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_advanced_modem.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_advanced_modem.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "computercraft:advanced_modem" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_speaker.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_speaker.json index ec9cdcf96..895f4afb5 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_speaker.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_speaker.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "computercraft:peripheral", "data": 5 }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_wireless_modem.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_wireless_modem.json index b5b739769..a7bd2ad27 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_wireless_modem.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/computercraft_wireless_modem.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "computercraft:peripheral", "data": 1 }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_crafting_table.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_crafting_table.json index 0349b81f7..d98931c8b 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_crafting_table.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_crafting_table.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:crafting_table" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_axe.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_axe.json index 1560e882d..17ab077ac 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_axe.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_axe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_axe" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_hoe.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_hoe.json index f5a2ba319..cce400925 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_hoe.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_hoe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_hoe" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_pickaxe.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_pickaxe.json index 3da5c02be..c014870f6 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_pickaxe.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_pickaxe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_pickaxe" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_shovel.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_shovel.json index f1194b860..c6c1f7dac 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_shovel.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_shovel.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_shovel" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_sword.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_sword.json index e13b1f0ef..63429bd9a 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_sword.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_advanced/minecraft_diamond_sword.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_advanced", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_sword" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_advanced_modem.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_advanced_modem.json index 511de8704..6193845da 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_advanced_modem.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_advanced_modem.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "computercraft:advanced_modem" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_speaker.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_speaker.json index 2cae837ce..4410b2d4d 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_speaker.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_speaker.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "computercraft:peripheral", "data": 5 }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_wireless_modem.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_wireless_modem.json index 3d55f9757..4640378a6 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_wireless_modem.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/computercraft_wireless_modem.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "computercraft:peripheral", "data": 1 }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_crafting_table.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_crafting_table.json index 02c73b32b..98c02e23b 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_crafting_table.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_crafting_table.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:crafting_table" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_axe.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_axe.json index 630ef264e..45a62ce3c 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_axe.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_axe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_axe" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_hoe.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_hoe.json index 5f096975e..8d9fca28a 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_hoe.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_hoe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_hoe" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_pickaxe.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_pickaxe.json index e6f0c9728..0f0d2c9a8 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_pickaxe.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_pickaxe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_pickaxe" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_shovel.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_shovel.json index 5ae13c28d..e612f5284 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_shovel.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_shovel.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_shovel" }, diff --git a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_sword.json b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_sword.json index decde33d0..c18b97360 100644 --- a/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_sword.json +++ b/src/main/resources/assets/computercraft/recipes/generated/turtle_normal/minecraft_diamond_sword.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_normal", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": "minecraft:diamond_sword" }, diff --git a/tools/turtle_upgrade_recipe.json b/tools/turtle_upgrade_recipe.json index a41c2d251..8cbb6cdcf 100644 --- a/tools/turtle_upgrade_recipe.json +++ b/tools/turtle_upgrade_recipe.json @@ -2,7 +2,7 @@ "type": "computercraft:impostor_shaped", "group": "computercraft:upgrade_turtle_${turtle_family}", "pattern": [ - "T#" + "#T" ], "key": { "#": { "item": ${upgrade_item} },