API improvements to spell books:

- Allow spells to set which book/scroll items they can appear on
- Allow spell books to set custom GUI textures
- Tweaks to loot functions and wizards to accommodate the changes
This commit is contained in:
Electroblob77
2019-09-27 15:46:09 +01:00
parent 028b753be6
commit 60a6c5124e
8 changed files with 61 additions and 34 deletions
@@ -51,13 +51,14 @@ public class ItemScroll extends Item implements ISpellCastingItem {
@Override
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> list){
if(tab == WizardryTabs.SPELLS){
// In this particular case, getTotalSpellCount() is a more efficient way of doing this since the spell instance
// is not required, only the metadata.
for(int i = 0; i < Spell.getTotalSpellCount(); i++){
// i+1 is used so that the metadata ties up with the metadata() method. In other words, the none spell has metadata
// 0 and since this is not used as a spell book the metadata starts at 1.
list.add(new ItemStack(this, 1, i + 1));
List<Spell> spells = Spell.getSpells(Spell.allSpells);
spells.removeIf(s -> !s.applicableForItem(this));
for(Spell spell : spells){
list.add(new ItemStack(this, 1, spell.metadata()));
}
}
}