refactor: Flattened arcane tome item registry
This commit is contained in:
@@ -256,7 +256,9 @@ public class BlockBookshelf extends BlockHorizontal implements ITileEntityProvid
|
||||
// Wizardry books
|
||||
registerBookModelTexture(() -> WizardryItems.spell_book, new ResourceLocation(Wizardry.MODID, "blocks/books_red"));
|
||||
registerBookModelTexture(() -> WizardryItems.wizard_handbook, new ResourceLocation(Wizardry.MODID, "blocks/books_blue"));
|
||||
registerBookModelTexture(() -> WizardryItems.arcane_tome, new ResourceLocation(Wizardry.MODID, "blocks/books_purple"));
|
||||
registerBookModelTexture(() -> WizardryItems.arcane_tome_apprentice,new ResourceLocation(Wizardry.MODID, "blocks/books_purple"));
|
||||
registerBookModelTexture(() -> WizardryItems.arcane_tome_advanced, new ResourceLocation(Wizardry.MODID, "blocks/books_purple"));
|
||||
registerBookModelTexture(() -> WizardryItems.arcane_tome_master, new ResourceLocation(Wizardry.MODID, "blocks/books_purple"));
|
||||
registerBookModelTexture(() -> WizardryItems.ruined_spell_book, new ResourceLocation(Wizardry.MODID, "blocks/books_brown"));
|
||||
registerBookModelTexture(() -> WizardryItems.scroll, new ResourceLocation(Wizardry.MODID, "blocks/scrolls_blue"));
|
||||
registerBookModelTexture(() -> WizardryItems.blank_scroll, new ResourceLocation(Wizardry.MODID, "blocks/scrolls_blue"));
|
||||
|
||||
@@ -673,7 +673,7 @@ public class EntityWizard extends EntityCreature implements INpc, IMerchant, ISp
|
||||
WizardryItems.getWand(tier, Element.values()[rand.nextInt(Element.values().length)]));
|
||||
}
|
||||
}else if(randomiser < 8){
|
||||
return new ItemStack(WizardryItems.arcane_tome, 1, 1);
|
||||
return new ItemStack(WizardryItems.arcane_tome_apprentice, 1);
|
||||
}else if(randomiser < 10){
|
||||
EntityEquipmentSlot slot = InventoryUtils.ARMOUR_SLOTS[rand.nextInt(InventoryUtils.ARMOUR_SLOTS.length)];
|
||||
if(this.getElement() != Element.MAGIC && rand.nextInt(4) > 0){
|
||||
@@ -709,7 +709,7 @@ public class EntityWizard extends EntityCreature implements INpc, IMerchant, ISp
|
||||
WizardryItems.getWand(tier, Element.values()[rand.nextInt(Element.values().length)]));
|
||||
}
|
||||
}else if(randomiser < 8){
|
||||
return new ItemStack(WizardryItems.arcane_tome, 1, 2);
|
||||
return new ItemStack(WizardryItems.arcane_tome_advanced, 1);
|
||||
}else{
|
||||
List<Item> upgrades = new ArrayList<Item>(WandHelper.getSpecialUpgrades());
|
||||
randomiser = rand.nextInt(upgrades.size());
|
||||
@@ -732,7 +732,7 @@ public class EntityWizard extends EntityCreature implements INpc, IMerchant, ISp
|
||||
return new ItemStack(WizardryItems.master_wand);
|
||||
}
|
||||
}else{
|
||||
return new ItemStack(WizardryItems.arcane_tome, 1, 3);
|
||||
return new ItemStack(WizardryItems.arcane_tome_master, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -98,7 +98,9 @@ public class ContainerArcaneWorkbench extends Container implements ISpellSortabl
|
||||
this.addSlotToContainer(new SlotWorkbenchItem(tileentity, CENTRE_SLOT, 80, 64, this));
|
||||
|
||||
Set<Item> upgrades = new HashSet<>(WandHelper.getSpecialUpgrades()); // Can't be done statically.
|
||||
upgrades.add(WizardryItems.arcane_tome);
|
||||
upgrades.add(WizardryItems.arcane_tome_apprentice);
|
||||
upgrades.add(WizardryItems.arcane_tome_advanced);
|
||||
upgrades.add(WizardryItems.arcane_tome_master);
|
||||
upgrades.add(WizardryItems.resplendent_thread);
|
||||
upgrades.add(WizardryItems.crystal_silver_plating);
|
||||
upgrades.add(WizardryItems.ethereal_crystalweave);
|
||||
|
||||
@@ -127,7 +127,9 @@ public class ContainerBookshelf extends Container {
|
||||
registerBookItem(Items.WRITABLE_BOOK);
|
||||
registerBookItem(Items.ENCHANTED_BOOK);
|
||||
registerBookItem(WizardryItems.spell_book);
|
||||
registerBookItem(WizardryItems.arcane_tome);
|
||||
registerBookItem(WizardryItems.arcane_tome_apprentice);
|
||||
registerBookItem(WizardryItems.arcane_tome_advanced);
|
||||
registerBookItem(WizardryItems.arcane_tome_master);
|
||||
registerBookItem(WizardryItems.wizard_handbook);
|
||||
registerBookItem(WizardryItems.ruined_spell_book);
|
||||
registerBookItem(WizardryItems.scroll);
|
||||
|
||||
@@ -3,11 +3,9 @@ package electroblob.wizardry.item;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.constants.Tier;
|
||||
import electroblob.wizardry.registry.WizardryTabs;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.EnumRarity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
@@ -16,54 +14,33 @@ import java.util.List;
|
||||
|
||||
public class ItemArcaneTome extends Item {
|
||||
|
||||
public ItemArcaneTome(){
|
||||
private final EnumRarity rarity;
|
||||
private final Tier tier;
|
||||
|
||||
public ItemArcaneTome(EnumRarity rarity, Tier tier){
|
||||
super();
|
||||
setHasSubtypes(true);
|
||||
setMaxStackSize(1);
|
||||
setCreativeTab(WizardryTabs.WIZARDRY);
|
||||
this.rarity = rarity;
|
||||
this.tier = tier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> list){
|
||||
if(tab == WizardryTabs.WIZARDRY){ // Don't use isInCreativeTab here.
|
||||
for(int i = 1; i < Tier.values().length; i++){
|
||||
list.add(new ItemStack(this, 1, i));
|
||||
}
|
||||
}
|
||||
}
|
||||
public Tier getTier() { return tier; }
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean hasEffect(ItemStack stack){
|
||||
return true;
|
||||
}
|
||||
public boolean hasEffect(ItemStack stack){ return true; }
|
||||
|
||||
@Override
|
||||
public EnumRarity getRarity(ItemStack stack){
|
||||
switch(this.getDamage(stack)){
|
||||
case 1:
|
||||
return EnumRarity.UNCOMMON;
|
||||
case 2:
|
||||
return EnumRarity.RARE;
|
||||
case 3:
|
||||
return EnumRarity.EPIC;
|
||||
}
|
||||
return EnumRarity.COMMON;
|
||||
}
|
||||
public EnumRarity getRarity(ItemStack stack){ return rarity; }
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, World world, List<String> tooltip, net.minecraft.client.util.ITooltipFlag showAdvanced){
|
||||
|
||||
if(stack.getItemDamage() < 1){
|
||||
return; // If something's up with the metadata it will display a 'generic' tome of arcana with no info
|
||||
}
|
||||
|
||||
Tier tier = Tier.values()[stack.getItemDamage()];
|
||||
Tier tier2 = Tier.values()[stack.getItemDamage() - 1];
|
||||
|
||||
tooltip.add(tier.getDisplayNameWithFormatting());
|
||||
Wizardry.proxy.addMultiLineDescription(tooltip, "item." + this.getRegistryName() + ".desc",
|
||||
Tier tier2 = Tier.values()[tier.ordinal() - 1];
|
||||
|
||||
Wizardry.proxy.addMultiLineDescription(tooltip, "item." + Wizardry.MODID + "arcane_tome.desc",
|
||||
tier2.getDisplayNameWithFormatting() + "\u00A77", tier.getDisplayNameWithFormatting() + "\u00A77");
|
||||
}
|
||||
|
||||
|
||||
@@ -687,9 +687,9 @@ public class ItemWand extends Item implements IWorkbenchItem, ISpellCastingItem,
|
||||
|
||||
// Upgrades wand if necessary. Damage is copied, preserving remaining durability,
|
||||
// and also the entire NBT tag compound.
|
||||
if(upgrade.getItem() == WizardryItems.arcane_tome){
|
||||
if(upgrade.getItem() instanceof ItemArcaneTome){
|
||||
|
||||
Tier tier = Tier.values()[upgrade.getItemDamage()];
|
||||
Tier tier = ((ItemArcaneTome) upgrade.getItem()).getTier();
|
||||
|
||||
// Checks the wand upgrade is for the tier above the wand's tier, and that either the wand has enough
|
||||
// progression or the player is in creative mode.
|
||||
|
||||
@@ -93,7 +93,9 @@ public final class WizardryItems {
|
||||
public static final Item crystal_shard = placeholder();
|
||||
|
||||
public static final Item wizard_handbook = placeholder();
|
||||
public static final Item arcane_tome = placeholder();
|
||||
public static final Item arcane_tome_apprentice = placeholder();
|
||||
public static final Item arcane_tome_advanced = placeholder();
|
||||
public static final Item arcane_tome_master = placeholder();
|
||||
public static final Item spell_book = placeholder();
|
||||
public static final Item scroll = placeholder();
|
||||
public static final Item ruined_spell_book = placeholder();
|
||||
@@ -595,7 +597,9 @@ public final class WizardryItems {
|
||||
registerItem(registry, "grand_crystal", new Item().setCreativeTab(WizardryTabs.WIZARDRY));
|
||||
|
||||
registerItem(registry, "wizard_handbook", new ItemWizardHandbook(), true);
|
||||
registerItem(registry, "arcane_tome", new ItemArcaneTome());
|
||||
registerItem(registry, "arcane_tome_apprentice", new ItemArcaneTome(EnumRarity.UNCOMMON, Tier.APPRENTICE));
|
||||
registerItem(registry, "arcane_tome_advanced", new ItemArcaneTome(EnumRarity.RARE, Tier.ADVANCED));
|
||||
registerItem(registry, "arcane_tome_master", new ItemArcaneTome(EnumRarity.EPIC, Tier.MASTER));
|
||||
registerItem(registry, "spell_book", new ItemSpellBook(), true);
|
||||
registerItem(registry, "scroll", new ItemScroll());
|
||||
registerItem(registry, "ruined_spell_book", new Item().setCreativeTab(WizardryTabs.WIZARDRY).setMaxStackSize(16));
|
||||
|
||||
@@ -188,7 +188,9 @@ public class TileEntityArcaneWorkbench extends TileEntity implements IInventory,
|
||||
|
||||
}else if(slotNumber == ContainerArcaneWorkbench.UPGRADE_SLOT){
|
||||
Set<Item> upgrades = new HashSet<>(WandHelper.getSpecialUpgrades());
|
||||
upgrades.add(WizardryItems.arcane_tome);
|
||||
upgrades.add(WizardryItems.arcane_tome_apprentice);
|
||||
upgrades.add(WizardryItems.arcane_tome_advanced);
|
||||
upgrades.add(WizardryItems.arcane_tome_master);
|
||||
upgrades.add(WizardryItems.resplendent_thread);
|
||||
upgrades.add(WizardryItems.crystal_silver_plating);
|
||||
upgrades.add(WizardryItems.ethereal_crystalweave);
|
||||
|
||||
@@ -77,7 +77,9 @@ item.ebwizardry\:spell_book.apply_to_wizard=Replaced %1$s's spell %2$s with %3$s
|
||||
item.ebwizardry\:ruined_spell_book.name=Ruined Spell Book
|
||||
item.ebwizardry\:ruined_spell_book.desc=The pages of this tattered spell book are too damaged to be read properly, but somehow, you feel there is still magic left within it - if only it could be restored...
|
||||
|
||||
item.ebwizardry\:arcane_tome.name=Tome of Arcana
|
||||
item.ebwizardry\:arcane_tome_apprentice.name=Tome of Arcana
|
||||
item.ebwizardry\:arcane_tome_advanced.name=Tome of Arcana
|
||||
item.ebwizardry\:arcane_tome_master.name=Tome of Arcana
|
||||
item.ebwizardry\:arcane_tome.desc=Upgrades any %1$s wand with sufficient progression to %2$s tier
|
||||
|
||||
item.ebwizardry\:wizard_handbook.name=The Wizard's Handbook
|
||||
|
||||
@@ -6,39 +6,18 @@
|
||||
"entries": [
|
||||
{
|
||||
"type": "item",
|
||||
"entryName": "apprentice_tome",
|
||||
"name": "ebwizardry:arcane_tome",
|
||||
"weight": 4,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_data",
|
||||
"data": 1
|
||||
}
|
||||
]
|
||||
"name": "ebwizardry:arcane_tome_apprentice",
|
||||
"weight": 4
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"entryName": "advanced_tome",
|
||||
"name": "ebwizardry:arcane_tome",
|
||||
"weight": 2,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_data",
|
||||
"data": 2
|
||||
}
|
||||
]
|
||||
"name": "ebwizardry:arcane_tome_advanced",
|
||||
"weight": 2
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"entryName": "master_tome",
|
||||
"name": "ebwizardry:arcane_tome",
|
||||
"weight": 1,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_data",
|
||||
"data": 3
|
||||
}
|
||||
]
|
||||
"name": "ebwizardry:arcane_tome_master",
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "ebwizardry:items/arcane_tome"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "ebwizardry:items/arcane_tome"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "ebwizardry:items/arcane_tome"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user