diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index fac67e808..77e322a76 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -174,15 +174,7 @@ } private void func_184117_aA() { -@@ -1430,6 +1446,7 @@ - this.field_71439_g.func_71040_bB(Screen.hasControlDown()); - } - } -+ if (field_71441_e != null) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(field_71441_e)); - - boolean flag2 = this.field_71474_y.field_74343_n != ChatVisibility.HIDDEN; - if (flag2) { -@@ -1526,6 +1543,12 @@ +@@ -1526,6 +1542,12 @@ this.func_147108_a(worldloadprogressscreen); while(!this.field_71437_Z.func_71200_ad()) { @@ -195,7 +187,7 @@ worldloadprogressscreen.tick(); this.func_195542_b(false); -@@ -1546,11 +1569,17 @@ +@@ -1546,11 +1568,17 @@ networkmanager.func_150719_a(new ClientLoginNetHandler(networkmanager, this, (Screen)null, (p_213261_0_) -> { })); networkmanager.func_179290_a(new CHandshakePacket(socketaddress.toString(), 0, ProtocolType.LOGIN)); @@ -214,7 +206,7 @@ WorkingScreen workingscreen = new WorkingScreen(); workingscreen.func_200210_a(new TranslationTextComponent("connect.joining")); this.func_213241_c(workingscreen); -@@ -1623,6 +1652,7 @@ +@@ -1623,6 +1651,7 @@ } TileEntityRendererDispatcher.field_147556_a.func_147543_a(p_213257_1_); @@ -222,7 +214,7 @@ } public final boolean func_71355_q() { -@@ -1648,112 +1678,8 @@ +@@ -1648,112 +1677,8 @@ private void func_147112_ai() { if (this.field_71476_x != null && this.field_71476_x.func_216346_c() != RayTraceResult.Type.MISS) { @@ -337,7 +329,7 @@ } } -@@ -1825,6 +1751,7 @@ +@@ -1825,6 +1750,7 @@ return field_71432_P; } @@ -345,7 +337,7 @@ public CompletableFuture func_213245_w() { return this.func_213169_a(this::func_213237_g).thenCompose((p_213240_0_) -> { return p_213240_0_; -@@ -1968,6 +1895,8 @@ +@@ -1968,6 +1894,8 @@ } public MusicTicker.MusicType func_147109_W() { @@ -354,7 +346,7 @@ if (this.field_71462_r instanceof WinGameScreen) { return MusicTicker.MusicType.CREDITS; } else if (this.field_71439_g == null) { -@@ -2124,4 +2053,12 @@ +@@ -2124,4 +2052,12 @@ public LoadingGui func_213250_au() { return this.field_213279_p; } diff --git a/patches/minecraft/net/minecraft/data/TagsProvider.java.patch b/patches/minecraft/net/minecraft/data/TagsProvider.java.patch new file mode 100644 index 000000000..c62e9d5bd --- /dev/null +++ b/patches/minecraft/net/minecraft/data/TagsProvider.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/data/TagsProvider.java ++++ b/net/minecraft/data/TagsProvider.java +@@ -48,6 +48,7 @@ + tagcollection.func_200039_c().forEach((p_223474_2_, p_223474_3_) -> { + JsonObject jsonobject = p_223474_3_.func_200571_a(this.field_200435_c::func_177774_c); + Path path = this.func_200431_a(p_223474_2_); ++ if (path == null) return; //Forge: Allow running this data provider without writing it. Recipe provider needs valid tags. + + try { + String s = field_200437_e.toJson((JsonElement)jsonobject); diff --git a/src/generated/resources/data/minecraft/recipes/acacia_fence.json b/src/generated/resources/data/minecraft/recipes/acacia_fence.json new file mode 100644 index 000000000..437fdd65d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/acacia_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence", + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "result": { + "item": "minecraft:acacia_fence", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/acacia_fence_gate.json b/src/generated/resources/data/minecraft/recipes/acacia_fence_gate.json new file mode 100644 index 000000000..d3e813488 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/acacia_fence_gate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence_gate", + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "result": { + "item": "minecraft:acacia_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/acacia_sign.json b/src/generated/resources/data/minecraft/recipes/acacia_sign.json new file mode 100644 index 000000000..c18c84503 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/acacia_sign.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + " X " + ], + "key": { + "#": { + "item": "minecraft:acacia_planks" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:acacia_sign", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/activator_rail.json b/src/generated/resources/data/minecraft/recipes/activator_rail.json new file mode 100644 index 000000000..79a741311 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/activator_rail.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XSX", + "X#X", + "XSX" + ], + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "S": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:activator_rail", + "count": 6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/andesite.json b/src/generated/resources/data/minecraft/recipes/andesite.json new file mode 100644 index 000000000..341fac834 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/andesite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diorite" + }, + { + "tag": "forge:cobblestone" + } + ], + "result": { + "item": "minecraft:andesite", + "count": 2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/anvil.json b/src/generated/resources/data/minecraft/recipes/anvil.json new file mode 100644 index 000000000..89f8d0dea --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/anvil.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "III", + " i ", + "iii" + ], + "key": { + "I": { + "item": "minecraft:iron_block" + }, + "i": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/armor_stand.json b/src/generated/resources/data/minecraft/recipes/armor_stand.json new file mode 100644 index 000000000..c520081df --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/armor_stand.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "///", + " / ", + "/_/" + ], + "key": { + "/": { + "tag": "forge:rods/wooden" + }, + "_": { + "item": "minecraft:smooth_stone_slab" + } + }, + "result": { + "item": "minecraft:armor_stand" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/arrow.json b/src/generated/resources/data/minecraft/recipes/arrow.json new file mode 100644 index 000000000..fc2f6db8d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/arrow.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "Y" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "item": "minecraft:flint" + }, + "Y": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "minecraft:arrow", + "count": 4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/birch_fence.json b/src/generated/resources/data/minecraft/recipes/birch_fence.json new file mode 100644 index 000000000..a49a70b2b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/birch_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence", + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "result": { + "item": "minecraft:birch_fence", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/birch_fence_gate.json b/src/generated/resources/data/minecraft/recipes/birch_fence_gate.json new file mode 100644 index 000000000..52931a7e1 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/birch_fence_gate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence_gate", + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "result": { + "item": "minecraft:birch_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/birch_sign.json b/src/generated/resources/data/minecraft/recipes/birch_sign.json new file mode 100644 index 000000000..80453b675 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/birch_sign.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + " X " + ], + "key": { + "#": { + "item": "minecraft:birch_planks" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:birch_sign", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/black_banner.json b/src/generated/resources/data/minecraft/recipes/black_banner.json new file mode 100644 index 000000000..28821df7b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/black_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:black_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:black_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/blast_furnace.json b/src/generated/resources/data/minecraft/recipes/blast_furnace.json new file mode 100644 index 000000000..d373e6207 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/blast_furnace.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "III", + "IXI", + "###" + ], + "key": { + "#": { + "item": "minecraft:smooth_stone" + }, + "X": { + "item": "minecraft:furnace" + }, + "I": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:blast_furnace" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/blue_banner.json b/src/generated/resources/data/minecraft/recipes/blue_banner.json new file mode 100644 index 000000000..d2e4c543e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/blue_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:blue_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:blue_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/bow.json b/src/generated/resources/data/minecraft/recipes/bow.json new file mode 100644 index 000000000..8f46cba99 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/bow.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " #X", + "# X", + " #X" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "item": "minecraft:string" + } + }, + "result": { + "item": "minecraft:bow" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/brewing_stand.json b/src/generated/resources/data/minecraft/recipes/brewing_stand.json new file mode 100644 index 000000000..60586eb3e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/brewing_stand.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + "###" + ], + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:brewing_stand" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/brown_banner.json b/src/generated/resources/data/minecraft/recipes/brown_banner.json new file mode 100644 index 000000000..2b08a03a6 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/brown_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:brown_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:brown_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/bucket.json b/src/generated/resources/data/minecraft/recipes/bucket.json new file mode 100644 index 000000000..77d7d71e8 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/bucket.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# #", + " # " + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/campfire.json b/src/generated/resources/data/minecraft/recipes/campfire.json new file mode 100644 index 000000000..a3c400d5d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/campfire.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " S ", + "SCS", + "LLL" + ], + "key": { + "L": { + "tag": "minecraft:logs" + }, + "S": { + "tag": "forge:rods/wooden" + }, + "C": { + "tag": "minecraft:coals" + } + }, + "result": { + "item": "minecraft:campfire" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/cauldron.json b/src/generated/resources/data/minecraft/recipes/cauldron.json new file mode 100644 index 000000000..2d5443c75 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/cauldron.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# #", + "# #", + "###" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:cauldron" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/chest_minecart.json b/src/generated/resources/data/minecraft/recipes/chest_minecart.json new file mode 100644 index 000000000..3d8251e90 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/chest_minecart.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "A", + "B" + ], + "key": { + "A": { + "tag": "forge:chests/wooden" + }, + "B": { + "item": "minecraft:minecart" + } + }, + "result": { + "item": "minecraft:chest_minecart" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/clock.json b/src/generated/resources/data/minecraft/recipes/clock.json new file mode 100644 index 000000000..214219d64 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/clock.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " # ", + "#X#", + " # " + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "result": { + "item": "minecraft:clock" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/cobblestone_slab.json b/src/generated/resources/data/minecraft/recipes/cobblestone_slab.json new file mode 100644 index 000000000..8ad8b6093 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/cobblestone_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:cobblestone_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/cobblestone_stairs.json b/src/generated/resources/data/minecraft/recipes/cobblestone_stairs.json new file mode 100644 index 000000000..be5fc6672 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/cobblestone_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:cobblestone_stairs", + "count": 4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/cobblestone_wall.json b/src/generated/resources/data/minecraft/recipes/cobblestone_wall.json new file mode 100644 index 000000000..6fdfa0fd2 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/cobblestone_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:cobblestone_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/compass.json b/src/generated/resources/data/minecraft/recipes/compass.json new file mode 100644 index 000000000..15047ad49 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/compass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " # ", + "#X#", + " # " + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "result": { + "item": "minecraft:compass" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/crossbow.json b/src/generated/resources/data/minecraft/recipes/crossbow.json new file mode 100644 index 000000000..01c9d6181 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/crossbow.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "#\u0026#", + "~$~", + " # " + ], + "key": { + "~": { + "item": "minecraft:string" + }, + "#": { + "tag": "forge:rods/wooden" + }, + "\u0026": { + "tag": "forge:ingots/iron" + }, + "$": { + "item": "minecraft:tripwire_hook" + } + }, + "result": { + "item": "minecraft:crossbow" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/cyan_banner.json b/src/generated/resources/data/minecraft/recipes/cyan_banner.json new file mode 100644 index 000000000..05c5471c8 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/cyan_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:cyan_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:cyan_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/dark_oak_fence.json b/src/generated/resources/data/minecraft/recipes/dark_oak_fence.json new file mode 100644 index 000000000..7336819a9 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/dark_oak_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence", + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "result": { + "item": "minecraft:dark_oak_fence", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/dark_oak_fence_gate.json b/src/generated/resources/data/minecraft/recipes/dark_oak_fence_gate.json new file mode 100644 index 000000000..9febb1cd0 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/dark_oak_fence_gate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence_gate", + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "result": { + "item": "minecraft:dark_oak_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/dark_oak_sign.json b/src/generated/resources/data/minecraft/recipes/dark_oak_sign.json new file mode 100644 index 000000000..c0fb8b30a --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/dark_oak_sign.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + " X " + ], + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:dark_oak_sign", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/detector_rail.json b/src/generated/resources/data/minecraft/recipes/detector_rail.json new file mode 100644 index 000000000..e66c88509 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/detector_rail.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "X#X", + "XRX" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "item": "minecraft:stone_pressure_plate" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:detector_rail", + "count": 6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_axe.json b/src/generated/resources/data/minecraft/recipes/diamond_axe.json new file mode 100644 index 000000000..a0457247c --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_axe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_boots.json b/src/generated/resources/data/minecraft/recipes/diamond_boots.json new file mode 100644 index 000000000..8f9da8621 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_boots.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "X X" + ], + "key": { + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_chestplate.json b/src/generated/resources/data/minecraft/recipes/diamond_chestplate.json new file mode 100644 index 000000000..8df73f0c8 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_chestplate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "key": { + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_chestplate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_helmet.json b/src/generated/resources/data/minecraft/recipes/diamond_helmet.json new file mode 100644 index 000000000..6adbf418c --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_helmet.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + "X X" + ], + "key": { + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_hoe.json b/src/generated/resources/data/minecraft/recipes/diamond_hoe.json new file mode 100644 index 000000000..489d8e65e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_hoe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_leggings.json b/src/generated/resources/data/minecraft/recipes/diamond_leggings.json new file mode 100644 index 000000000..4caf75e20 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_leggings.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + "X X", + "X X" + ], + "key": { + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_leggings" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_pickaxe.json b/src/generated/resources/data/minecraft/recipes/diamond_pickaxe.json new file mode 100644 index 000000000..7c8cd4c21 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_pickaxe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_shovel.json b/src/generated/resources/data/minecraft/recipes/diamond_shovel.json new file mode 100644 index 000000000..6cc412d26 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_shovel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diamond_sword.json b/src/generated/resources/data/minecraft/recipes/diamond_sword.json new file mode 100644 index 000000000..66a4c384e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diamond_sword.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:diamond_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/diorite.json b/src/generated/resources/data/minecraft/recipes/diorite.json new file mode 100644 index 000000000..ba388785e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/diorite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CQ", + "QC" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "C": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:diorite", + "count": 2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/dispenser.json b/src/generated/resources/data/minecraft/recipes/dispenser.json new file mode 100644 index 000000000..cad5713b3 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/dispenser.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + }, + "X": { + "item": "minecraft:bow" + } + }, + "result": { + "item": "minecraft:dispenser" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/dropper.json b/src/generated/resources/data/minecraft/recipes/dropper.json new file mode 100644 index 000000000..b07cbf454 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/dropper.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "# #", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:dropper" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/enchanting_table.json b/src/generated/resources/data/minecraft/recipes/enchanting_table.json new file mode 100644 index 000000000..8a436066d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/enchanting_table.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + "D#D", + "###" + ], + "key": { + "B": { + "item": "minecraft:book" + }, + "#": { + "item": "minecraft:obsidian" + }, + "D": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:enchanting_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/fishing_rod.json b/src/generated/resources/data/minecraft/recipes/fishing_rod.json new file mode 100644 index 000000000..80d253290 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/fishing_rod.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " #", + " #X", + "# X" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "item": "minecraft:string" + } + }, + "result": { + "item": "minecraft:fishing_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/flint_and_steel.json b/src/generated/resources/data/minecraft/recipes/flint_and_steel.json new file mode 100644 index 000000000..2d86c4892 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/flint_and_steel.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/iron" + }, + { + "item": "minecraft:flint" + } + ], + "result": { + "item": "minecraft:flint_and_steel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/furnace.json b/src/generated/resources/data/minecraft/recipes/furnace.json new file mode 100644 index 000000000..df635a157 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/furnace.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "# #", + "###" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:furnace" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_apple.json b/src/generated/resources/data/minecraft/recipes/golden_apple.json new file mode 100644 index 000000000..e8f444ca1 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_apple.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "X": { + "item": "minecraft:apple" + } + }, + "result": { + "item": "minecraft:golden_apple" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_axe.json b/src/generated/resources/data/minecraft/recipes/golden_axe.json new file mode 100644 index 000000000..ca3fa80be --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_axe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_boots.json b/src/generated/resources/data/minecraft/recipes/golden_boots.json new file mode 100644 index 000000000..920df4c9f --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_boots.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "X X" + ], + "key": { + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_chestplate.json b/src/generated/resources/data/minecraft/recipes/golden_chestplate.json new file mode 100644 index 000000000..a9cf7a109 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_chestplate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "key": { + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_chestplate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_helmet.json b/src/generated/resources/data/minecraft/recipes/golden_helmet.json new file mode 100644 index 000000000..dd0e0f517 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_helmet.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + "X X" + ], + "key": { + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_hoe.json b/src/generated/resources/data/minecraft/recipes/golden_hoe.json new file mode 100644 index 000000000..ce4f3bd7b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_hoe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_leggings.json b/src/generated/resources/data/minecraft/recipes/golden_leggings.json new file mode 100644 index 000000000..e09ae5e9e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_leggings.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + "X X", + "X X" + ], + "key": { + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_leggings" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_pickaxe.json b/src/generated/resources/data/minecraft/recipes/golden_pickaxe.json new file mode 100644 index 000000000..d10ddcaf9 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_pickaxe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_shovel.json b/src/generated/resources/data/minecraft/recipes/golden_shovel.json new file mode 100644 index 000000000..659814281 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_shovel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/golden_sword.json b/src/generated/resources/data/minecraft/recipes/golden_sword.json new file mode 100644 index 000000000..fed338f60 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/golden_sword.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:golden_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/gray_banner.json b/src/generated/resources/data/minecraft/recipes/gray_banner.json new file mode 100644 index 000000000..c314f6771 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/gray_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:gray_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:gray_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/green_banner.json b/src/generated/resources/data/minecraft/recipes/green_banner.json new file mode 100644 index 000000000..7af876d1f --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/green_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:green_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:green_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/grindstone.json b/src/generated/resources/data/minecraft/recipes/grindstone.json new file mode 100644 index 000000000..c962b0122 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/grindstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I-I", + "# #" + ], + "key": { + "I": { + "tag": "forge:rods/wooden" + }, + "-": { + "item": "minecraft:stone_slab" + }, + "#": { + "tag": "minecraft:planks" + } + }, + "result": { + "item": "minecraft:grindstone" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/heavy_weighted_pressure_plate.json b/src/generated/resources/data/minecraft/recipes/heavy_weighted_pressure_plate.json new file mode 100644 index 000000000..279e10403 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/heavy_weighted_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:heavy_weighted_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/hopper.json b/src/generated/resources/data/minecraft/recipes/hopper.json new file mode 100644 index 000000000..a430277a4 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/hopper.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I I", + "ICI", + " I " + ], + "key": { + "C": { + "tag": "forge:chests/wooden" + }, + "I": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:hopper" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_axe.json b/src/generated/resources/data/minecraft/recipes/iron_axe.json new file mode 100644 index 000000000..caa59f9fc --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_axe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_bars.json b/src/generated/resources/data/minecraft/recipes/iron_bars.json new file mode 100644 index 000000000..6766dbc5a --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_bars.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_bars", + "count": 16 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_boots.json b/src/generated/resources/data/minecraft/recipes/iron_boots.json new file mode 100644 index 000000000..d62101499 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_boots.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "X X" + ], + "key": { + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_chestplate.json b/src/generated/resources/data/minecraft/recipes/iron_chestplate.json new file mode 100644 index 000000000..a2f926ca1 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_chestplate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "key": { + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_chestplate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_door.json b/src/generated/resources/data/minecraft/recipes/iron_door.json new file mode 100644 index 000000000..6bb6f3738 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_door.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##", + "##", + "##" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_door", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_helmet.json b/src/generated/resources/data/minecraft/recipes/iron_helmet.json new file mode 100644 index 000000000..64d24757d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_helmet.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + "X X" + ], + "key": { + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_hoe.json b/src/generated/resources/data/minecraft/recipes/iron_hoe.json new file mode 100644 index 000000000..22195aca5 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_hoe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_leggings.json b/src/generated/resources/data/minecraft/recipes/iron_leggings.json new file mode 100644 index 000000000..638a7df8d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_leggings.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + "X X", + "X X" + ], + "key": { + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_leggings" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_pickaxe.json b/src/generated/resources/data/minecraft/recipes/iron_pickaxe.json new file mode 100644 index 000000000..875248c22 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_pickaxe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_shovel.json b/src/generated/resources/data/minecraft/recipes/iron_shovel.json new file mode 100644 index 000000000..ce2d37688 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_shovel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_sword.json b/src/generated/resources/data/minecraft/recipes/iron_sword.json new file mode 100644 index 000000000..f13c0a30d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_sword.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/iron_trapdoor.json b/src/generated/resources/data/minecraft/recipes/iron_trapdoor.json new file mode 100644 index 000000000..a0fde724c --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/iron_trapdoor.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##", + "##" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:iron_trapdoor" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/item_frame.json b/src/generated/resources/data/minecraft/recipes/item_frame.json new file mode 100644 index 000000000..f62eda4ee --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/item_frame.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "item": "minecraft:leather" + } + }, + "result": { + "item": "minecraft:item_frame" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/jukebox.json b/src/generated/resources/data/minecraft/recipes/jukebox.json new file mode 100644 index 000000000..7cd4ac54d --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/jukebox.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "tag": "minecraft:planks" + }, + "X": { + "tag": "forge:gems/diamond" + } + }, + "result": { + "item": "minecraft:jukebox" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/jungle_fence.json b/src/generated/resources/data/minecraft/recipes/jungle_fence.json new file mode 100644 index 000000000..c324c192f --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/jungle_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence", + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "result": { + "item": "minecraft:jungle_fence", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/jungle_fence_gate.json b/src/generated/resources/data/minecraft/recipes/jungle_fence_gate.json new file mode 100644 index 000000000..af206fa78 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/jungle_fence_gate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence_gate", + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "result": { + "item": "minecraft:jungle_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/jungle_sign.json b/src/generated/resources/data/minecraft/recipes/jungle_sign.json new file mode 100644 index 000000000..c1218aa9f --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/jungle_sign.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + " X " + ], + "key": { + "#": { + "item": "minecraft:jungle_planks" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:jungle_sign", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/ladder.json b/src/generated/resources/data/minecraft/recipes/ladder.json new file mode 100644 index 000000000..bf9578945 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/ladder.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# #", + "###", + "# #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:ladder", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/lever.json b/src/generated/resources/data/minecraft/recipes/lever.json new file mode 100644 index 000000000..816e86ea1 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/lever.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:lever" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/light_blue_banner.json b/src/generated/resources/data/minecraft/recipes/light_blue_banner.json new file mode 100644 index 000000000..b0616d5b4 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/light_blue_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:light_blue_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:light_blue_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/light_gray_banner.json b/src/generated/resources/data/minecraft/recipes/light_gray_banner.json new file mode 100644 index 000000000..bb5c45607 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/light_gray_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:light_gray_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:light_gray_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/light_weighted_pressure_plate.json b/src/generated/resources/data/minecraft/recipes/light_weighted_pressure_plate.json new file mode 100644 index 000000000..54eb38552 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/light_weighted_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:light_weighted_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/lime_banner.json b/src/generated/resources/data/minecraft/recipes/lime_banner.json new file mode 100644 index 000000000..0ca55606b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/lime_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:lime_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:lime_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/magenta_banner.json b/src/generated/resources/data/minecraft/recipes/magenta_banner.json new file mode 100644 index 000000000..e0bb62123 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/magenta_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:magenta_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:magenta_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/minecart.json b/src/generated/resources/data/minecraft/recipes/minecart.json new file mode 100644 index 000000000..30d8f08be --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/minecart.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# #", + "###" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:minecart" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/mossy_cobblestone.json b/src/generated/resources/data/minecraft/recipes/mossy_cobblestone.json new file mode 100644 index 000000000..5c98e05f2 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/mossy_cobblestone.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:cobblestone" + }, + { + "item": "minecraft:vine" + } + ], + "result": { + "item": "minecraft:mossy_cobblestone" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/oak_fence.json b/src/generated/resources/data/minecraft/recipes/oak_fence.json new file mode 100644 index 000000000..f88346a01 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/oak_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence", + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "result": { + "item": "minecraft:oak_fence", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/oak_fence_gate.json b/src/generated/resources/data/minecraft/recipes/oak_fence_gate.json new file mode 100644 index 000000000..5975bac3e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/oak_fence_gate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence_gate", + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "result": { + "item": "minecraft:oak_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/oak_sign.json b/src/generated/resources/data/minecraft/recipes/oak_sign.json new file mode 100644 index 000000000..2054c0276 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/oak_sign.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + " X " + ], + "key": { + "#": { + "item": "minecraft:oak_planks" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:oak_sign", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/observer.json b/src/generated/resources/data/minecraft/recipes/observer.json new file mode 100644 index 000000000..513e8d679 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/observer.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "RRQ", + "###" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:observer" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/orange_banner.json b/src/generated/resources/data/minecraft/recipes/orange_banner.json new file mode 100644 index 000000000..fc525bdc3 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/orange_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:orange_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:orange_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/painting.json b/src/generated/resources/data/minecraft/recipes/painting.json new file mode 100644 index 000000000..3ed24cd54 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/painting.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "minecraft:wool" + } + }, + "result": { + "item": "minecraft:painting" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/pink_banner.json b/src/generated/resources/data/minecraft/recipes/pink_banner.json new file mode 100644 index 000000000..c8a611a16 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/pink_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:pink_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:pink_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/piston.json b/src/generated/resources/data/minecraft/recipes/piston.json new file mode 100644 index 000000000..d0260fdcf --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/piston.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "TTT", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + }, + "T": { + "tag": "minecraft:planks" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:piston" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/powered_rail.json b/src/generated/resources/data/minecraft/recipes/powered_rail.json new file mode 100644 index 000000000..92c24777e --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/powered_rail.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "X#X", + "XRX" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:powered_rail", + "count": 6 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/purple_banner.json b/src/generated/resources/data/minecraft/recipes/purple_banner.json new file mode 100644 index 000000000..a3c59d1ad --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/purple_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:purple_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:purple_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/rail.json b/src/generated/resources/data/minecraft/recipes/rail.json new file mode 100644 index 000000000..275fce0f0 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/rail.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X X", + "X#X", + "X X" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:rail", + "count": 16 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/red_banner.json b/src/generated/resources/data/minecraft/recipes/red_banner.json new file mode 100644 index 000000000..c31db8d39 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/red_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:red_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:red_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/redstone_torch.json b/src/generated/resources/data/minecraft/recipes/redstone_torch.json new file mode 100644 index 000000000..3f7c2cf92 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/redstone_torch.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "result": { + "item": "minecraft:redstone_torch" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/shears.json b/src/generated/resources/data/minecraft/recipes/shears.json new file mode 100644 index 000000000..0b212e57b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/shears.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " #", + "# " + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:shears" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/shield.json b/src/generated/resources/data/minecraft/recipes/shield.json new file mode 100644 index 000000000..ff02e15ee --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/shield.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WoW", + "WWW", + " W " + ], + "key": { + "W": { + "tag": "minecraft:planks" + }, + "o": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:shield" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/shulker_box.json b/src/generated/resources/data/minecraft/recipes/shulker_box.json new file mode 100644 index 000000000..0241ba30b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/shulker_box.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "-", + "#", + "-" + ], + "key": { + "#": { + "tag": "forge:chests/wooden" + }, + "-": { + "item": "minecraft:shulker_shell" + } + }, + "result": { + "item": "minecraft:shulker_box" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/smithing_table.json b/src/generated/resources/data/minecraft/recipes/smithing_table.json new file mode 100644 index 000000000..f7a5d27c6 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/smithing_table.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "@@", + "##", + "##" + ], + "key": { + "#": { + "tag": "minecraft:planks" + }, + "@": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:smithing_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/spruce_fence.json b/src/generated/resources/data/minecraft/recipes/spruce_fence.json new file mode 100644 index 000000000..4b6741624 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/spruce_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence", + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "result": { + "item": "minecraft:spruce_fence", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/spruce_fence_gate.json b/src/generated/resources/data/minecraft/recipes/spruce_fence_gate.json new file mode 100644 index 000000000..3657e711a --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/spruce_fence_gate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "wooden_fence_gate", + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "result": { + "item": "minecraft:spruce_fence_gate" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/spruce_sign.json b/src/generated/resources/data/minecraft/recipes/spruce_sign.json new file mode 100644 index 000000000..c7305269c --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/spruce_sign.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + " X " + ], + "key": { + "#": { + "item": "minecraft:spruce_planks" + }, + "X": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:spruce_sign", + "count": 3 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/stone_axe.json b/src/generated/resources/data/minecraft/recipes/stone_axe.json new file mode 100644 index 000000000..dc7c3d75b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/stone_axe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:stone_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/stone_hoe.json b/src/generated/resources/data/minecraft/recipes/stone_hoe.json new file mode 100644 index 000000000..7ffdc17ff --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/stone_hoe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:stone_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/stone_pickaxe.json b/src/generated/resources/data/minecraft/recipes/stone_pickaxe.json new file mode 100644 index 000000000..5557f044b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/stone_pickaxe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:stone_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/stone_shovel.json b/src/generated/resources/data/minecraft/recipes/stone_shovel.json new file mode 100644 index 000000000..7997178d8 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/stone_shovel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:stone_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/stone_sword.json b/src/generated/resources/data/minecraft/recipes/stone_sword.json new file mode 100644 index 000000000..38288a7cf --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/stone_sword.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:stone_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/stonecutter.json b/src/generated/resources/data/minecraft/recipes/stonecutter.json new file mode 100644 index 000000000..eed771379 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/stonecutter.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " I ", + "###" + ], + "key": { + "I": { + "tag": "forge:ingots/iron" + }, + "#": { + "item": "minecraft:stone" + } + }, + "result": { + "item": "minecraft:stonecutter" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/torch.json b/src/generated/resources/data/minecraft/recipes/torch.json new file mode 100644 index 000000000..1e8f64ebc --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/torch.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": [ + { + "item": "minecraft:coal" + }, + { + "item": "minecraft:charcoal" + } + ] + }, + "result": { + "item": "minecraft:torch", + "count": 4 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/trapped_chest.json b/src/generated/resources/data/minecraft/recipes/trapped_chest.json new file mode 100644 index 000000000..0c129b48c --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/trapped_chest.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:chests/wooden" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "item": "minecraft:trapped_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/tripwire_hook.json b/src/generated/resources/data/minecraft/recipes/tripwire_hook.json new file mode 100644 index 000000000..593c3f29b --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/tripwire_hook.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I", + "S", + "#" + ], + "key": { + "#": { + "tag": "minecraft:planks" + }, + "S": { + "tag": "forge:rods/wooden" + }, + "I": { + "tag": "forge:ingots/iron" + } + }, + "result": { + "item": "minecraft:tripwire_hook", + "count": 2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/white_banner.json b/src/generated/resources/data/minecraft/recipes/white_banner.json new file mode 100644 index 000000000..9ce1e2cc0 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/white_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:white_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:white_banner" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/wooden_axe.json b/src/generated/resources/data/minecraft/recipes/wooden_axe.json new file mode 100644 index 000000000..f7f2821bd --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/wooden_axe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "result": { + "item": "minecraft:wooden_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/wooden_hoe.json b/src/generated/resources/data/minecraft/recipes/wooden_hoe.json new file mode 100644 index 000000000..5ef92c750 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/wooden_hoe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "result": { + "item": "minecraft:wooden_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/wooden_pickaxe.json b/src/generated/resources/data/minecraft/recipes/wooden_pickaxe.json new file mode 100644 index 000000000..c8bc9193a --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/wooden_pickaxe.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "result": { + "item": "minecraft:wooden_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/wooden_shovel.json b/src/generated/resources/data/minecraft/recipes/wooden_shovel.json new file mode 100644 index 000000000..df39621cd --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/wooden_shovel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "result": { + "item": "minecraft:wooden_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/wooden_sword.json b/src/generated/resources/data/minecraft/recipes/wooden_sword.json new file mode 100644 index 000000000..99f6d7078 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/wooden_sword.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:rods/wooden" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "result": { + "item": "minecraft:wooden_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipes/yellow_banner.json b/src/generated/resources/data/minecraft/recipes/yellow_banner.json new file mode 100644 index 000000000..4c8dd58c0 --- /dev/null +++ b/src/generated/resources/data/minecraft/recipes/yellow_banner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "banner", + "pattern": [ + "###", + "###", + " | " + ], + "key": { + "#": { + "item": "minecraft:yellow_wool" + }, + "|": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "minecraft:yellow_banner" + } +} \ No newline at end of file diff --git a/src/main/java/net/minecraftforge/common/ForgeMod.java b/src/main/java/net/minecraftforge/common/ForgeMod.java index ba3592f66..343d81f24 100644 --- a/src/main/java/net/minecraftforge/common/ForgeMod.java +++ b/src/main/java/net/minecraftforge/common/ForgeMod.java @@ -47,6 +47,7 @@ import net.minecraft.world.storage.SaveHandler; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.common.data.ForgeBlockTagsProvider; import net.minecraftforge.common.data.ForgeItemTagsProvider; +import net.minecraftforge.common.data.ForgeRecipeProvider; import net.minecraftforge.common.model.animation.CapabilityAnimation; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.fml.event.lifecycle.GatherDataEvent; @@ -228,6 +229,7 @@ public class ForgeMod implements WorldPersistenceHooks.WorldPersistenceHook { gen.addProvider(new ForgeBlockTagsProvider(gen)); gen.addProvider(new ForgeItemTagsProvider(gen)); + gen.addProvider(new ForgeRecipeProvider(gen)); } } } diff --git a/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java b/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java index 3bbbbd437..c193f2821 100644 --- a/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java +++ b/src/main/java/net/minecraftforge/common/data/ForgeBlockTagsProvider.java @@ -20,13 +20,20 @@ package net.minecraftforge.common.data; import net.minecraft.data.DataGenerator; +import net.minecraft.util.ResourceLocation; import net.minecraft.block.Blocks; import net.minecraft.data.BlockTagsProvider; import static net.minecraftforge.common.Tags.Blocks.*; +import java.nio.file.Path; +import java.util.Set; +import java.util.stream.Collectors; + public class ForgeBlockTagsProvider extends BlockTagsProvider { + private Set filter = null; + public ForgeBlockTagsProvider(DataGenerator gen) { super(gen); @@ -35,6 +42,9 @@ public class ForgeBlockTagsProvider extends BlockTagsProvider @Override public void registerTags() { + super.registerTags(); + filter = this.tagToBuilder.entrySet().stream().map(e -> e.getKey().getId()).collect(Collectors.toSet()); + getBuilder(CHESTS).add(CHESTS_ENDER, CHESTS_TRAPPED, CHESTS_WOODEN); getBuilder(CHESTS_ENDER).add(Blocks.ENDER_CHEST); getBuilder(CHESTS_TRAPPED).add(Blocks.TRAPPED_CHEST); @@ -67,6 +77,12 @@ public class ForgeBlockTagsProvider extends BlockTagsProvider getBuilder(STORAGE_BLOCKS_REDSTONE).add(Blocks.REDSTONE_BLOCK); } + @Override + protected Path makePath(ResourceLocation id) + { + return filter != null && filter.contains(id) ? null : super.makePath(id); //We don't want to save vanilla tags. + } + @Override public String getName() { diff --git a/src/main/java/net/minecraftforge/common/data/ForgeItemTagsProvider.java b/src/main/java/net/minecraftforge/common/data/ForgeItemTagsProvider.java index 45fe18587..7d9435b25 100644 --- a/src/main/java/net/minecraftforge/common/data/ForgeItemTagsProvider.java +++ b/src/main/java/net/minecraftforge/common/data/ForgeItemTagsProvider.java @@ -19,13 +19,20 @@ package net.minecraftforge.common.data; +import java.nio.file.Path; +import java.util.Set; +import java.util.stream.Collectors; + import net.minecraft.data.DataGenerator; import net.minecraft.data.ItemTagsProvider; import net.minecraft.item.Items; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.Tags; public class ForgeItemTagsProvider extends ItemTagsProvider { + private Set filter = null; + public ForgeItemTagsProvider(DataGenerator gen) { super(gen); @@ -34,6 +41,9 @@ public class ForgeItemTagsProvider extends ItemTagsProvider @Override public void registerTags() { + super.registerTags(); + filter = this.tagToBuilder.entrySet().stream().map(e -> e.getKey().getId()).collect(Collectors.toSet()); + copy(Tags.Blocks.CHESTS, Tags.Items.CHESTS); copy(Tags.Blocks.CHESTS_ENDER, Tags.Items.CHESTS_ENDER); copy(Tags.Blocks.CHESTS_TRAPPED, Tags.Items.CHESTS_TRAPPED); @@ -104,6 +114,12 @@ public class ForgeItemTagsProvider extends ItemTagsProvider copy(Tags.Blocks.STORAGE_BLOCKS_REDSTONE, Tags.Items.STORAGE_BLOCKS_REDSTONE); } + @Override + protected Path makePath(ResourceLocation id) + { + return filter != null && filter.contains(id) ? null : super.makePath(id); //We don't want to save vanilla tags. + } + @Override public String getName() { diff --git a/src/main/java/net/minecraftforge/common/data/ForgeRecipeProvider.java b/src/main/java/net/minecraftforge/common/data/ForgeRecipeProvider.java new file mode 100644 index 000000000..d83c3528d --- /dev/null +++ b/src/main/java/net/minecraftforge/common/data/ForgeRecipeProvider.java @@ -0,0 +1,191 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2019. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package net.minecraftforge.common.data; + +import java.lang.reflect.Field; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; + +import com.google.gson.JsonObject; + +import net.minecraft.block.Blocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DirectoryCache; +import net.minecraft.data.IFinishedRecipe; +import net.minecraft.data.RecipeProvider; +import net.minecraft.data.ShapedRecipeBuilder; +import net.minecraft.data.ShapelessRecipeBuilder; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.item.crafting.Ingredient.IItemList; +import net.minecraft.item.crafting.Ingredient.TagList; +import net.minecraft.item.crafting.Ingredient.SingleItemList; +import net.minecraft.tags.Tag; +import net.minecraft.util.IItemProvider; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.Tags; + +public class ForgeRecipeProvider extends RecipeProvider +{ + private final DataGenerator generator; + private final Path ADV_ROOT; + private Map> replacements = new HashMap<>(); + private Set excludes = new HashSet<>(); + + public ForgeRecipeProvider(DataGenerator generatorIn) + { + super(generatorIn); + this.generator = generatorIn; + ADV_ROOT = this.generator.getOutputFolder().resolve("data/minecraft/advancements/recipes/root.json"); + } + + private void exclude(IItemProvider item) + { + excludes.add(item.asItem().getRegistryName()); + } + + private void replace(IItemProvider item, Tag tag) + { + replacements.put(item.asItem(), tag); + } + + @Override + protected void registerRecipes(Consumer consumer) + { + replace(Items.STICK, Tags.Items.RODS_WOODEN); + replace(Items.GOLD_INGOT, Tags.Items.INGOTS_GOLD); + replace(Items.IRON_INGOT, Tags.Items.INGOTS_IRON); + replace(Items.DIAMOND, Tags.Items.GEMS_DIAMOND); + replace(Items.EMERALD, Tags.Items.GEMS_EMERALD); + replace(Items.CHEST, Tags.Items.CHESTS_WOODEN); + replace(Blocks.COBBLESTONE, Tags.Items.COBBLESTONE); + + exclude(Blocks.GOLD_BLOCK); + exclude(Items.GOLD_NUGGET); + exclude(Blocks.IRON_BLOCK); + exclude(Items.IRON_NUGGET); + exclude(Blocks.DIAMOND_BLOCK); + exclude(Blocks.EMERALD_BLOCK); + + super.registerRecipes(vanilla -> { + IFinishedRecipe modified = enhance(vanilla); + if (modified != null) + consumer.accept(modified); + }); + } + + @Override + protected void saveRecipeAdvancement(DirectoryCache cache, JsonObject advancementJson, Path pathIn) { + if (pathIn.equals(ADV_ROOT)) return; //We NEVER care about this. + //NOOP - We dont replace any of the advancement things yet... + } + + private IFinishedRecipe enhance(IFinishedRecipe vanilla) + { + if (vanilla instanceof ShapelessRecipeBuilder.Result) + return enhance((ShapelessRecipeBuilder.Result)vanilla); + if (vanilla instanceof ShapedRecipeBuilder.Result) + return enhance((ShapedRecipeBuilder.Result)vanilla); + return null; + } + + private IFinishedRecipe enhance(ShapelessRecipeBuilder.Result vanilla) + { + List ingredients = getField(ShapelessRecipeBuilder.Result.class, vanilla, 4); + boolean modified = false; + for (int x = 0; x < ingredients.size(); x++) + { + Ingredient ing = enhance(vanilla.getID(), ingredients.get(x)); + if (ing != null) + { + ingredients.set(x, ing); + modified = true; + } + } + return modified ? vanilla : null; + } + + private IFinishedRecipe enhance(ShapedRecipeBuilder.Result vanilla) + { + Map ingredients = getField(ShapedRecipeBuilder.Result.class, vanilla, 5); + boolean modified = false; + for (Character x : ingredients.keySet()) + { + Ingredient ing = enhance(vanilla.getID(), ingredients.get(x)); + if (ing != null) + { + ingredients.put(x, ing); + modified = true; + } + } + return modified ? vanilla : null; + } + + private Ingredient enhance(ResourceLocation name, Ingredient vanilla) + { + if (excludes.contains(name)) + return null; + + boolean modified = false; + List items = new ArrayList<>(); + IItemList[] vanillaItems = getField(Ingredient.class, vanilla, 3); + for (IItemList entry : vanillaItems) + { + if (entry instanceof SingleItemList) + { + ItemStack stack = entry.getStacks().stream().findFirst().orElse(ItemStack.EMPTY); + Tag replacement = replacements.get(stack.getItem()); + if (replacement != null) + { + items.add(new TagList(replacement)); + modified = true; + } + else + items.add(entry); + } + else + items.add(entry); + } + return modified ? Ingredient.fromItemListStream(items.stream()) : null; + } + + @SuppressWarnings("unchecked") + private R getField(Class clz, T inst, int index) + { + Field fld = clz.getDeclaredFields()[index]; + fld.setAccessible(true); + try + { + return (R)fld.get(inst); + } + catch (IllegalArgumentException | IllegalAccessException e) + { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index b2f36e527..76b86fa54 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -334,6 +334,11 @@ protected net.minecraft.tileentity.HopperTileEntity func_145887_i()Z # updateHop # DataFixer public net.minecraft.util.datafix.DataFixer field_188262_d # version +# Data Entry Point +protected net.minecraft.data.RecipeProvider func_200404_a(Ljava/util/function/Consumer;)V # registerRecipes +protected net.minecraft.data.RecipeProvider func_208310_b(Lnet/minecraft/data/DirectoryCache;Lcom/google/gson/JsonObject;Ljava/nio/file/Path;)V # saveRecipeAdvancement +public net.minecraft.data.ShapedRecipeBuilder$Result + # ThreadTaskExecutor public net.minecraft.util.concurrent.ThreadTaskExecutor func_213165_a(Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture; # func_213165_a