Fabric API

Fabric API

108M Downloads

Replace vanilla recipes to point to common tags for input

TelepathicGrunt opened this issue ยท 3 comments

commented

This came up in a random server but would be good to mention here.

Fabric API could replace recipes like bows or axes so they pull from c:rods/wooden and so forth. Example is Forge and NeoForge has done this for a long time: https://github.com/neoforged/NeoForge/blob/92792c6d573c9dff84bf8d04c6eae62eefa5aa19/src/generated/resources/data/minecraft/recipe/bow.json#L6

The vanilla JSON file would simply be replaced. Probably by datagen and some additional tests surrounding it so it doesn't break on MC version updates.

commented

Id like to add in addition to the stick example, a common one multiple mods do including mine is add additional recipes for pumpkin pie and cakes using our own eggs, if such a system were to be added replacing those recipes using the eggs tag would be great.

commented

Wasn't the whole point of Convention Tags not to affect vanilla game simply by changing its content?

commented

@apple502j Yesn't. Sorta. Large behavior changes? Yes modloader specific tag. But for the recipe replacing stuff, I kinda well, ported that to the c tags in Neo at the time. Maybe a mistake. Maybe not.

So it seems better to talk about the usage of the recipes stuff. Let's see

  • Multiple mods may have Birch Rod or Dark Oak Rod or other wooden rods and may want it to be used in vanilla recipes.

  • Mods can either roll out their own recipes to accept just their own item for a vanilla item which leads to a lot of nearly identical recipes for the same item (And would be spammy in recipe viewers). Or they can replace the vanilla file pointing to a tag.

  • If mods do the replacing, each one needs to point to the same tag or else they conflict with each other.

  • If the tag is pre-populated with vanilla items (such as by the modloader), then this changes no behavior of the base game in view of user. Otherwise, each mod has to include the vanilla item in the tag they choose to replace the vanilla file.

  • If the tag is an established tag like c, then datapackers can roll out their own recipe files using that tag for their own items (like craftable scaffolding from any sticks instead of just bamboo). Otherwise they have to have two recipe files, one for each loader.

  • If every mod rolls out their own recipes without using the tags, then this complicates other modders/datapackers that want to accept those modded items. Well, sorta. Those other modders/datapackers would use the c tag in that case. Which makes it a bit weird to leave vanilla to not do the same.

I can see arguments either way for having the recipe always point to a modloader tag or to a c tag. Just need to know which way Fabric leans.