Extended Crafting

Extended Crafting

34M Downloads

Crafting Core vs Pedestal NBT Strictness

KAfable opened this issue ยท 1 comments

commented

Versions
Extended Crafting: 1.3.6
Weapon Levels - 2.3.3
Minecraft: 1.12.2
Forge: 2705
Enigmatica 2 Expert: 1.25b

Made a video explaining more in depth/demonstration - https://youtu.be/TK9VcMRgWco

Problem
The strictness of NBT is different in the crafting core versus the pedestal.

Crafting Core
It is inclusive of all NBT tags, so doing something like <draconicevolution:wyvern_helm> as the main catalyst would accept the helm regardless of any enchantments, charge, or additional tags (such as the ones added by Weapon Levels).

For example if I wanted to craft the Draconic Chestplate in this modpack:
image

Looking at the script: <draconicevolution:wyvern_chest> is designated as the main catalyst for the infusion, which allows for:

<draconicevolution:wyvern_chest>.withTag({Energy: 0, ShieldEntropy: 0.0 as float, ProtectionPoints: 102.4 as float, ENABLED: 1 as byte, RARITY: 3})
or

<draconicevolution:wyvern_chest>.withTag({ench: [{lvl: 2 as short, id: 25 as short}], RepairCost: 1, Energy: 2000000, ENABLED: 1 as byte, RARITY: 1})

would both be accepted and valid for the core (note the additional tags are added by the Weapon Levels mod).

Pedestal
The same can't be said for the NBT strictness of the pedestal, back in the recipe, you can see in the top left that it requires an astral sorcery mantle attuned to Armara of the stars as noted in the script in line 250: <astralsorcery:itemcape>.withTag({astralsorcery: {constellationName: "astralsorcery.constellation.armara"}})

The strictness is now apparent as it is only limited to that SPECIFIC nbt tag, so the following possible combination is no longer accepted:
<astralsorcery:itemcape>.withTag({astralsorcery: {constellationName: "astralsorcery.constellation.armara"}, ENABLED: 1 as byte, RARITY: 1})

With the Weapon Levels mod automatically giving NBT tags to any tool/armor, it becomes impossible to really craft given this script (which should work), since the NBT tag strictness goes from inclusive (as in the script only determines the minimum tags required) to checking for exact matches.

Script:
https://hastebin.com/acudirebiy.xml
Relevant lines 248-254 specifically for this example (but any case of using NBT really)

Lastly as for JEI implementation, checking the uses of the main catalyst doesn't actually show it being a part of a crafting core recipe, you would have to check the uses of one of the lesser catalysts on the pedestals to find the recipe.

commented

They should both work the same. Not specifying an nbt tag means any tag will work, while specifying a tag will make it only work with that tag. I'll look into making sure they work the same.

I'll also look into making the nbt requirements a little less strict all around, would make everyone's lives easier.

I'll look into the JEI thing as well, thanks for the detailed report.