Some Kiln recipes can't be removed
Opened this issue ยท 1 comments
Issue Description
I would like to replace all of the existing kiln recipes with roughly equivalent recipes that are much shorter, but for the following outputs the recipe is not removed, so both the old recipe and my new recipe show in JEI. For the other default recipes, the removal seems to work fine
* Clay Bucket
* Clay Shears
* Brick
* Charcoal Flakes
* Stone Slabs
* Stone
* Andesite
* Granite
* Diorite
* Limestone
What Happens
See above
What You Expect to Happen
For only my new recipes to show up in JEI
Script
Pastebin of all my zs stone kiln tweaks
Affected Versions
Do not use latest
; please supply accurate version numbers.
- Minecraft: 1.12.2
- Forge: 1.12.2-14.23.5.2838
- CraftTweaker: 1.12.2-4.1.19
- Dropt: 1.12.2-1.15.1
- Pyrotech: 1.12.2-1.2.4
- Athenaeum: 1.12.2-1.17.2
It looks like this for all of the items I listed in the beginning
Thank you for the report!
The Problem
- mod recipes added
- CraftTweaker (CrT) recipes removed, then added
- recipes inherited
Using the limestone as an example:
- The limestone recipe is added as a
Pit Kiln
recipe - The
Stone Kiln
does not have a limestone recipe to remove - The
Stone Kiln
inherits the limestone recipe from the Pit Kiln
In order to remove the limestone recipe from the Stone Kiln
, the limestone recipe for the Pit Kiln
would have to be removed or the Stone Kiln
recipe inheritance disabled in the config.
The problem is that the recipe inheritance is mostly a black box to the user. It isn't clear that to remove the limestone from the Stone Kiln
you have to actually remove it from the Pit Kiln
. As a user, when I tell CrT to remove something, I expect that thing to be gone.
There is also a related problem with the way that it is currently written: there is no way to ensure which step happens first, 2 or 3. This means that in some packs, it will happen 2 then 3 and in some packs, it will happen 3 then 2. This means that some people's CrT scripts are benefiting from the inheritence while others are not.
The Solution
Switching steps 2 and 3 looks like the best way forward.
This would result in:
- mod recipes added
- recipes inherited
- CrT recipes removed, then added
And:
- The limestone recipe is added as a
Pit Kiln
recipe - The
Stone Kiln
inherits the limestone recipe from the Pit Kiln - The limestone recipe is removed from the
Stone Kiln
CrT would have the ultimate say in what gets removed. The only drawback to making this change is recipes added by CrT would no longer benefit from the inheritence. This would require the user to write recipes for each machine instead of writing a single recipe. However, the user could also easily leverage CrT functions to achieve their own recipe inheritence design.
This is not a bad tradeoff.
As a user, I desire absolute control with CrT, and this solution provides it. There is no ambiguity. Recipe inheritence still works internally with recipes added by the mod.
The Implementation
This is a relatively trivial change to make, however, the effects of the change will not be trivial.
Because of the ordering issue described above, it stands to reason that people with scripts that are benefiting from the inheritence will lose recipes when this change is made. They will need to manually add the recipes that were previously being inherited automatically.
If we move forward with this, due to the potential effects of the change, it will be included in the next feature release and not as a patch or hotfix.