connor135246 / Campfire-Backport

Backports Minecraft 1.14/1.16 campfires to 1.7.10
GNU General Public License v3.0
9 stars 4 forks source link

Delete a recipe #16

Closed MrAkells closed 1 year ago

MrAkells commented 3 years ago

There is no way to delete a recipe using CraftTweaker.

connor135246 commented 3 years ago

You shouldn't need to, there aren't any hard coded recipes. The default recipes are added in the config. You can remove them by going to Mods > Campfire Backport > Config and removing all the entries in "Custom Recipes (Regular)" and also turning "Auto Recipe Discovery" to "neither". If you want to delete Campfire Extinguishers / Ignitors, remove all the entries in "Custom Extinguishers (Regular)" and "Custom Ignitors (Regular)".

KibaTheBarbarian commented 3 years ago

I have countered a issue I have to reload the world if I go in back into a world like if I remove cooked fish from the campfire I have to do is /campfire backport reload

connor135246 commented 3 years ago

@KibaTheBarbarian I can't seem to replicate what you're talking about. Can you explain the steps you do in order for this to happen? Do you have any other mods installed? Are you on a server or in singleplayer?

KibaTheBarbarian commented 3 years ago

I disable the recipe with CT furnace recipe but I if I rejoin the word I have to reload the campfire https://youtu.be/ID-vO7Le2II

KibaTheBarbarian commented 3 years ago

I think I got it fixed just takes a lot work want to close this

connor135246 commented 3 years ago

I believe I figured out the bug, Kiba. I've made it into a new issue. https://github.com/connor135246/Campfire-Backport/issues/20

Roadhog360 commented 1 year ago

What if other mods add recipes to the campfire? Furnaces and crafting tables get a remove option, what if a pack author wants to remove a specific recipe a mod adds or the auto discovery adds without turning it off?

connor135246 commented 1 year ago

What if other mods add recipes to the campfire?

Currently, other mods aren't supposed to add recipes to the campfire in their mod code. But I suppose they technically could since the method is public. The only ways recipes are supposed to be added is via the config or via CraftTweaker. I hadn't really considered that other mods might want to do this in first place. Recipe tweaking is usually done on a pack level, not a mod level.

remove a specific recipe the auto discovery adds without turning it off?

There's a config option called "Auto Recipe Discovery Blacklist" that lets you blacklist particular inputs. Note that it's for inputs, not outputs. For example, if you don't want people to be able to cook Bread into Toast, you would add Bread to the blacklist (not Toast).

I think that should cover everything a pack author might want to do.

connor135246 commented 1 year ago

If you know any reasons why a delete recipe function or something like that would be useful, feel free to comment. But for now I'm going to close this because I finally actually added an explanation of how this works to the wiki.

Roadhog360 commented 1 year ago

I guess you're right. Still though it seems a bit weird to use a config for removals instead of a CraftTweaker function; wouldn't anyone removing recipes using the config have CraftTweaker installed anyhow? It seems a little inconsistent to have one tweaking function somewhere else. At that point why wouldn't both adding and removing just be part of the config, or CraftTweaker functions?

connor135246 commented 1 year ago

It is bit weird, you're right. It's because of legacy, and also because of how many options I've added to campfire recipes.

When I first was adding custom recipes, for some reason instead of just adding CraftTweaker support, I decided to make it so you add recipes with the config instead. No recipes were hardcoded, everything is in the config. This wasn't too bad at first because recipes were very simple. The recipes config option was just a list of strings that looked like this: input/output/cookingtime. For example: minecraft:porkchop/minecraft:cooked_porkchop/450 Pretty easy to understand. Unfortunately as time went on and I added more and more options to recipes you could end up with monstrosities that look like this: minecraft:pumpkin@2&minecraft:sugar&minecraft:egg/minecraft:pumpkin_pie@2/250/signal/minecraft:pumpkin_seeds/0.5 Not easy to understand, or write. So I added CraftTweaker support because it's a lot easier for users to work with and I should have done it in the first place anyway.

I left the legacy system in for a couple reasons. First is for the few people who might have made custom recipes with it already. Second is because of the weird options I added to campfire recipes. Did you know you can make a recipe that only needs a particular NBT on the input, and doesn't care at all what the item actually is? For example, one of the default ignitors in the config is left/[ench:20,1]/damageable. This allows you to ignite a campfire by left clicking it with any item that is enchanted with Fire Aspect level 1 or higher (afterward, the item loses 1 durability). Options like this make it a pain to create a CraftTweaker delete function that is actually capable of deleting possible recipes. And if I did add such a function, wouldn't it only be used to delete the default config recipes anyway?


A better option might be to delete the legacy system and completely move everything related to recipes to CraftTweaker. That would mean:

That way everything related to recipes would be in one place.

The downside is that everyone updating to the next version would have to do a bunch of changes to their scripts.