diff --git a/src/generated/resources/assets/c/lang/en_us.json b/src/generated/resources/assets/c/lang/en_us.json index 1e7cbff6cb3..45e9e3aa439 100644 --- a/src/generated/resources/assets/c/lang/en_us.json +++ b/src/generated/resources/assets/c/lang/en_us.json @@ -252,6 +252,7 @@ "tag.item.c.foods.cooked_fish": "Cooked Fishes", "tag.item.c.foods.cooked_meat": "Cooked Meats", "tag.item.c.foods.cookie": "Cookies", + "tag.item.c.foods.dough": "Doughs", "tag.item.c.foods.edible_when_placed": "Edible When Placed", "tag.item.c.foods.food_poisoning": "Food Poisoning Foods", "tag.item.c.foods.fruit": "Fruits", diff --git a/src/generated/resources/data/c/tags/item/foods.json b/src/generated/resources/data/c/tags/item/foods.json index 401cd7e0e9a..1d283390d30 100644 --- a/src/generated/resources/data/c/tags/item/foods.json +++ b/src/generated/resources/data/c/tags/item/foods.json @@ -10,6 +10,7 @@ "#c:foods/berry", "#c:foods/bread", "#c:foods/cookie", + "#c:foods/dough", "#c:foods/raw_meat", "#c:foods/raw_fish", "#c:foods/cooked_meat", diff --git a/src/generated/resources/data/c/tags/item/foods/dough.json b/src/generated/resources/data/c/tags/item/foods/dough.json new file mode 100644 index 00000000000..12e740677ab --- /dev/null +++ b/src/generated/resources/data/c/tags/item/foods/dough.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "#c:foods/doughs", + "required": false + } + ] +} \ No newline at end of file diff --git a/src/main/java/net/neoforged/neoforge/common/TagConventionLogWarning.java b/src/main/java/net/neoforged/neoforge/common/TagConventionLogWarning.java index 1bd62fc6bf2..785bdcca5cc 100644 --- a/src/main/java/net/neoforged/neoforge/common/TagConventionLogWarning.java +++ b/src/main/java/net/neoforged/neoforge/common/TagConventionLogWarning.java @@ -392,6 +392,9 @@ public enum LogWarningMode { createForgeMapEntry(Registries.ITEM, "cookie", Tags.Items.FOODS_COOKIE), createForgeMapEntry(Registries.ITEM, "cookies", Tags.Items.FOODS_COOKIE), createMapEntry(Registries.ITEM, "c", "foods/cookies", Tags.Items.FOODS_COOKIE), + createForgeMapEntry(Registries.ITEM, "dough", Tags.Items.FOODS_DOUGH), + createForgeMapEntry(Registries.ITEM, "doughs", Tags.Items.FOODS_DOUGH), + createMapEntry(Registries.ITEM, "c", "foods/doughs", Tags.Items.FOODS_DOUGH), createForgeMapEntry(Registries.ITEM, "raw_meat", Tags.Items.FOODS_RAW_MEAT), createForgeMapEntry(Registries.ITEM, "raw_meats", Tags.Items.FOODS_RAW_MEAT), createMapEntry(Registries.ITEM, "c", "foods/raw_meats", Tags.Items.FOODS_RAW_MEAT), diff --git a/src/main/java/net/neoforged/neoforge/common/Tags.java b/src/main/java/net/neoforged/neoforge/common/Tags.java index 45a4924d081..f5530e643ec 100644 --- a/src/main/java/net/neoforged/neoforge/common/Tags.java +++ b/src/main/java/net/neoforged/neoforge/common/Tags.java @@ -513,6 +513,20 @@ public static class Items { public static final TagKey FOODS_BERRY = tag("foods/berry"); public static final TagKey FOODS_BREAD = tag("foods/bread"); public static final TagKey FOODS_COOKIE = tag("foods/cookie"); + /** + * For all doughs regardless of type, specific types of dough should fall under their respective sub-tag.
+ * For example:
+ * - Wheat dough (which generally results in bread) would go in "#c:foods/dough/wheat"
+ * - Rye dough (which has rye as it's main ingredient) would go in "#c:foods/dough/rye"
+ * - Sub-tags should also be added to this tag, for example: "#c:foods/dough/wheat" should be added to "#c:foods/dough"
+ *
+ * There are some important assumptions that should be kept in mind.
+ * - It is assumed that "1 dough = result", which in the case of wheat dough would be "1 dough = 1 bread"
+ * - It is assumed that this dough can be baked into another item
+ * - It is *not* assumed that all doughs result in bread, there can be doughs in this tag that result in things like pizza, etc. + * This means that this tag should *not* be used for furnace recipes, mods should add their own dough to result recipes for their respective items. + */ + public static final TagKey FOODS_DOUGH = tag("foods/dough"); public static final TagKey FOODS_RAW_MEAT = tag("foods/raw_meat"); public static final TagKey FOODS_COOKED_MEAT = tag("foods/cooked_meat"); public static final TagKey FOODS_RAW_FISH = tag("foods/raw_fish"); diff --git a/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeItemTagsProvider.java b/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeItemTagsProvider.java index bd236c7289a..f822fe05762 100644 --- a/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeItemTagsProvider.java +++ b/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeItemTagsProvider.java @@ -126,6 +126,7 @@ public void addTags(HolderLookup.Provider lookupProvider) { tag(Tags.Items.FOODS_BERRY).add(Items.SWEET_BERRIES, Items.GLOW_BERRIES); tag(Tags.Items.FOODS_BREAD).add(Items.BREAD); tag(Tags.Items.FOODS_COOKIE).add(Items.COOKIE); + tag(Tags.Items.FOODS_DOUGH); tag(Tags.Items.FOODS_RAW_MEAT).add(Items.BEEF, Items.PORKCHOP, Items.CHICKEN, Items.RABBIT, Items.MUTTON); tag(Tags.Items.FOODS_RAW_FISH).add(Items.COD, Items.SALMON, Items.TROPICAL_FISH, Items.PUFFERFISH); tag(Tags.Items.FOODS_COOKED_MEAT).add(Items.COOKED_BEEF, Items.COOKED_PORKCHOP, Items.COOKED_CHICKEN, Items.COOKED_RABBIT, Items.COOKED_MUTTON); @@ -138,10 +139,10 @@ public void addTags(HolderLookup.Provider lookupProvider) { tag(Tags.Items.FOODS_FOOD_POISONING).add(Items.POISONOUS_POTATO, Items.PUFFERFISH, Items.SPIDER_EYE, Items.CHICKEN, Items.ROTTEN_FLESH); tag(Tags.Items.FOODS) .add(Items.BAKED_POTATO, Items.PUMPKIN_PIE, Items.HONEY_BOTTLE, Items.OMINOUS_BOTTLE, Items.DRIED_KELP) - .addTags(Tags.Items.FOODS_FRUIT, Tags.Items.FOODS_VEGETABLE, Tags.Items.FOODS_BERRY, Tags.Items.FOODS_BREAD, Tags.Items.FOODS_COOKIE, - Tags.Items.FOODS_RAW_MEAT, Tags.Items.FOODS_RAW_FISH, Tags.Items.FOODS_COOKED_MEAT, Tags.Items.FOODS_COOKED_FISH, - Tags.Items.FOODS_SOUP, Tags.Items.FOODS_CANDY, Tags.Items.FOODS_PIE, Tags.Items.FOODS_GOLDEN, - Tags.Items.FOODS_EDIBLE_WHEN_PLACED, Tags.Items.FOODS_FOOD_POISONING); + .addTags(Tags.Items.FOODS_FRUIT, Tags.Items.FOODS_VEGETABLE, Tags.Items.FOODS_BERRY, Tags.Items.FOODS_BREAD, + Tags.Items.FOODS_COOKIE, Tags.Items.FOODS_DOUGH, Tags.Items.FOODS_RAW_MEAT, Tags.Items.FOODS_RAW_FISH, + Tags.Items.FOODS_COOKED_MEAT, Tags.Items.FOODS_COOKED_FISH, Tags.Items.FOODS_SOUP, Tags.Items.FOODS_CANDY, + Tags.Items.FOODS_PIE, Tags.Items.FOODS_GOLDEN, Tags.Items.FOODS_EDIBLE_WHEN_PLACED, Tags.Items.FOODS_FOOD_POISONING); tag(Tags.Items.ANIMAL_FOODS) .addTags(ItemTags.ARMADILLO_FOOD, ItemTags.AXOLOTL_FOOD, ItemTags.BEE_FOOD, ItemTags.CAMEL_FOOD, ItemTags.CAT_FOOD, ItemTags.CHICKEN_FOOD, ItemTags.COW_FOOD, ItemTags.FOX_FOOD, ItemTags.FROG_FOOD, @@ -369,6 +370,7 @@ public void addTags(HolderLookup.Provider lookupProvider) { .addOptionalTag(ResourceLocation.fromNamespaceAndPath("forge", "stained_glass/yellow")); tagWithOptionalLegacy(Tags.Items.ENDER_PEARLS); tagWithOptionalLegacy(Tags.Items.FEATHERS); + tag(Tags.Items.FOODS_DOUGH).addOptionalTag(ResourceLocation.fromNamespaceAndPath("c", "foods/doughs")); tagWithOptionalLegacy(Tags.Items.GEMS); tagWithOptionalLegacy(Tags.Items.GEMS_AMETHYST); tagWithOptionalLegacy(Tags.Items.GEMS_DIAMOND); diff --git a/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeLanguageProvider.java b/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeLanguageProvider.java index 5fa5333ccc2..67cd9c11402 100644 --- a/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeLanguageProvider.java +++ b/src/main/java/net/neoforged/neoforge/common/data/internal/NeoForgeLanguageProvider.java @@ -226,6 +226,7 @@ protected void addTranslations() { add(Tags.Items.FOODS_COOKED_FISH, "Cooked Fishes"); add(Tags.Items.FOODS_COOKED_MEAT, "Cooked Meats"); add(Tags.Items.FOODS_COOKIE, "Cookies"); + add(Tags.Items.FOODS_DOUGH, "Doughs"); add(Tags.Items.FOODS_EDIBLE_WHEN_PLACED, "Edible When Placed"); add(Tags.Items.FOODS_FOOD_POISONING, "Food Poisoning Foods"); add(Tags.Items.FOODS_FRUIT, "Fruits");