Fix missing clay recipe, WIP modded ores

This commit is contained in:
thedarkcolour 2023-08-23 15:39:19 -07:00
parent 82b1ecd90e
commit d3c4fa80d9
25 changed files with 182 additions and 36 deletions

1
.gitignore vendored
View File

@ -20,6 +20,7 @@ build
# other
eclipse
run
libs
# Files from Forge MDK
forge*changelog.txt

View File

@ -91,6 +91,9 @@ repositories {
url 'https://jitpack.io'
content { includeGroup 'com.github.thedarkcolour' }
}
flatDir {
dir 'libs'
}
}
dependencies {

View File

@ -1,2 +1,2 @@
// 1.20.1 2023-08-08T15:59:08.3264326 ModKit Language: en_us for mod 'exdeorum'
4e1f603e798362690e1a65a109632e2324ab5a85 assets/exdeorum/lang/en_us.json
// 1.20.1 2023-08-23T14:30:35.0791121 ModKit Language: en_us for mod 'exdeorum'
17dd92c4151093a40f1f496e82735d93ef38168d assets/exdeorum/lang/en_us.json

View File

@ -1,4 +1,4 @@
// 1.20.1 2023-08-10T17:08:20.1669002 Recipes
// 1.20.1 2023-08-23T14:30:35.0841104 Recipes
5ad481a0c376c1a1785a5d3b992064d0ec0bf3b0 data/exdeorum/advancements/recipes/food/end_cake.json
25dd027e844a72b03c95dbe5e3c3dd8c738ceb00 data/exdeorum/advancements/recipes/misc/acacia_barrel.json
376be94a64c9ca97a9ea2346547b6e617f13a815 data/exdeorum/advancements/recipes/misc/acacia_crucible.json
@ -144,6 +144,7 @@ f17f12ac67e700f7838cb3bab740ec254bbfe13c data/exdeorum/recipes/barrel_compost/tw
653a42a46a6bd977a2eddea7336df4beabbbeecf data/exdeorum/recipes/barrel_compost/vine.json
c4ecb4272c220282de403852031b3ca92651d91c data/exdeorum/recipes/barrel_compost/weeping_vines.json
5677e23fdc74130523d602ebf9e557f659af57c5 data/exdeorum/recipes/barrel_compost/wheat.json
bdcdeae9d06028ce943d06c367b58677efe03fa8 data/exdeorum/recipes/barrel_mixing/clay.json
72f969f4db1f82a627df573c866a1b291e540a0a data/exdeorum/recipes/barrel_mixing/end_stone.json
37f73e219fda3c6f56bf55f8ec7f97586ecdbae1 data/exdeorum/recipes/barrel_mixing/ice.json
6c31cd3a1b2204561b123875fae0f7aebcdf7b16 data/exdeorum/recipes/barrel_mixing/magma_cream.json

View File

@ -1,7 +1,8 @@
// 1.20.1 2023-08-08T16:04:12.9142287 ModKit Item Models for mod 'exdeorum'
// 1.20.1 2023-08-23T14:30:35.0821114 ModKit Item Models for mod 'exdeorum'
4ba3bb2c6174ac3728a4b85e34681f118ec8eb34 assets/exdeorum/models/item/acacia_barrel.json
c03ce41f7c071498fcbd5f5225e91dcb2f365fbb assets/exdeorum/models/item/acacia_crucible.json
3b4f1d45c0d9c4cd1d9a5cdf6ddc8d2c9791bca5 assets/exdeorum/models/item/acacia_sieve.json
27529fa4c6d045bef18966b8c418bb8357cf2043 assets/exdeorum/models/item/aluminum_ore_chunk.json
75b0f3740a14d74089e29d059bf2100549f527d4 assets/exdeorum/models/item/andesite_pebble.json
fd1850138a04a6651f4a79cdc93b52b3ddcd88ab assets/exdeorum/models/item/bamboo_barrel.json
ef8aec7c31e2d11e5b2e653aea90eaf4d672258e assets/exdeorum/models/item/bamboo_crucible.json
@ -16,6 +17,7 @@ d3f7de31d0fba8578c3e36a16ab39ac0a4d54af9 assets/exdeorum/models/item/calcite_peb
95b067616dfc39ad8f72bab6d2cf40c6c05a3748 assets/exdeorum/models/item/cherry_barrel.json
9480047be2df6b628b18f1102699ed8f24de4deb assets/exdeorum/models/item/cherry_crucible.json
8e6c3863c2c6f6fc4039d8157cb9850b193a56be assets/exdeorum/models/item/cherry_sieve.json
4f5fa166847ceacc60abaa11bc70bb947be20c27 assets/exdeorum/models/item/cobalt_ore_chunk.json
e0a5c7f6e6ec0cd9aa99175d3bca27b88ac299d4 assets/exdeorum/models/item/cooked_silk_worm.json
a24ee1ee422f8460afec77474608b988d52ea42d assets/exdeorum/models/item/copper_ore_chunk.json
d6109df4904776aca591e7dfc8ee8da50664e1df assets/exdeorum/models/item/crimson_barrel.json
@ -44,6 +46,7 @@ f2138f982e5ee62ca1ed52c3a64a7813fd91ead9 assets/exdeorum/models/item/golden_mesh
ee9de2285230b32b42585283793b265c4bb14773 assets/exdeorum/models/item/gold_ore_chunk.json
5c80508cc8b27f55f91efc58efb7955e70dd2592 assets/exdeorum/models/item/granite_pebble.json
f558ddd632278ad3ab548ce85cdc4661a2d70684 assets/exdeorum/models/item/grass_seeds.json
abd9901aa00893690461a6c6e276bb6bc96a60bb assets/exdeorum/models/item/iridium_ore_chunk.json
b91a19335ff248805cf0861cae82b93d71a9e805 assets/exdeorum/models/item/iron_hammer.json
3398985db718bd990d9f7cfdf4bacf67a858b906 assets/exdeorum/models/item/iron_mesh.json
5016a7f832edb2ccfa9de7c85aa9ecf7ce45cb69 assets/exdeorum/models/item/iron_ore_chunk.json
@ -51,6 +54,7 @@ a4a83946b9cb63dfa2a6fa22dcc3c3a4773bf79f assets/exdeorum/models/item/iron_wateri
e4719451e58406787ac0d5fb40416b76b2a03002 assets/exdeorum/models/item/jungle_barrel.json
746006f07a42bc786ccab5c6f5849f175e117183 assets/exdeorum/models/item/jungle_crucible.json
eebf19c29a53f46c26a33bb9e2052190c88ecc50 assets/exdeorum/models/item/jungle_sieve.json
5b40d64710f86ff702001cf658e4928f8195f2fa assets/exdeorum/models/item/lead_ore_chunk.json
40db3277bce3f5291d16740d6dd0d96661e04197 assets/exdeorum/models/item/mangrove_barrel.json
9d8b0cd120a6965dcba6cc3753d76b7171bbddbc assets/exdeorum/models/item/mangrove_crucible.json
319ea63595a7f9ceff1818414c8250f777f087f4 assets/exdeorum/models/item/mangrove_sieve.json
@ -58,9 +62,12 @@ d543d3e18bdcf2bf79a762b52cc61a4161124db1 assets/exdeorum/models/item/mycelium_sp
1f48b2ce3452ce5d02142c9f663ae7bdb7d1d934 assets/exdeorum/models/item/netherite_hammer.json
248ebed818e2e4a5eb7ce78363f56433a3066646 assets/exdeorum/models/item/netherite_mesh.json
44004d850da735a9f239d07a615813f8badb373f assets/exdeorum/models/item/netherite_watering_can.json
0a582fabe391718c2492ee3979791e0561f74202 assets/exdeorum/models/item/nickel_ore_chunk.json
c8b55bd8b222b2914d0b21d847788abce42c1d06 assets/exdeorum/models/item/oak_barrel.json
dd1d9002a22eb6f5a187d53e041cd498f4ef998b assets/exdeorum/models/item/oak_crucible.json
4de21205436d30940d690f457a3614c9235f5e88 assets/exdeorum/models/item/oak_sieve.json
08409f22e4cf59c658f80029e1c3c00b015a86ac assets/exdeorum/models/item/osmium_ore_chunk.json
2c7baa04ad1b1310e219359fc8a7d2453e05548e assets/exdeorum/models/item/platinum_ore_chunk.json
0e330ed6d5ef4af907bb537a42282a41b1e7698a assets/exdeorum/models/item/porcelain_bucket.json
f843e3bbc432c370ea62f421580b5447807e8b8b assets/exdeorum/models/item/porcelain_clay_ball.json
acb7c543d965cfc01ba4cb7b2dc0577ebd1e0eba assets/exdeorum/models/item/porcelain_crucible.json
@ -70,6 +77,7 @@ acb7c543d965cfc01ba4cb7b2dc0577ebd1e0eba assets/exdeorum/models/item/porcelain_c
8012448a03d9a5a439daa36ae8f76f9fe13c3629 assets/exdeorum/models/item/porcelain_witch_water_bucket.json
3818c896e463945cc5081644bc1ed52edbde6ebb assets/exdeorum/models/item/sculk_core.json
52d8514e585524122e32cae1c18a838da5eb6f09 assets/exdeorum/models/item/silk_worm.json
f7ca92f0d009a188c037bf129356b6f493564853 assets/exdeorum/models/item/silver_ore_chunk.json
a017f369bb5bf2dde7ebc1134fc89f96a725ea8d assets/exdeorum/models/item/spruce_barrel.json
03dac3d7dec527c4a9efbb6c28d23815252b9c39 assets/exdeorum/models/item/spruce_crucible.json
a1acf7f34360d0710f0f0bceb83f5028c4c93710 assets/exdeorum/models/item/spruce_sieve.json
@ -78,9 +86,11 @@ b71e04a912b620bfebfd309bf5d61cee8fba35b9 assets/exdeorum/models/item/stone_hamme
9cf157cd0b41f89c9291be6b6383e0494369c6ef assets/exdeorum/models/item/stone_pebble.json
3d848c2d1f094ceab9fb3f951f140b85cea2a6ab assets/exdeorum/models/item/stone_watering_can.json
d9561f75ac700cf33abf8e1f7684d1c5fec85a89 assets/exdeorum/models/item/string_mesh.json
d2f8f4dad969d875e4e455dc1cdc58e80c84e45e assets/exdeorum/models/item/tin_ore_chunk.json
b7b483e30fc97f7f307f5b09249bbdd03e980caa assets/exdeorum/models/item/tuff_pebble.json
b56c539af5e9e562830143e9c32f10b33a26eb5a assets/exdeorum/models/item/unfired_porcelain_bucket.json
a83a24ae2611430c290b4f866c73769aacdb9c92 assets/exdeorum/models/item/unfired_porcelain_crucible.json
be960745ad88b8bf2277dc3ba8308ec3707edbe1 assets/exdeorum/models/item/uranium_ore_chunk.json
bb3b00cc253bc23b65d775bcb9134f38b049e3ce assets/exdeorum/models/item/warped_barrel.json
1c4832816b0a69ff0e422bd21e20dd05e3c40090 assets/exdeorum/models/item/warped_crucible.json
8b76cf494636338cceec59d252dd4145f046cc58 assets/exdeorum/models/item/warped_nylium_spores.json
@ -88,3 +98,4 @@ bb3b00cc253bc23b65d775bcb9134f38b049e3ce assets/exdeorum/models/item/warped_barr
c72e7359dd4934c756c49350682ac667fffe009b assets/exdeorum/models/item/witch_water_bucket.json
7089629f8033bd4e52780fe88437aa684f4ee0a9 assets/exdeorum/models/item/wooden_hammer.json
d6c652c6828ed14e33c4e948afc1c9a29f977853 assets/exdeorum/models/item/wooden_watering_can.json
b2118d142d87e5956865096bd2dc16b3f533e783 assets/exdeorum/models/item/zinc_ore_chunk.json

View File

@ -75,11 +75,13 @@
"info.exdeorum.warped_nylium_spores": "Use on netherrack to turn it into a warped nylium block.",
"info.exdeorum.watering_can": "Watering cans speed up crop growth, tree growth, and grass spreading, among other things. They can be filled with water from barrels and wooden crucibles. Golden and above watering cans do not need to be refilled once full. Diamond watering cans water in a 3x3 area, and Netherite watering cans are usable by machinery.",
"info.exdeorum.witch_water": "Witch water is obtained by putting water in a barrel on top of mycelium. More mycelium speeds up the process. A barrel with witch water will grow mushrooms on nearby mycelium. Witch water and lava can make a netherrack generator, similar to a cobblestone generator.",
"item.exdeorum.aluminum_ore_chunk": "Aluminum Ore Chunk",
"item.exdeorum.andesite_pebble": "Andesite Pebble",
"item.exdeorum.basalt_pebble": "Basalt Pebble",
"item.exdeorum.blackstone_pebble": "Blackstone Pebble",
"item.exdeorum.bone_crook": "Bone Crook",
"item.exdeorum.calcite_pebble": "Calcite Pebble",
"item.exdeorum.cobalt_ore_chunk": "Cobalt Ore Chunk",
"item.exdeorum.cooked_silk_worm": "Cooked Silk Worm",
"item.exdeorum.copper_ore_chunk": "Copper Ore Chunk",
"item.exdeorum.crimson_nylium_spores": "Crimson Nylium Spores",
@ -96,14 +98,19 @@
"item.exdeorum.golden_watering_can": "Golden Watering Can",
"item.exdeorum.granite_pebble": "Granite Pebble",
"item.exdeorum.grass_seeds": "Grass Seeds",
"item.exdeorum.iridium_ore_chunk": "Iridium Ore Chunk",
"item.exdeorum.iron_hammer": "Iron Hammer",
"item.exdeorum.iron_mesh": "Iron Mesh",
"item.exdeorum.iron_ore_chunk": "Iron Ore Chunk",
"item.exdeorum.iron_watering_can": "Iron Watering Can",
"item.exdeorum.lead_ore_chunk": "Lead Ore Chunk",
"item.exdeorum.mycelium_spores": "Mycelium Spores",
"item.exdeorum.netherite_hammer": "Netherite Hammer",
"item.exdeorum.netherite_mesh": "Netherite Mesh",
"item.exdeorum.netherite_watering_can": "Netherite Watering Can",
"item.exdeorum.nickel_ore_chunk": "Nickel Ore Chunk",
"item.exdeorum.osmium_ore_chunk": "Osmium Ore Chunk",
"item.exdeorum.platinum_ore_chunk": "Platinum Ore Chunk",
"item.exdeorum.porcelain_bucket": "Porcelain Bucket",
"item.exdeorum.porcelain_clay_ball": "Porcelain Clay Ball",
"item.exdeorum.porcelain_lava_bucket": "Porcelain Lava Bucket",
@ -112,16 +119,20 @@
"item.exdeorum.porcelain_witch_water_bucket": "Porcelain Witch Water Bucket",
"item.exdeorum.sculk_core": "Sculk Core",
"item.exdeorum.silk_worm": "Silk Worm",
"item.exdeorum.silver_ore_chunk": "Silver Ore Chunk",
"item.exdeorum.stone_hammer": "Stone Hammer",
"item.exdeorum.stone_pebble": "Stone Pebble",
"item.exdeorum.stone_watering_can": "Stone Watering Can",
"item.exdeorum.string_mesh": "String Mesh",
"item.exdeorum.tin_ore_chunk": "Tin Ore Chunk",
"item.exdeorum.tuff_pebble": "Tuff Pebble",
"item.exdeorum.unfired_porcelain_bucket": "Unfired Porcelain Bucket",
"item.exdeorum.uranium_ore_chunk": "Uranium Ore Chunk",
"item.exdeorum.warped_nylium_spores": "Warped Nylium Spores",
"item.exdeorum.watering_can_fluid_display": ": %s / %s",
"item.exdeorum.witch_water_bucket": "Witch Water Bucket",
"item.exdeorum.wooden_hammer": "Wooden Hammer",
"item.exdeorum.wooden_watering_can": "Wooden Watering Can",
"item.exdeorum.zinc_ore_chunk": "Zinc Ore Chunk",
"itemGroup.exdeorum.main": "Ex Deorum"
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/aluminum_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/cobalt_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/iridium_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/lead_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/nickel_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/osmium_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/platinum_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/silver_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/tin_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/uranium_ore_chunk"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "exdeorum:item/zinc_ore_chunk"
}
}

View File

@ -0,0 +1,9 @@
{
"type": "exdeorum:barrel_mixing",
"fluid": "minecraft:water",
"fluid_amount": 1000,
"ingredient": {
"item": "exdeorum:dust"
},
"result": "minecraft:clay"
}

View File

@ -61,6 +61,7 @@ public class ExDeorum {
DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> ClientHandlerRegistrar::register);
// Config init
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, EConfig.SERVER_SPEC);
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, EConfig.COMMON_SPEC);
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, EConfig.CLIENT_SPEC);
}

View File

@ -19,6 +19,7 @@
package thedarkcolour.exdeorum.compat;
public class ModIds {
public static final String MINECRAFT = "minecraft";
public static final String THE_ONE_PROBE = "theoneprobe";
public static final String TINKERS_CONSTRUCT = "tconstruct";
}

View File

@ -20,6 +20,7 @@ package thedarkcolour.exdeorum.compat.jei;
import mezz.jei.api.IModPlugin;
import mezz.jei.api.JeiPlugin;
import mezz.jei.api.constants.VanillaTypes;
import mezz.jei.api.forge.ForgeTypes;
import mezz.jei.api.recipe.RecipeType;
import mezz.jei.api.registration.IRecipeCatalystRegistration;
@ -35,6 +36,7 @@ import net.minecraftforge.fluids.FluidStack;
import thedarkcolour.exdeorum.ExDeorum;
import thedarkcolour.exdeorum.data.TranslationKeys;
import thedarkcolour.exdeorum.item.WateringCanItem;
import thedarkcolour.exdeorum.recipe.RecipeUtil;
import thedarkcolour.exdeorum.recipe.barrel.BarrelCompostRecipe;
import thedarkcolour.exdeorum.recipe.barrel.BarrelMixingRecipe;
import thedarkcolour.exdeorum.recipe.crucible.CrucibleRecipe;
@ -43,7 +45,9 @@ import thedarkcolour.exdeorum.registry.EBlocks;
import thedarkcolour.exdeorum.registry.EFluids;
import thedarkcolour.exdeorum.registry.EItems;
import thedarkcolour.exdeorum.registry.ERecipeTypes;
import thedarkcolour.exdeorum.tag.EItemTags;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.function.Supplier;
@ -52,12 +56,12 @@ import java.util.function.Supplier;
public class ExDeorumJeiPlugin implements IModPlugin {
public static final ResourceLocation EX_DEORUM_JEI_TEXTURE = new ResourceLocation(ExDeorum.ID, "textures/gui/jei/enr_jei.png");
public static final RecipeType<BarrelCompostRecipe> BARREL_COMPOST = RecipeType.create(ExDeorum.ID, "barrel_compost", BarrelCompostRecipe.class);
public static final RecipeType<BarrelMixingRecipe> BARREL_MIXING = RecipeType.create(ExDeorum.ID, "barrel_mixing", BarrelMixingRecipe.class);
public static final RecipeType<CrucibleRecipe> LAVA_CRUCIBLE = RecipeType.create(ExDeorum.ID, "lava_crucible", CrucibleRecipe.class);
public static final RecipeType<CrucibleRecipe> WATER_CRUCIBLE = RecipeType.create(ExDeorum.ID, "water_crucible", CrucibleRecipe.class);
public static final RecipeType<JeiSieveRecipeGroup> SIEVE = RecipeType.create(ExDeorum.ID, "sieve", JeiSieveRecipeGroup.class);
public static final RecipeType<HammerRecipe> HAMMER = RecipeType.create(ExDeorum.ID, "hammer", HammerRecipe.class);
static final RecipeType<BarrelCompostRecipe> BARREL_COMPOST = RecipeType.create(ExDeorum.ID, "barrel_compost", BarrelCompostRecipe.class);
static final RecipeType<BarrelMixingRecipe> BARREL_MIXING = RecipeType.create(ExDeorum.ID, "barrel_mixing", BarrelMixingRecipe.class);
static final RecipeType<CrucibleRecipe> LAVA_CRUCIBLE = RecipeType.create(ExDeorum.ID, "lava_crucible", CrucibleRecipe.class);
static final RecipeType<CrucibleRecipe> WATER_CRUCIBLE = RecipeType.create(ExDeorum.ID, "water_crucible", CrucibleRecipe.class);
static final RecipeType<JeiSieveRecipeGroup> SIEVE = RecipeType.create(ExDeorum.ID, "sieve", JeiSieveRecipeGroup.class);
static final RecipeType<HammerRecipe> HAMMER = RecipeType.create(ExDeorum.ID, "hammer", HammerRecipe.class);
@Override
public ResourceLocation getPluginUid() {
@ -147,6 +151,22 @@ public class ExDeorumJeiPlugin implements IModPlugin {
registration.addItemStackInfo(new ItemStack(EItems.CRIMSON_NYLIUM_SPORES.get()), Component.translatable(TranslationKeys.CRIMSON_NYLIUM_SPORES_JEI_INFO));
registration.addItemStackInfo(new ItemStack(EItems.SCULK_CORE.get()), Component.translatable(TranslationKeys.SCULK_CORE_JEI_INFO));
var toRemove = new ArrayList<ItemStack>();
if (RecipeUtil.isTagEmpty(EItemTags.ORES_ALUMINUM)) toRemove.add(new ItemStack(EItems.ALUMINUM_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_COBALT)) toRemove.add(new ItemStack(EItems.COBALT_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_SILVER)) toRemove.add(new ItemStack(EItems.SILVER_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_LEAD)) toRemove.add(new ItemStack(EItems.LEAD_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_PLATINUM)) toRemove.add(new ItemStack(EItems.PLATINUM_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_NICKEL)) toRemove.add(new ItemStack(EItems.NICKEL_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_URANIUM)) toRemove.add(new ItemStack(EItems.URANIUM_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_OSMIUM)) toRemove.add(new ItemStack(EItems.OSMIUM_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_TIN)) toRemove.add(new ItemStack(EItems.TIN_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_ZINC)) toRemove.add(new ItemStack(EItems.ZINC_ORE_CHUNK.get()));
if (RecipeUtil.isTagEmpty(EItemTags.ORES_IRIDIUM)) toRemove.add(new ItemStack(EItems.IRIDIUM_ORE_CHUNK.get()));
registration.getIngredientManager().removeIngredientsAtRuntime(VanillaTypes.ITEM_STACK, toRemove);
addRecipes(registration, BARREL_COMPOST, ERecipeTypes.BARREL_COMPOST);
addRecipes(registration, BARREL_MIXING, ERecipeTypes.BARREL_MIXING);
addRecipes(registration, LAVA_CRUCIBLE, ERecipeTypes.LAVA_CRUCIBLE);

View File

@ -27,6 +27,8 @@ import org.apache.commons.lang3.text.WordUtils;
import org.apache.commons.lang3.tuple.Pair;
import thedarkcolour.exdeorum.compat.ModIds;
import java.util.List;
public class EConfig {
public static final ForgeConfigSpec CLIENT_SPEC;
public static final ForgeConfigSpec COMMON_SPEC;
@ -55,17 +57,17 @@ public class EConfig {
// Needed because common configs load before Tags
public static class Common {
public final ConfigValue<ResourceLocation> preferredAluminumOre;
public final ConfigValue<ResourceLocation> preferredCobaltOre;
public final ConfigValue<ResourceLocation> preferredSilverOre;
public final ConfigValue<ResourceLocation> preferredLeadOre;
public final ConfigValue<ResourceLocation> preferredPlatinumOre;
public final ConfigValue<ResourceLocation> preferredNickelOre;
public final ConfigValue<ResourceLocation> preferredUraniumOre;
public final ConfigValue<ResourceLocation> preferredOsmiumOre;
public final ConfigValue<ResourceLocation> preferredTinOre;
public final ConfigValue<ResourceLocation> preferredZincOre;
public final ConfigValue<ResourceLocation> preferredIridiumOre;
public final ConfigValue<String> preferredAluminumOre;
public final ConfigValue<String> preferredCobaltOre;
public final ConfigValue<String> preferredSilverOre;
public final ConfigValue<String> preferredLeadOre;
public final ConfigValue<String> preferredPlatinumOre;
public final ConfigValue<String> preferredNickelOre;
public final ConfigValue<String> preferredUraniumOre;
public final ConfigValue<String> preferredOsmiumOre;
public final ConfigValue<String> preferredTinOre;
public final ConfigValue<String> preferredZincOre;
public final ConfigValue<String> preferredIridiumOre;
public Common(ForgeConfigSpec.Builder builder) {
// Preferred items
@ -73,10 +75,10 @@ public class EConfig {
builder.comment("For recipes automatically added by Ex Deorum for other mods, some mods may add two of the same item (ex. Tin Ore). When Ex Deorum adds a recipe for those kinds of items, you may choose which item of the two (or more) is chosen as the crafting result.").push("preferred_tag_items");
var airId = new ResourceLocation("air");
var airId = ModIds.MINECRAFT + ":air";
this.preferredAluminumOre = preferredOreConfig(builder, "aluminum_ore", airId);
this.preferredCobaltOre = preferredOreConfig(builder, "cobalt_ore", new ResourceLocation(ModIds.TINKERS_CONSTRUCT, "cobalt_ore"));
this.preferredCobaltOre = preferredOreConfig(builder, "cobalt_ore", ModIds.TINKERS_CONSTRUCT + ":cobalt_ore");
this.preferredSilverOre = preferredOreConfig(builder, "silver_ore", airId);
this.preferredLeadOre = preferredOreConfig(builder, "lead_ore", airId);
this.preferredPlatinumOre = preferredOreConfig(builder, "platinum_ore", airId);
@ -126,10 +128,10 @@ public class EConfig {
}
@SuppressWarnings("deprecation")
private static ConfigValue<ResourceLocation> preferredOreConfig(ForgeConfigSpec.Builder builder, String name, ResourceLocation defaultId) {
private static ConfigValue<String> preferredOreConfig(ForgeConfigSpec.Builder builder, String name, String defaultId) {
return builder
.comment("The ID of the item to use for Ex Deorum recipes that craft into " + WordUtils.capitalize(name.replace('_', ' ')) + ". Leave as air for default preference, which chooses alphabetically by mod name.")
.define("preferred_" + name, defaultId);
.define(List.of("preferred_" + name), defaultId, o -> o != null && o.getClass() == String.class && ResourceLocation.isValidResourceLocation((String) o));
}
static {

View File

@ -1021,6 +1021,7 @@ class Recipes {
private static void barrelMixingRecipes(Consumer<FinishedRecipe> writer) {
// water
barrelMixing(writer, ingredient(EItems.DUST.get()), Fluids.WATER, Items.CLAY);
barrelMixing(writer, ingredient(Items.MILK_BUCKET), Fluids.WATER, Items.SLIME_BLOCK);
barrelMixing(writer, "_from_porcelain_bucket", ingredient(EItems.PORCELAIN_MILK_BUCKET.get()), Fluids.WATER, Items.SLIME_BLOCK);
barrelMixing(writer, ingredient(Items.SNOWBALL), Fluids.WATER, Items.ICE);

View File

@ -91,17 +91,17 @@ public final class RecipeUtil {
waterCrucibleRecipeCache = Lazy.of(() -> loadSimpleRecipeCache(recipes, ERecipeTypes.WATER_CRUCIBLE));
preferredTagItems.clear();
preferredTagItems.put(EItemTags.ORES_ALUMINUM, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredAluminumOre.get()));
preferredTagItems.put(EItemTags.ORES_COBALT, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredCobaltOre.get()));
preferredTagItems.put(EItemTags.ORES_SILVER, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredSilverOre.get()));
preferredTagItems.put(EItemTags.ORES_LEAD, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredLeadOre.get()));
preferredTagItems.put(EItemTags.ORES_PLATINUM, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredPlatinumOre.get()));
preferredTagItems.put(EItemTags.ORES_NICKEL, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredNickelOre.get()));
preferredTagItems.put(EItemTags.ORES_URANIUM, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredUraniumOre.get()));
preferredTagItems.put(EItemTags.ORES_OSMIUM, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredOsmiumOre.get()));
preferredTagItems.put(EItemTags.ORES_TIN, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredTinOre.get()));
preferredTagItems.put(EItemTags.ORES_ZINC, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredZincOre.get()));
preferredTagItems.put(EItemTags.ORES_IRIDIUM, ForgeRegistries.ITEMS.getValue(EConfig.SERVER.preferredIridiumOre.get()));
preferredTagItems.put(EItemTags.ORES_ALUMINUM, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredAluminumOre.get())));
preferredTagItems.put(EItemTags.ORES_COBALT, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredCobaltOre.get())));
preferredTagItems.put(EItemTags.ORES_SILVER, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredSilverOre.get())));
preferredTagItems.put(EItemTags.ORES_LEAD, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredLeadOre.get())));
preferredTagItems.put(EItemTags.ORES_PLATINUM, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredPlatinumOre.get())));
preferredTagItems.put(EItemTags.ORES_NICKEL, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredNickelOre.get())));
preferredTagItems.put(EItemTags.ORES_URANIUM, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredUraniumOre.get())));
preferredTagItems.put(EItemTags.ORES_OSMIUM, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredOsmiumOre.get())));
preferredTagItems.put(EItemTags.ORES_TIN, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredTinOre.get())));
preferredTagItems.put(EItemTags.ORES_ZINC, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredZincOre.get())));
preferredTagItems.put(EItemTags.ORES_IRIDIUM, ForgeRegistries.ITEMS.getValue(new ResourceLocation(EConfig.COMMON.preferredIridiumOre.get())));
}
// Copied from ServerLifecycleHooks.getServerConfigPath
@ -349,6 +349,10 @@ public final class RecipeUtil {
}
}
public static boolean isTagEmpty(TagKey<Item> tag) {
return BuiltInRegistries.ITEM.getTag(tag).map(set -> set.iterator().hasNext()).orElse(true);
}
private record SieveCacheKey(Item mesh, Item ingredient) {
}
}

View File

@ -44,6 +44,8 @@ import thedarkcolour.exdeorum.item.SilkWormItem;
import thedarkcolour.exdeorum.item.WateringCanItem;
import thedarkcolour.exdeorum.item.WideWateringCanItem;
import thedarkcolour.exdeorum.item.WitchWaterBucketItem;
import thedarkcolour.exdeorum.recipe.RecipeUtil;
import thedarkcolour.exdeorum.tag.EItemTags;
import java.util.List;
@ -265,6 +267,19 @@ public class EItems {
output.accept(IRON_ORE_CHUNK.get());
output.accept(COPPER_ORE_CHUNK.get());
output.accept(GOLD_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_ALUMINUM)) output.accept(ALUMINUM_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_COBALT)) output.accept(COBALT_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_SILVER)) output.accept(SILVER_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_LEAD)) output.accept(LEAD_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_PLATINUM)) output.accept(PLATINUM_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_NICKEL)) output.accept(NICKEL_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_URANIUM)) output.accept(URANIUM_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_OSMIUM)) output.accept(OSMIUM_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_TIN)) output.accept(TIN_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_ZINC)) output.accept(ZINC_ORE_CHUNK.get());
if (!RecipeUtil.isTagEmpty(EItemTags.ORES_IRIDIUM)) output.accept(IRIDIUM_ORE_CHUNK.get());
output.accept(STONE_PEBBLE.get());
output.accept(DIORITE_PEBBLE.get());
output.accept(GRANITE_PEBBLE.get());