Generate recipes with data generation to fix recipe processing due to missing items. Closes #221

This commit is contained in:
alexbegt 2020-08-27 20:28:17 -04:00
parent be6c0b9cf4
commit 7112755b90
84 changed files with 1999 additions and 1181 deletions

View File

@ -0,0 +1,42 @@
7296cff6a6eca7b425e197d3fb7888e6fa3cd5dd data/ironchest/advancements/recipes/ironchest/chests/copper_iron_chest.json
64007c8c3c70a2d994bc386cc4a7f7f7fc8dd51b data/ironchest/advancements/recipes/ironchest/chests/copper_silver_chest.json
365d1d3c70e95c535001aa21e2f0d28480c976e2 data/ironchest/advancements/recipes/ironchest/chests/diamond_crystal_chest.json
41aa40a17cfee1c9fa9e562bc7b00f2308f294e2 data/ironchest/advancements/recipes/ironchest/chests/diamond_obsidian_chest.json
82f46e3026d29292107f3508efe9f51ccd04dd9f data/ironchest/advancements/recipes/ironchest/chests/gold_diamond_chest.json
b5137f5fe7c01b7d17e8fdb6e3566259495b6e9e data/ironchest/advancements/recipes/ironchest/chests/iron_gold_chest.json
d5188d8cab8209e2c2f6ad50b488a6508c1a21cb data/ironchest/advancements/recipes/ironchest/chests/iron_silver_chest.json
f49760070cb2123df231396d273bae1ca7f23075 data/ironchest/advancements/recipes/ironchest/chests/silver_diamond_chest.json
574f5b8a6828085b8f5dee0182d0b8a1c9adc7b5 data/ironchest/advancements/recipes/ironchest/chests/silver_gold_chest.json
3e82879f9cdb33048a4954e227dc1cbe74e99b88 data/ironchest/advancements/recipes/ironchest/chests/vanilla_copper_chest.json
1116c768d875a33c025328b6c5fb3575af8c3a7d data/ironchest/advancements/recipes/ironchest/chests/vanilla_dirt_chest.json
2b35db8b04b0d148e17560f71ca159acdda5d44c data/ironchest/advancements/recipes/ironchest/chests/vanilla_iron_chest.json
5f8f57815f58b45b193e9a660a13824ca545ad7b data/ironchest/advancements/recipes/ironchest/upgrades/copper_to_iron_chest_upgrade.json
4d18ed56e5c25472809d5df677d8ccf8cfb439e6 data/ironchest/advancements/recipes/ironchest/upgrades/copper_to_silver_chest_upgrade.json
321e75477afceb6f187f15cf1f7568c6d31d6c87 data/ironchest/advancements/recipes/ironchest/upgrades/diamond_to_crystal_chest_upgrade.json
17ed7dbb2c69090dacd0efea29dbaf949a4e876d data/ironchest/advancements/recipes/ironchest/upgrades/diamond_to_obsidian_chest_upgrade.json
13c40784d2a492f1ea186962d08fc2fb74250cba data/ironchest/advancements/recipes/ironchest/upgrades/gold_to_diamond_chest_upgrade.json
9a594bfd16844d98c31e3b15932142d335cff104 data/ironchest/advancements/recipes/ironchest/upgrades/iron_to_gold_chest_upgrade.json
7ae2982f918d4cfb9ce23235f059a272eb0201d8 data/ironchest/advancements/recipes/ironchest/upgrades/silver_to_gold_chest_upgrade.json
160649754eab1cf0e5c51bb0fb86e7da3591aa04 data/ironchest/advancements/recipes/ironchest/upgrades/wood_to_copper_chest_upgrade.json
6045f50aafba06668e0f221d3e7d62827a3ed368 data/ironchest/advancements/recipes/ironchest/upgrades/wood_to_iron_chest_upgrade.json
db1c86a602b40793abc52cebf70fad24cf6409d9 data/ironchest/recipes/chests/copper_iron_chest.json
378066487ddb32d47b0bd66bce156b4a41fa93d6 data/ironchest/recipes/chests/copper_silver_chest.json
5b6d438390722b031bb97e4c5501449c18c4bbca data/ironchest/recipes/chests/diamond_crystal_chest.json
9f141ad7e75e7ac70b175129c058180da5e04ab7 data/ironchest/recipes/chests/diamond_obsidian_chest.json
00cad996bebebe268e2e0a4c59c024127c6f4a06 data/ironchest/recipes/chests/gold_diamond_chest.json
401d6ab7ffb4e815dc1a6562dd70bc7bd1f6d524 data/ironchest/recipes/chests/iron_gold_chest.json
65b0fd37de2ebcfcf88488d3db138e5446ba7d21 data/ironchest/recipes/chests/iron_silver_chest.json
fc37ebdc5285a417531c988f03dedbd393d1641c data/ironchest/recipes/chests/silver_diamond_chest.json
e3d600f97882251c94f14c0bffa63f0b5ff81350 data/ironchest/recipes/chests/silver_gold_chest.json
c4ce3a2d83ee91bc30b7f88fef054b6331f71d8d data/ironchest/recipes/chests/vanilla_copper_chest.json
6a2a1c0af03d5d3ea12ee4ee2f9ccebbb4f86196 data/ironchest/recipes/chests/vanilla_dirt_chest.json
12878399ae3ea231cd4b73f5883cd741938bbd5f data/ironchest/recipes/chests/vanilla_iron_chest.json
4511348163faf1009f48d5f7fa0f158aab35a971 data/ironchest/recipes/upgrades/copper_to_iron_chest_upgrade.json
476f824dc9b7721cfacf02d81472d2c2ecbe35ba data/ironchest/recipes/upgrades/copper_to_silver_chest_upgrade.json
e25f174a4a36d367d96d2e61561d526e83a5e155 data/ironchest/recipes/upgrades/diamond_to_crystal_chest_upgrade.json
9f0931b4d648fcea11dd2a7953d8e09df623d539 data/ironchest/recipes/upgrades/diamond_to_obsidian_chest_upgrade.json
793e25f4ae9a93636292036ceb9b0aaa821d299b data/ironchest/recipes/upgrades/gold_to_diamond_chest_upgrade.json
1b70eef2a303cf31300a5a5bc20780f9cea7e444 data/ironchest/recipes/upgrades/iron_to_gold_chest_upgrade.json
a529978a8ac60c95c4e27f714ee69c1c15b0af9f data/ironchest/recipes/upgrades/silver_to_gold_chest_upgrade.json
058c4081d18ddcff952f218a1e1e31ea1c26fa04 data/ironchest/recipes/upgrades/wood_to_copper_chest_upgrade.json
1098d6ebd2e6e1065324fd6314481fe40df132e7 data/ironchest/recipes/upgrades/wood_to_iron_chest_upgrade.json

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/copper_iron_chest"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/iron"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/copper_iron_chest"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/copper_silver_chest"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/silver"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/copper_silver_chest"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/diamond_crystal_chest"
]
},
"criteria": {
"has_glass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:glass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/diamond_crystal_chest"
}
}
},
"requirements": [
[
"has_glass",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/diamond_obsidian_chest"
]
},
"criteria": {
"has_obsidian": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "minecraft:obsidian"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/diamond_obsidian_chest"
}
}
},
"requirements": [
[
"has_obsidian",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/gold_diamond_chest"
]
},
"criteria": {
"has_diamonds": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:gems/diamond"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/gold_diamond_chest"
}
}
},
"requirements": [
[
"has_diamonds",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/iron_gold_chest"
]
},
"criteria": {
"has_gold_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/gold"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/iron_gold_chest"
}
}
},
"requirements": [
[
"has_gold_ingot",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/iron_silver_chest"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/silver"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/iron_silver_chest"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/silver_diamond_chest"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:gems/diamond"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/silver_diamond_chest"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/silver_gold_chest"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/silver"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/silver_gold_chest"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/vanilla_copper_chest"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/copper"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/vanilla_copper_chest"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/vanilla_dirt_chest"
]
},
"criteria": {
"has_iron_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "minecraft:dirt"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/vanilla_dirt_chest"
}
}
},
"requirements": [
[
"has_iron_ingot",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:chests/vanilla_iron_chest"
]
},
"criteria": {
"has_iron_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/iron"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:chests/vanilla_iron_chest"
}
}
},
"requirements": [
[
"has_iron_ingot",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/copper_to_iron_chest_upgrade"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:glass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/copper_to_iron_chest_upgrade"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,59 @@
{
"advancements": [
{
"conditions": [
{
"values": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
},
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"type": "forge:and"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/copper_to_silver_chest_upgrade"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/copper"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/copper_to_silver_chest_upgrade"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/diamond_to_crystal_chest_upgrade"
]
},
"criteria": {
"has_glass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:glass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/diamond_to_crystal_chest_upgrade"
}
}
},
"requirements": [
[
"has_glass",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/diamond_to_obsidian_chest_upgrade"
]
},
"criteria": {
"has_glass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:glass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/diamond_to_obsidian_chest_upgrade"
}
}
},
"requirements": [
[
"has_glass",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/gold_to_diamond_chest_upgrade"
]
},
"criteria": {
"has_glass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:glass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/gold_to_diamond_chest_upgrade"
}
}
},
"requirements": [
[
"has_glass",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/iron_to_gold_chest_upgrade"
]
},
"criteria": {
"has_iron_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/iron"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/iron_to_gold_chest_upgrade"
}
}
},
"requirements": [
[
"has_iron_ingot",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/silver_to_gold_chest_upgrade"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:glass"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/silver_to_gold_chest_upgrade"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,47 @@
{
"advancements": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"advancement": {
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/wood_to_copper_chest_upgrade"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "minecraft:planks"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/wood_to_copper_chest_upgrade"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"ironchest:upgrades/wood_to_iron_chest_upgrade"
]
},
"criteria": {
"has_iron_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/iron"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "ironchest:upgrades/wood_to_iron_chest_upgrade"
}
}
},
"requirements": [
[
"has_iron_ingot",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,38 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"item": "ironchest:copper_chest"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:iron_chest"
}
}
}
]
}

View File

@ -0,0 +1,35 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/silver"
},
"S": {
"item": "ironchest:copper_chest"
}
},
"result": {
"item": "ironchest:silver_chest"
}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"tag": "forge:glass"
},
"S": {
"item": "ironchest:diamond_chest"
}
},
"result": {
"item": "ironchest:crystal_chest"
}
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "minecraft:obsidian"
},
"S": {
"item": "ironchest:diamond_chest"
}
},
"result": {
"item": "ironchest:obsidian_chest"
}
}

View File

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"tag": "forge:gems/diamond"
},
"S": {
"item": "ironchest:gold_chest"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:diamond_chest"
}
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"item": "ironchest:iron_chest"
}
},
"result": {
"item": "ironchest:gold_chest"
}
}

View File

@ -0,0 +1,38 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"tag": "forge:ingots/silver"
},
"S": {
"item": "ironchest:iron_chest"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:silver_chest"
}
}
}
]
}

View File

@ -0,0 +1,38 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:gems/diamond"
},
"S": {
"item": "ironchest:silver_chest"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:gold_chest"
}
}
}
]
}

View File

@ -0,0 +1,38 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"item": "ironchest:silver_chest"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:gold_chest"
}
}
}
]
}

View File

@ -0,0 +1,35 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/copper"
},
"S": {
"tag": "forge:chests/wooden"
}
},
"result": {
"item": "ironchest:copper_chest"
}
}
}
]
}

View File

@ -0,0 +1,27 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": [
{
"item": "minecraft:dirt"
},
{
"item": "minecraft:coarse_dirt"
},
{
"item": "minecraft:podzol"
}
],
"S": {
"tag": "forge:chests/wooden"
}
},
"result": {
"item": "ironchest:dirt_chest"
}
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"tag": "forge:chests/wooden"
}
},
"result": {
"item": "ironchest:iron_chest"
}
}

View File

@ -0,0 +1,38 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"tag": "forge:ingots/copper"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:copper_to_iron_chest_upgrade"
}
}
}
]
}

View File

@ -0,0 +1,47 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"values": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
},
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"type": "forge:and"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/silver"
},
"S": {
"tag": "forge:ingots/copper"
}
},
"result": {
"item": "ironchest:copper_to_silver_chest_upgrade"
}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MGM",
"MMM"
],
"key": {
"M": {
"item": "minecraft:obsidian"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:diamond_to_crystal_chest_upgrade"
}
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"S": {
"item": "minecraft:obsidian"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:diamond_to_obsidian_chest_upgrade"
}
}

View File

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"tag": "forge:gems/diamond"
},
"S": {
"tag": "forge:ingots/gold"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:gold_to_diamond_chest_upgrade"
}
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"GIG",
"GGG"
],
"key": {
"I": {
"tag": "forge:ingots/iron"
},
"G": {
"tag": "forge:ingots/gold"
}
},
"result": {
"item": "ironchest:iron_to_gold_chest_upgrade"
}
}

View File

@ -0,0 +1,38 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/silver",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"tag": "forge:ingots/copper"
},
"G": {
"tag": "forge:glass"
}
},
"result": {
"item": "ironchest:silver_to_gold_chest_upgrade"
}
}
}
]
}

View File

@ -0,0 +1,35 @@
{
"type": "forge:conditional",
"recipes": [
{
"conditions": [
{
"value": {
"tag": "forge:ingots/copper",
"type": "forge:tag_empty"
},
"type": "forge:not"
}
],
"recipe": {
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/copper"
},
"S": {
"tag": "minecraft:planks"
}
},
"result": {
"item": "ironchest:wood_to_copper_chest_upgrade"
}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MPM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"P": {
"tag": "minecraft:planks"
}
},
"result": {
"item": "ironchest:wood_to_iron_chest_upgrade"
}
}

View File

@ -1,10 +1,10 @@
package com.progwml6.ironchest;
import com.progwml6.ironchest.client.data.IronChestsLangProvider;
import com.progwml6.ironchest.client.screen.IronChestScreen;
import com.progwml6.ironchest.client.tileentity.IronChestTileEntityRenderer;
import com.progwml6.ironchest.common.block.IronChestsBlocks;
import com.progwml6.ironchest.common.block.tileentity.IronChestsTileEntityTypes;
import com.progwml6.ironchest.common.data.IronChestsRecipeProvider;
import com.progwml6.ironchest.common.inventory.IronChestsContainerTypes;
import com.progwml6.ironchest.common.item.IronChestsItems;
import net.minecraft.client.gui.ScreenManager;
@ -80,13 +80,10 @@ public class IronChests {
}
private void gatherData(GatherDataEvent event) {
DataGenerator gen = event.getGenerator();
DataGenerator datagenerator = event.getGenerator();
if (event.includeClient()) {
gen.addProvider(new IronChestsLangProvider(gen));
}
if (event.includeServer()) {
//gen.addProvider(new IronChestsLootTableProvider(gen));
datagenerator.addProvider(new IronChestsRecipeProvider(datagenerator));
}
}

View File

@ -1,159 +0,0 @@
package com.progwml6.ironchest.client.data;
import com.progwml6.ironchest.IronChests;
import com.progwml6.ironchest.common.Util;
import com.progwml6.ironchest.common.block.IronChestsBlocks;
import com.progwml6.ironchest.common.block.IronChestsTypes;
import com.progwml6.ironchest.common.item.IronChestsItems;
import net.minecraft.block.Block;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.DirectoryCache;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.IItemProvider;
import net.minecraftforge.common.data.LanguageProvider;
import net.minecraftforge.registries.IForgeRegistryEntry;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.function.Supplier;
import java.util.stream.Collectors;
public class IronChestsLangProvider extends LanguageProvider {
private static class AccessibleLanguageProvider extends LanguageProvider {
public AccessibleLanguageProvider(DataGenerator gen, String modid, String locale) {
super(gen, modid, locale);
}
@Override
public void add(String key, String value) {
super.add(key, value);
}
@Override
protected void addTranslations() {
}
}
private final AccessibleLanguageProvider upsideDown;
public IronChestsLangProvider(DataGenerator gen) {
super(gen, IronChests.MODID, "en_us");
this.upsideDown = new AccessibleLanguageProvider(gen, IronChests.MODID, "en_ud");
}
@Override
protected void addTranslations() {
// Blocks
this.addBlock(IronChestsBlocks.IRON_CHEST);
this.addBlock(IronChestsBlocks.GOLD_CHEST);
this.addBlock(IronChestsBlocks.DIAMOND_CHEST);
this.addBlock(IronChestsBlocks.COPPER_CHEST);
this.addBlock(IronChestsBlocks.SILVER_CHEST);
this.addBlock(IronChestsBlocks.CRYSTAL_CHEST);
this.addBlock(IronChestsBlocks.OBSIDIAN_CHEST);
this.addBlock(IronChestsBlocks.DIRT_CHEST);
// ITEMS
IronChestsItems.UPGRADES.values().forEach(this::addItem);
// MISC
this.add(IronChests.IRONCHESTS_ITEM_GROUP, "Iron Chests");
}
private String getAutomaticName(Supplier<? extends IForgeRegistryEntry<?>> sup) {
return Util.toEnglishName(sup.get().getRegistryName().getPath());
}
private void addBlock(Supplier<? extends Block> block) {
this.addBlock(block, this.getAutomaticName(block));
}
private void addItem(Supplier<? extends Item> item) {
this.addItem(item, this.getAutomaticName(item));
}
private void addItemWithTooltip(Supplier<? extends Item> block, String name, List<String> tooltip) {
this.addItem(block, name);
this.addTooltip(block, tooltip);
}
private void addTooltip(Supplier<? extends IItemProvider> item, String tooltip) {
this.add(item.get().asItem().getTranslationKey() + ".desc", tooltip);
}
private void addTooltip(Supplier<? extends IItemProvider> item, List<String> tooltip) {
for (int i = 0; i < tooltip.size(); i++) {
this.add(item.get().asItem().getTranslationKey() + ".desc." + i, tooltip.get(i));
}
}
private void add(ItemGroup group, String name) {
this.add(group.getTranslationKey(), name);
}
// Automatic en_ud generation
private static final String NORMAL_CHARS =
/* lowercase */ "abcdefghijklmn\u00F1opqrstuvwxyz" +
/* uppercase */ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
/* numbers */ "0123456789" +
/* special */ "_,;.?!/\\'";
private static final String UPSIDE_DOWN_CHARS =
/* lowercase */ "\u0250q\u0254p\u01DD\u025Fb\u0265\u0131\u0638\u029E\u05DF\u026Fuuodb\u0279s\u0287n\u028C\u028Dx\u028Ez" +
/* uppercase */ "\u2C6F\u15FA\u0186\u15E1\u018E\u2132\u2141HI\u017F\u029E\uA780WNO\u0500\u1F49\u1D1AS\u27D8\u2229\u039BMX\u028EZ" +
/* numbers */ "0\u0196\u1105\u0190\u3123\u03DB9\u312586" +
/* special */ "\u203E'\u061B\u02D9\u00BF\u00A1/\\,";
static {
if (NORMAL_CHARS.length() != UPSIDE_DOWN_CHARS.length()) {
throw new AssertionError("Char maps do not match in length!");
}
}
private String toUpsideDown(String normal) {
char[] ud = new char[normal.length()];
for (int i = 0; i < normal.length(); i++) {
char c = normal.charAt(i);
if (c == '%') {
String fmtArg = "";
while (Character.isDigit(c) || c == '%' || c == '$' || c == 's' || c == 'd') { // TODO this is a bit lazy
fmtArg += c;
i++;
c = i == normal.length() ? 0 : normal.charAt(i);
}
i--;
for (int j = 0; j < fmtArg.length(); j++) {
ud[normal.length() - 1 - i + j] = fmtArg.charAt(j);
}
continue;
}
int lookup = NORMAL_CHARS.indexOf(c);
if (lookup >= 0) {
c = UPSIDE_DOWN_CHARS.charAt(lookup);
}
ud[normal.length() - 1 - i] = c;
}
return new String(ud);
}
@Override
public void add(String key, String value) {
super.add(key, value);
this.upsideDown.add(key, this.toUpsideDown(value));
}
@Override
public void act(DirectoryCache cache) throws IOException {
super.act(cache);
this.upsideDown.act(cache);
}
}

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.client.data;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.client;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -14,11 +14,11 @@ import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public class IronChestScreen extends ContainerScreen<IronChestContainer> implements IHasContainer<IronChestContainer> {
private IronChestsTypes chestType;
private final IronChestsTypes chestType;
private int textureXSize;
private final int textureXSize;
private int textureYSize;
private final int textureYSize;
public IronChestScreen(IronChestContainer container, PlayerInventory playerInventory, ITextComponent title) {
super(container, playerInventory, title);
@ -29,32 +29,33 @@ public class IronChestScreen extends ContainerScreen<IronChestContainer> impleme
this.textureXSize = container.getChestType().textureXSize;
this.textureYSize = container.getChestType().textureYSize;
this.field_230711_n_ = false;
this.passEvents = false;
}
@Override
public void func_230430_a_(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
this.func_230446_a_(matrixStack);
super.func_230430_a_(matrixStack, mouseX, mouseY, partialTicks);
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
this.renderBackground(matrixStack);
super.render(matrixStack, mouseX, mouseY, partialTicks);
this.func_230459_a_(matrixStack, mouseX, mouseY);
}
@Override
protected void func_230451_b_(MatrixStack matrixStack, int mouseX, int mouseY) {
this.field_230712_o_.func_238422_b_(matrixStack, this.field_230704_d_, 8.0F, 6.0F, 4210752);
this.field_230712_o_.func_238422_b_(matrixStack, this.playerInventory.getDisplayName(), 8.0F, (float) (this.ySize - 96 + 2), 4210752);
protected void drawGuiContainerForegroundLayer(MatrixStack matrixStack, int mouseX, int mouseY) {
this.font.func_238422_b_(matrixStack, this.title, 8.0F, 6.0F, 4210752);
this.font.func_238422_b_(matrixStack, this.playerInventory.getDisplayName(), 8.0F, (float) (this.ySize - 96 + 2), 4210752);
}
@Override
protected void func_230450_a_(MatrixStack matrixStack, float partialTicks, int mouseX, int mouseY) {
protected void drawGuiContainerBackgroundLayer(MatrixStack matrixStack, float partialTicks, int mouseX, int mouseY) {
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_230706_i_.getTextureManager().bindTexture(this.chestType.guiTexture);
this.minecraft.getTextureManager().bindTexture(this.chestType.guiTexture);
int x = (this.field_230708_k_ - this.xSize) / 2;
int y = (this.field_230709_l_ - this.ySize) / 2;
int x = (this.width - this.xSize) / 2;
int y = (this.height - this.ySize) / 2;
func_238463_a_(matrixStack, x, y, 0, 0, this.xSize, this.ySize, this.textureXSize, this.textureYSize);
blit(matrixStack, x, y, 0, 0, this.xSize, this.ySize, this.textureXSize, this.textureYSize);
}
}

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.client.screen;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.client.tileentity;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common.ai;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -63,7 +63,7 @@ public enum IronChestsTypes implements IStringSerializable {
}
@Override
public String func_176610_l() {
public String getString() {
return this.getEnglishName();
}

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common.block;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -72,12 +72,12 @@ public class GenericIronChestTileEntity extends LockableLootTileEntity implement
@Override
protected ITextComponent getDefaultName() {
return new TranslationTextComponent(IronChests.MODID + ".container."+ this.chestType.getId() + "_chest");
return new TranslationTextComponent(IronChests.MODID + ".container." + this.chestType.getId() + "_chest");
}
@Override
public void func_230337_a_(BlockState state, CompoundNBT compound) {
super.func_230337_a_(state, compound);
public void read(BlockState state, CompoundNBT compound) {
super.read(state, compound);
this.chestContents = NonNullList.withSize(this.getSizeInventory(), ItemStack.EMPTY);

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common.block.tileentity;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,364 @@
package com.progwml6.ironchest.common.data;
import com.progwml6.ironchest.IronChests;
import com.progwml6.ironchest.common.block.IronChestsBlocks;
import com.progwml6.ironchest.common.item.IronChestsItems;
import com.progwml6.ironchest.common.item.IronChestsUpgradeType;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.AdvancementRewards;
import net.minecraft.advancements.IRequirementsStrategy;
import net.minecraft.advancements.criterion.RecipeUnlockedTrigger;
import net.minecraft.block.Blocks;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.IFinishedRecipe;
import net.minecraft.data.RecipeProvider;
import net.minecraft.data.ShapedRecipeBuilder;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.tags.ItemTags;
import net.minecraft.util.IItemProvider;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.Tags;
import net.minecraftforge.common.crafting.ConditionalAdvancement;
import net.minecraftforge.common.crafting.ConditionalRecipe;
import net.minecraftforge.common.crafting.conditions.IConditionBuilder;
import net.minecraftforge.common.crafting.conditions.TagEmptyCondition;
import java.util.Objects;
import java.util.function.Consumer;
public class IronChestsRecipeProvider extends RecipeProvider implements IConditionBuilder {
public IronChestsRecipeProvider(DataGenerator generatorIn) {
super(generatorIn);
}
@Override
protected void registerRecipes(Consumer<IFinishedRecipe> consumer) {
this.addChestsRecipes(consumer);
this.addUpgradesRecipes(consumer);
}
private void addChestsRecipes(Consumer<IFinishedRecipe> consumer) {
String folder = "chests/";
ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.IRON_CHEST.get())
.key('M', Tags.Items.INGOTS_IRON)
.key('S', Tags.Items.CHESTS_WOODEN)
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_iron_ingot", hasItem(Tags.Items.INGOTS_IRON))
.build(consumer, location(folder + "vanilla_iron_chest"));
ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.GOLD_CHEST.get())
.key('M', Tags.Items.INGOTS_GOLD)
.key('S', IronChestsBlocks.IRON_CHEST.get())
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_gold_ingot", hasItem(Tags.Items.INGOTS_GOLD))
.build(consumer, location(folder + "iron_gold_chest"));
ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.DIAMOND_CHEST.get())
.key('M', Tags.Items.GEMS_DIAMOND)
.key('S', IronChestsBlocks.GOLD_CHEST.get())
.key('G', Tags.Items.GLASS)
.patternLine("GGG")
.patternLine("MSM")
.patternLine("GGG")
.addCriterion("has_diamonds", hasItem(Tags.Items.GEMS_DIAMOND))
.build(consumer, location(folder + "gold_diamond_chest"));
ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.OBSIDIAN_CHEST.get())
.key('M', Blocks.OBSIDIAN)
.key('S', IronChestsBlocks.DIAMOND_CHEST.get())
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_obsidian", hasItem(Blocks.OBSIDIAN))
.build(consumer, location(folder + "diamond_obsidian_chest"));
ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.CRYSTAL_CHEST.get())
.key('G', Tags.Items.GLASS)
.key('S', IronChestsBlocks.DIAMOND_CHEST.get())
.patternLine("GGG")
.patternLine("GSG")
.patternLine("GGG")
.addCriterion("has_glass", hasItem(Tags.Items.GLASS))
.build(consumer, location(folder + "diamond_crystal_chest"));
ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.DIRT_CHEST.get())
.key('M', Ingredient.fromItems(Blocks.DIRT, Blocks.COARSE_DIRT, Blocks.PODZOL))
.key('S', Tags.Items.CHESTS_WOODEN)
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_iron_ingot", hasItem(Blocks.DIRT))
.build(consumer, location(folder + "vanilla_dirt_chest"));
ResourceLocation copperToIronChest = location(folder + "copper_iron_chest");
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.IRON_CHEST.get())
.key('M', Tags.Items.INGOTS_IRON)
.key('S', IronChestsBlocks.COPPER_CHEST.get())
.key('G', Tags.Items.GLASS)
.patternLine("MGM")
.patternLine("GSG")
.patternLine("MGM")
.addCriterion("has_item", hasItem(Tags.Items.INGOTS_IRON))::build)
.setAdvancement(location("recipes/ironchest/chests/copper_iron_chest"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(copperToIronChest))
.withCriterion("has_item", hasItem(Tags.Items.INGOTS_IRON))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(copperToIronChest))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, copperToIronChest);
ResourceLocation copperToSilverChest = location(folder + "copper_silver_chest");
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.SILVER_CHEST.get())
.key('M', ItemTags.makeWrapperTag("forge:ingots/silver"))
.key('S', IronChestsBlocks.COPPER_CHEST.get())
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/silver")))::build)
.setAdvancement(location("recipes/ironchest/chests/copper_silver_chest"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(copperToSilverChest))
.withCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/silver")))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(copperToSilverChest))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, copperToSilverChest);
ResourceLocation ironToSilverChest = location(folder + "iron_silver_chest");
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.SILVER_CHEST.get())
.key('M', ItemTags.makeWrapperTag("forge:ingots/silver"))
.key('S', IronChestsBlocks.IRON_CHEST.get())
.key('G', Tags.Items.GLASS)
.patternLine("GGG")
.patternLine("MSM")
.patternLine("GGG")
.addCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/silver")))::build)
.setAdvancement(location("recipes/ironchest/chests/iron_silver_chest"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(ironToSilverChest))
.withCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/silver")))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(ironToSilverChest))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, ironToSilverChest);
ResourceLocation vanillaToCopperChest = location(folder + "vanilla_copper_chest");
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.COPPER_CHEST.get())
.key('M', ItemTags.makeWrapperTag("forge:ingots/copper"))
.key('S', Tags.Items.CHESTS_WOODEN)
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/copper")))::build)
.setAdvancement(location("recipes/ironchest/chests/vanilla_copper_chest"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(vanillaToCopperChest))
.withCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/copper")))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(vanillaToCopperChest))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, vanillaToCopperChest);
ResourceLocation silverToGoldChest = location(folder + "silver_gold_chest");
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.GOLD_CHEST.get())
.key('M', Tags.Items.INGOTS_GOLD)
.key('S', IronChestsBlocks.SILVER_CHEST.get())
.key('G', Tags.Items.GLASS)
.patternLine("MGM")
.patternLine("GSG")
.patternLine("MGM")
.addCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/silver")))::build)
.setAdvancement(location("recipes/ironchest/chests/silver_gold_chest"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(silverToGoldChest))
.withCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/silver")))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(silverToGoldChest))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, silverToGoldChest);
ResourceLocation silverToDiamondChest = location(folder + "silver_diamond_chest");
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsBlocks.GOLD_CHEST.get())
.key('M', Tags.Items.GEMS_DIAMOND)
.key('S', IronChestsBlocks.SILVER_CHEST.get())
.key('G', Tags.Items.GLASS)
.patternLine("MGM")
.patternLine("GSG")
.patternLine("MGM")
.addCriterion("has_item", hasItem(Tags.Items.GEMS_DIAMOND))::build)
.setAdvancement(location("recipes/ironchest/chests/silver_diamond_chest"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(silverToDiamondChest))
.withCriterion("has_item", hasItem(Tags.Items.GEMS_DIAMOND))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(silverToDiamondChest))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, silverToDiamondChest);
}
private void addUpgradesRecipes(Consumer<IFinishedRecipe> consumer) {
String folder = "upgrades/";
ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_IRON).get())
.key('M', Tags.Items.INGOTS_IRON)
.key('P', ItemTags.PLANKS)
.patternLine("MMM")
.patternLine("MPM")
.patternLine("MMM")
.addCriterion("has_iron_ingot", hasItem(Tags.Items.INGOTS_IRON))
.build(consumer, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_IRON).get(), folder));
ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.IRON_TO_GOLD).get())
.key('I', Tags.Items.INGOTS_IRON)
.key('G', Tags.Items.INGOTS_GOLD)
.patternLine("GGG")
.patternLine("GIG")
.patternLine("GGG")
.addCriterion("has_iron_ingot", hasItem(Tags.Items.INGOTS_IRON))
.build(consumer, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.IRON_TO_GOLD).get(), folder));
ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.GOLD_TO_DIAMOND).get())
.key('M', Tags.Items.GEMS_DIAMOND)
.key('S', Tags.Items.INGOTS_GOLD)
.key('G', Tags.Items.GLASS)
.patternLine("GGG")
.patternLine("MSM")
.patternLine("GGG")
.addCriterion("has_glass", hasItem(Tags.Items.GLASS))
.build(consumer, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.GOLD_TO_DIAMOND).get(), folder));
ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_OBSIDIAN).get())
.key('S', Blocks.OBSIDIAN)
.key('G', Tags.Items.GLASS)
.patternLine("GGG")
.patternLine("GSG")
.patternLine("GGG")
.addCriterion("has_glass", hasItem(Tags.Items.GLASS))
.build(consumer, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_OBSIDIAN).get(), folder));
ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_CRYSTAL).get())
.key('M', Blocks.OBSIDIAN)
.key('G', Tags.Items.GLASS)
.patternLine("MMM")
.patternLine("MGM")
.patternLine("MMM")
.addCriterion("has_glass", hasItem(Tags.Items.GLASS))
.build(consumer, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_CRYSTAL).get(), folder));
ResourceLocation woodToCopperChestUpgradeId = prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_COPPER).get(), folder);
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_COPPER).get())
.key('M', ItemTags.makeWrapperTag("forge:ingots/copper"))
.key('S', ItemTags.PLANKS)
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_item", hasItem(ItemTags.PLANKS))::build)
.setAdvancement(location("recipes/ironchest/upgrades/wood_to_copper_chest_upgrade"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(woodToCopperChestUpgradeId))
.withCriterion("has_item", hasItem(ItemTags.PLANKS))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(woodToCopperChestUpgradeId))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, woodToCopperChestUpgradeId);
ResourceLocation copperToIronChestUpgrade = prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_IRON).get(), folder);
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_IRON).get())
.key('M', Tags.Items.INGOTS_IRON)
.key('S', ItemTags.makeWrapperTag("forge:ingots/copper"))
.key('G', Tags.Items.GLASS)
.patternLine("MGM")
.patternLine("GSG")
.patternLine("MGM")
.addCriterion("has_item", hasItem(ItemTags.PLANKS))::build)
.setAdvancement(location("recipes/ironchest/upgrades/copper_to_iron_chest_upgrade"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/copper")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(copperToIronChestUpgrade))
.withCriterion("has_item", hasItem(Tags.Items.GLASS))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(copperToIronChestUpgrade))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, copperToIronChestUpgrade);
ResourceLocation copperToSilverChestUpgrade = prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_SILVER).get(), folder);
ConditionalRecipe.builder()
.addCondition(and(not(new TagEmptyCondition("forge:ingots/copper")), not(new TagEmptyCondition("forge:ingots/silver"))))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_SILVER).get())
.key('M', ItemTags.makeWrapperTag("forge:ingots/silver"))
.key('S', ItemTags.makeWrapperTag("forge:ingots/copper"))
.patternLine("MMM")
.patternLine("MSM")
.patternLine("MMM")
.addCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/copper")))::build)
.setAdvancement(location("recipes/ironchest/upgrades/copper_to_silver_chest_upgrade"), ConditionalAdvancement.builder()
.addCondition(and(not(new TagEmptyCondition("forge:ingots/copper")), not(new TagEmptyCondition("forge:ingots/silver"))))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(copperToSilverChestUpgrade))
.withCriterion("has_item", hasItem(ItemTags.makeWrapperTag("forge:ingots/copper")))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(copperToSilverChestUpgrade))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, copperToSilverChestUpgrade);
ResourceLocation silverToGoldChestUpgrade = prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.SILVER_TO_GOLD).get(), folder);
ConditionalRecipe.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addRecipe(ShapedRecipeBuilder.shapedRecipe(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.SILVER_TO_GOLD).get())
.key('M', Tags.Items.INGOTS_GOLD)
.key('S', ItemTags.makeWrapperTag("forge:ingots/copper"))
.key('G', Tags.Items.GLASS)
.patternLine("MGM")
.patternLine("GSG")
.patternLine("MGM")
.addCriterion("has_item", hasItem(Tags.Items.GLASS))::build)
.setAdvancement(location("recipes/ironchest/upgrades/silver_to_gold_chest_upgrade"), ConditionalAdvancement.builder()
.addCondition(not(new TagEmptyCondition("forge:ingots/silver")))
.addAdvancement(Advancement.Builder.builder()
.withParentId(new ResourceLocation("recipes/root"))
.withRewards(AdvancementRewards.Builder.recipe(silverToGoldChestUpgrade))
.withCriterion("has_item", hasItem(Tags.Items.GLASS))
.withCriterion("has_the_recipe", RecipeUnlockedTrigger.create(silverToGoldChestUpgrade))
.withRequirementsStrategy(IRequirementsStrategy.OR))
).build(consumer, silverToGoldChestUpgrade);
}
protected static ResourceLocation prefix(IItemProvider item, String prefix) {
ResourceLocation loc = Objects.requireNonNull(item.asItem().getRegistryName());
return location(prefix + loc.getPath());
}
private static ResourceLocation location(String id) {
return new ResourceLocation(IronChests.MODID, id);
}
}

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common.data;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common.inventory;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common.item;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest.common;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package com.progwml6.ironchest;
import mcp.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1,45 @@
{
"_comment": "Blocks",
"block.ironchest.iron_chest": "\u0287s\u01DD\u0265\u0186 uo\u0279I",
"block.ironchest.gold_chest": "\u0287s\u01DD\u0265\u0186 p\u05DFo\u2141",
"block.ironchest.diamond_chest": "\u0287s\u01DD\u0265\u0186 puo\u026F\u0250\u0131\u15E1",
"block.ironchest.copper_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DDddo\u0186",
"block.ironchest.silver_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DD\u028C\u05DF\u0131S",
"block.ironchest.crystal_chest": "\u0287s\u01DD\u0265\u0186 \u05DF\u0250\u0287s\u028E\u0279\u0186",
"block.ironchest.obsidian_chest": "\u0287s\u01DD\u0265\u0186 u\u0250\u0131p\u0131sqO",
"block.ironchest.dirt_chest": "\u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1",
"_comment": "Upgrades",
"item.ironchest.iron_to_gold_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 p\u05DFo\u2141 o\u27D8 uo\u0279I",
"item.ironchest.gold_to_diamond_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 puo\u026F\u0250\u0131\u15E1 o\u27D8 p\u05DFo\u2141",
"item.ironchest.copper_to_silver_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 \u0279\u01DD\u028C\u05DF\u0131S o\u27D8 \u0279\u01DDddo\u0186",
"item.ironchest.silver_to_gold_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 p\u05DFo\u2141 o\u27D8 \u0279\u01DD\u028C\u05DF\u0131S",
"item.ironchest.copper_to_iron_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 uo\u0279I o\u27D8 \u0279\u01DDddo\u0186",
"item.ironchest.diamond_to_crystal_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 \u05DF\u0250\u0287s\u028E\u0279\u0186 o\u27D8 puo\u026F\u0250\u0131\u15E1",
"item.ironchest.wood_to_iron_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 uo\u0279I o\u27D8 pooM",
"item.ironchest.wood_to_copper_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 \u0279\u01DDddo\u0186 o\u27D8 pooM",
"item.ironchest.diamond_to_obsidian_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 u\u0250\u0131p\u0131sqO o\u27D8 puo\u026F\u0250\u0131\u15E1",
"_comment": "Books",
"book.ironchest.dirtchest9000.title": "\u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1 \u0279no\u028E \u01DDsn o\u0287 \u028DoH",
"book.ironchest.dirtchest9000.page1": "\u02D9\u028E\u0287\u0131\u05DF\u0131\u0287n \u01DDb\u0250\u0279o\u0287s \u0279no u\u0131 \u0287\u0279\u0131p \u025Fo \u029E\u0254\u0250\u0287s \u0279no\u028E bu\u0131\u0279o\u0287s \u025Fo s\u0279\u0250\u01DD\u028E \u028Edd\u0250\u0265 \u028Eu\u0250\u026F \u028Eo\u0638u\u01DD \u05DF\u05DF\u0131\u028D no\u028E \u01DDdo\u0265 \u01DDM \u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1 \u028D\u01DDu \u0279no\u028E o\u0287 \u01DD\u026Fo\u0254\u05DF\u01DDM",
"book.ironchest.dirtchest9000.page2": "\u00A1\u0287s\u01DD\u0265\u0254 s\u0131\u0265\u0287 \u028Eq ss\u0250d no\u028E \u01DD\u026F\u0131\u0287 \u028Eu\u0250 'no\u028E o\u0287 \u01DD\u05DFq\u0250\u05DF\u0131\u0250\u028C\u0250 \u0287\u0279\u0131p \u0287\u0250\u0265\u0287 bu\u0131\u028C\u0250\u0265 \u025Fo \u01DD\u0254u\u01DD\u0131u\u01DD\u028Cuo\u0254 \u0287\u0250\u01DD\u0279b \u01DD\u0265\u0287 \u028Eo\u0638u\u01DD pu\u0250 \u0287o\u05DFs \u01DD\u028C\u0131\u0287d\u01DD\u0254\u01DD\u0279 \u028E\u05DF\u0265b\u0131\u0265 \u01DD\u0265\u0287 o\u0287u\u0131 \u01DD\u0254\u0131o\u0265\u0254 \u0279no\u028E \u025Fo \u0287\u0279\u0131p \u025Fo \u029E\u0254\u0250\u0287s \u01DD\u0265\u0287 \u0287\u0279\u01DDsu\u0131 \u028E\u05DFd\u026F\u0131s :\u01DDb\u0250s\u2229",
"book.ironchest.dirtchest9000.page3": "\u02D9p\u01DD\u0287\u0250\u0279od\u0279o\u0254u\u0131 s\u0279\u01DD\u0287\u0131\u0279\u028D \u05DF\u0250nu\u0250\u026F 0006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1 \u01DD\u0265\u27D8 'sp\u0279\u0250b\u01DD\u0279 pu\u0131\u029E \u00A1\u01DD\u0279n\u0287n\u025F u\u0131 s\u0287\u0254npo\u0279d \u0279no bu\u0131sn \u0279\u01DDp\u0131suo\u0254 \u05DF\u05DF\u0131\u028D no\u028E \u01DDdo\u0265 pu\u0250 '\u05DF\u0250nu\u0250\u026F uo\u0131\u0287\u0254n\u0279\u0287su\u0131 s\u0131\u0265\u0287 bu\u0131\u028D\u01DD\u0131\u028C\u01DD\u0279 p\u01DD\u028Eo\u0638u\u01DD \u01DD\u028C\u0250\u0265 no\u028E \u01DDdo\u0265 \u01DDM",
"book.ironchest.dirtchest9000.page4": "\u02D9\u05DF\u05DF\u0250 \u0287\u0250 bu\u0131\u0265\u0287\u028Eu\u0250 op \u0287ou \u028E\u0250\u026F \u0287\u0131 '\u028E\u05DF\u01DD\u028C\u0131\u0287\u0250u\u0279\u01DD\u0287\u05DF\u0250 \u0279o '\u0287u\u01DD\u026Fuo\u0279\u0131\u028Cu\u01DD \u01DD\u0265\u0287 o\u0287u\u0131 \u0265\u0254\u01DD\u01DD\u05DF \u028E\u05DF\u028Do\u05DFs \u028E\u0250\u026F \u0287\u0131 'p\u01DD\u0279o\u0287s \u01DDq \u0287ou \u028E\u0250\u026F \u0287\u0279\u0131p \u0279no\u028E \u02D9pu\u0131\u029E \u028Eu\u0250 \u025Fo \u028E\u0287u\u0250\u0279\u0279\u0250\u028D ou s\u0250\u0265 \u0287\u0254npo\u0279d s\u0131\u0265\u27D8 :\u028E\u0287u\u0250\u0279\u0279\u0250M",
"book.ironchest.dirtchest9000.page5": "\u02D9p\u0250s \u028E\u0279\u01DD\u028C \u01DDq p\u05DFno\u028D \u01DDM \u02D9\u0250\u028C\u0250\u05DF \u01DD\u026Fos o\u0287u\u0131 \u0287\u0131 \u029E\u0254n\u0265\u0254 \u0287sn\u0638 op no\u028E \u0279\u01DD\u028C\u01DD\u0287\u0250\u0265\u028D \u0287ou op pu\u0250 '\u028E\u05DFq\u0131suods\u01DD\u0279 \u029Eooq \u01DDp\u0131nb s\u0131\u0265\u0287 \u025Fo \u01DDsods\u0131p \u01DDs\u0250\u01DD\u05DF\u0500 \u02D9\u0287u\u01DD\u026Fuo\u0279\u0131\u028Cu\u01DD \u01DD\u0265\u0287 o\u0287 pu\u0131\u029E s\u0131 0006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1",
"_comment": "Containers",
"ironchest.container.iron_chest": "\u0287s\u01DD\u0265\u0186 uo\u0279I",
"ironchest.container.gold_chest": "\u0287s\u01DD\u0265\u0186 p\u05DFo\u2141",
"ironchest.container.diamond_chest": "\u0287s\u01DD\u0265\u0186 puo\u026F\u0250\u0131\u15E1",
"ironchest.container.copper_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DDddo\u0186",
"ironchest.container.silver_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DD\u028C\u05DF\u0131S",
"ironchest.container.crystal_chest": "\u0287s\u01DD\u0265\u0186 \u05DF\u0250\u0287s\u028E\u0279\u0186",
"ironchest.container.obsidian_chest": "\u0287s\u01DD\u0265\u0186 u\u0250\u0131p\u0131sqO",
"ironchest.container.dirt_chest": "\u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1",
"_comment": "Item Groups",
"itemGroup.ironchest": "s\u0287s\u01DD\u0265\u0186 uo\u0279I"
}

View File

@ -8,7 +8,7 @@
"block.ironchest.crystal_chest": "Crystal Chest",
"block.ironchest.obsidian_chest": "Obsidian Chest",
"block.ironchest.dirt_chest": "DirtChest 9000!",
"_comment": "Upgrades",
"item.ironchest.iron_to_gold_chest_upgrade": "Iron to Gold Chest Upgrade",
"item.ironchest.gold_to_diamond_chest_upgrade": "Gold to Diamond Chest Upgrade",
@ -19,7 +19,7 @@
"item.ironchest.wood_to_iron_chest_upgrade": "Wood to Iron Chest Upgrade",
"item.ironchest.wood_to_copper_chest_upgrade": "Wood to Copper Chest Upgrade",
"item.ironchest.diamond_to_obsidian_chest_upgrade": "Diamond to Obsidian Chest Upgrade",
"_comment": "Books",
"book.ironchest.dirtchest9000.title": "How to use your DirtChest 9000!",
"book.ironchest.dirtchest9000.page1": "Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility.",
@ -37,7 +37,7 @@
"ironchest.container.crystal_chest": "Crystal Chest",
"ironchest.container.obsidian_chest": "Obsidian Chest",
"ironchest.container.dirt_chest": "DirtChest 9000!",
"_comment": "Item Groups",
"itemGroup.ironchest": "Iron Chests"
}
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"item": "ironchest:copper_chest"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:iron_chest"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/silver"
},
"S": {
"item": "ironchest:copper_chest"
}
},
"result": {
"item": "ironchest:silver_chest"
}
}

View File

@ -1,70 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"S": {
"item": "ironchest:diamond_chest"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:crystal_chest"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "minecraft:obsidian"
},
"S": {
"item": "ironchest:diamond_chest"
}
},
"result": {
"item": "ironchest:obsidian_chest"
}
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"tag": "forge:gems/diamond"
},
"S": {
"item": "ironchest:gold_chest"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:diamond_chest"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"item": "ironchest:iron_chest"
}
},
"result": {
"item": "ironchest:gold_chest"
}
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"tag": "forge:ingots/silver"
},
"S": {
"item": "ironchest:iron_chest"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:silver_chest"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"tag": "forge:gems/diamond"
},
"S": {
"item": "ironchest:silver_chest"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:diamond_chest"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"item": "ironchest:silver_chest"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:gold_chest"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/copper"
},
"S": {
"tag": "forge:chests/wooden"
}
},
"result": {
"item": "ironchest:copper_chest"
}
}

View File

@ -1,28 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"S": {
"tag": "forge:chests/wooden"
},
"M": [
{
"item": "minecraft:dirt"
},
{
"item": "minecraft:coarse_dirt"
},
{
"item": "minecraft:podzol"
}
]
},
"result": {
"item": "ironchest:dirt_chest"
},
"_comment": "replaceme with tag forge:dirt when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"tag": "forge:chests/wooden"
}
},
"result": {
"item": "ironchest:iron_chest"
}
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"tag": "forge:ingots/copper"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:copper_to_iron_chest_upgrade"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/silver"
},
"S": {
"tag": "forge:ingots/copper"
}
},
"result": {
"item": "ironchest:copper_to_silver_chest_upgrade"
}
}

View File

@ -1,70 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"S": {
"item": "minecraft:obsidian"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:diamond_to_crystal_chest_upgrade"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,70 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MGM",
"MMM"
],
"key": {
"M": {
"item": "minecraft:obsidian"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:diamond_to_obsidian_chest_upgrade"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"tag": "forge:gems/diamond"
},
"S": {
"tag": "forge:ingots/gold"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:gold_to_diamond_chest_upgrade"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"tag": "forge:ingots/iron"
}
},
"result": {
"item": "ironchest:iron_to_gold_chest_upgrade"
}
}

View File

@ -1,73 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"tag": "forge:ingots/gold"
},
"S": {
"tag": "forge:ingots/silver"
},
"G": [
{
"item": "minecraft:glass"
},
{
"item": "minecraft:white_stained_glass"
},
{
"item": "minecraft:orange_stained_glass"
},
{
"item": "minecraft:magenta_stained_glass"
},
{
"item": "minecraft:light_blue_stained_glass"
},
{
"item": "minecraft:yellow_stained_glass"
},
{
"item": "minecraft:lime_stained_glass"
},
{
"item": "minecraft:pink_stained_glass"
},
{
"item": "minecraft:gray_stained_glass"
},
{
"item": "minecraft:light_gray_stained_glass"
},
{
"item": "minecraft:cyan_stained_glass"
},
{
"item": "minecraft:purple_stained_glass"
},
{
"item": "minecraft:blue_stained_glass"
},
{
"item": "minecraft:brown_stained_glass"
},
{
"item": "minecraft:green_stained_glass"
},
{
"item": "minecraft:red_stained_glass"
},
{
"item": "minecraft:black_stained_glass"
}
]
},
"result": {
"item": "ironchest:silver_to_gold_chest_upgrade"
},
"_comment": "replaceme with tag forge:glass when out."
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/copper"
},
"S": {
"tag": "minecraft:planks"
}
},
"result": {
"item": "ironchest:wood_to_copper_chest_upgrade"
}
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"tag": "forge:ingots/iron"
},
"S": {
"tag": "minecraft:planks"
}
},
"result": {
"item": "ironchest:wood_to_iron_chest_upgrade"
}
}