Heyo o/
This can be marked as solved,
For future people with similar problems, the issue comes from us using model inheritance and having the overrides on the ancestor model.
Essentially our GenericSpellBook class gets instantiated for every spell there is in our mod, this means we have to have many different item JSONs, and we wanted to spice them up with textures. In trying to find a good way to do that we tried property overrides.
We gave up on this after this post and switched to making our datagens do alot of the grunt work, but I re-visited it and put overrides on the individual JSONs and it worked.
Tl;DR
Don't do:
Item_Model.json
{
"parent": "mod:item/parent_item"
}
Parent_Model.json
{
"parent": "item/generated",
"textures": {
"layer0": "gramarye:item/book/loot_spellbook"
},
"overrides": [
{
"predicate":
{
"gramarye:element": 0,
"gramarye:level": 0
},
"model": "gramarye:item/book/spellbook_fire_novice"
}
]
}
Spellbook_fire_novice.json
{
"parent": "gramarye:item/book/spellbook_base",
"textures": {
"layer0": "gramarye:item/book/loot_spellbook",
"layer1": "gramarye:item/book/fire",
"layer2": "gramarye/item/book/novice"
}
}
Do this:
Item_Model.json
{
"parent": "item/book/looted_fire_novice",
"overrides": [
{
"predicate": {
"gramarye:booktype": 1.0
},
"model": "gramarye:item/book/crafted_fire_novice"
}
]
}
crafted_fire_novice.json
{
"parent": "item/generated",
"textures": {
"layer0": "gramarye:item/book/crafted_spellbook",
"layer1": "gramarye:item/book/fire",
"layer2": "gramarye:item/book/novice"
}
}
looted_fire_novice.json
"parent": "item/generated",
"textures": {
"layer0": "gramarye:item/book/loot_spellbook",
"layer1": "gramarye:item/book/fire",
"layer2": "gramarye:item/book/novice"
}