Make the scribe tools actually consume LP when used.

Refactor scribe tools to not need separate classes for each one.
This commit is contained in:
koolkrafter5 committed 2025-05-21 00:58:04 -04:00
1 parent 60ab0504a9
commit 81fed8f46d
8 files changed
+50 -150

No files matched your search

@@ -8,7 +8,6 @@ import WayofTime.alchemicalWizardry.api.items.ItemSpellMultiTool;
import WayofTime.alchemicalWizardry.api.spell.SpellParadigmTool;
import WayofTime.alchemicalWizardry.common.items.AWBaseItems;
import WayofTime.alchemicalWizardry.common.items.ActivationCrystal;
import WayofTime.alchemicalWizardry.common.items.AirScribeTool;
import WayofTime.alchemicalWizardry.common.items.ApprenticeBloodOrb;
import WayofTime.alchemicalWizardry.common.items.ArchmageBloodOrb;
import WayofTime.alchemicalWizardry.common.items.ArmourInhibitor;
@@ -20,17 +19,13 @@ import WayofTime.alchemicalWizardry.common.items.BoundShovel;
import WayofTime.alchemicalWizardry.common.items.CheatyItem;
import WayofTime.alchemicalWizardry.common.items.CreativeDagger;
import WayofTime.alchemicalWizardry.common.items.DaggerOfSacrifice;
import WayofTime.alchemicalWizardry.common.items.DawnScribeTool;
import WayofTime.alchemicalWizardry.common.items.DemonPlacer;
import WayofTime.alchemicalWizardry.common.items.DemonicTelepositionFocus;
import WayofTime.alchemicalWizardry.common.items.DuskScribeTool;
import WayofTime.alchemicalWizardry.common.items.EarthScribeTool;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import WayofTime.alchemicalWizardry.common.items.EnergyBazooka;
import WayofTime.alchemicalWizardry.common.items.EnergyBlast;
import WayofTime.alchemicalWizardry.common.items.EnergySword;
import WayofTime.alchemicalWizardry.common.items.EnhancedTelepositionFocus;
import WayofTime.alchemicalWizardry.common.items.FireScribeTool;
import WayofTime.alchemicalWizardry.common.items.ItemAlchemyBase;
import WayofTime.alchemicalWizardry.common.items.ItemBloodLetterPack;
import WayofTime.alchemicalWizardry.common.items.ItemComplexSpellCrystal;
@@ -45,9 +40,9 @@ import WayofTime.alchemicalWizardry.common.items.MagicianBloodOrb;
import WayofTime.alchemicalWizardry.common.items.MasterBloodOrb;
import WayofTime.alchemicalWizardry.common.items.ReinforcedTelepositionFocus;
import WayofTime.alchemicalWizardry.common.items.SacrificialDagger;
import WayofTime.alchemicalWizardry.common.items.ScribeTool;
import WayofTime.alchemicalWizardry.common.items.TelepositionFocus;
import WayofTime.alchemicalWizardry.common.items.TranscendentBloodOrb;
import WayofTime.alchemicalWizardry.common.items.WaterScribeTool;
import WayofTime.alchemicalWizardry.common.items.armour.BoundArmour;
import WayofTime.alchemicalWizardry.common.items.armour.OmegaArmourEarth;
import WayofTime.alchemicalWizardry.common.items.armour.OmegaArmourFire;
@@ -271,10 +266,14 @@ public class ModItems {
sigilOfHaste = new SigilOfHaste().setUnlocalizedName("sigilOfHaste");
sigilOfHolding = new SigilOfHolding().setUnlocalizedName("sigilOfHolding");
divinationSigil = new SigilDivination().setUnlocalizedName("divinationSigil");
waterScribeTool = new WaterScribeTool().setUnlocalizedName("waterScribeTool");
fireScribeTool = new FireScribeTool().setUnlocalizedName("fireScribeTool");
earthScribeTool = new EarthScribeTool().setUnlocalizedName("earthScribeTool");
airScribeTool = new AirScribeTool().setUnlocalizedName("airScribeTool");
waterScribeTool = new ScribeTool(1, "WaterScribeTool").setUnlocalizedName("waterScribeTool");
fireScribeTool = new ScribeTool(2, "FireScribeTool").setUnlocalizedName("fireScribeTool");
earthScribeTool = new ScribeTool(3, "EarthScribeTool").setUnlocalizedName("earthScribeTool");
airScribeTool = new ScribeTool(4, "AirScribeTool").setUnlocalizedName("airScribeTool");
duskScribeTool = new ScribeTool(5, "DuskScribeTool").setUnlocalizedName("duskScribeTool");
dawnScribeTool = new ScribeTool(6, "DawnScribeTool").setUnlocalizedName("dawnScribeTool");
activationCrystal = new ActivationCrystal();
boundPickaxe = new BoundPickaxe().setUnlocalizedName("boundPickaxe");
boundAxe = new BoundAxe().setUnlocalizedName("boundAxe");
@@ -313,7 +312,6 @@ public class ModItems {
demonicTelepositionFocus = new DemonicTelepositionFocus().setUnlocalizedName("demonicTelepositionFocus");
imbuedSlate = new AWBaseItems().setUnlocalizedName("imbuedSlate");
demonicSlate = new AWBaseItems().setUnlocalizedName("demonicSlate");
duskScribeTool = new DuskScribeTool().setUnlocalizedName("duskScribeTool");
sigilOfTheBridge = new SigilOfTheBridge().setUnlocalizedName("sigilOfTheBridge");
armourInhibitor = new ArmourInhibitor().setUnlocalizedName("armourInhibitor");
creativeFiller = new CheatyItem().setUnlocalizedName("cheatyItem");
@@ -348,8 +346,6 @@ public class ModItems {
itemTankSegmenter = new ItemTankSegmenter().setUnlocalizedName("itemTankSegmenter");
itemDestinationClearer = new ItemDestinationClearer().setUnlocalizedName("destinationClearer");
dawnScribeTool = new DawnScribeTool().setUnlocalizedName("dawnScribeTool");
itemBloodPack = new ItemBloodLetterPack().setUnlocalizedName("itemBloodPack");
itemHarvestSigil = new SigilHarvest().setUnlocalizedName("itemHarvestSigil");
itemCompressionSigil = new SigilPackRat().setUnlocalizedName("itemCompressionSigil");
@@ -409,6 +405,8 @@ public class ModItems {
GameRegistry.registerItem(ModItems.fireScribeTool, "fireScribeTool");
GameRegistry.registerItem(ModItems.earthScribeTool, "earthScribeTool");
GameRegistry.registerItem(ModItems.airScribeTool, "airScribeTool");
GameRegistry.registerItem(ModItems.duskScribeTool, "duskScribeTool");
GameRegistry.registerItem(ModItems.dawnScribeTool, "dawnScribeTool");
GameRegistry.registerItem(ModItems.activationCrystal, "activationCrystal");
GameRegistry.registerItem(ModItems.boundPickaxe, "boundPickaxe");
GameRegistry.registerItem(ModItems.boundAxe, "boundAxe");
@@ -449,7 +447,6 @@ public class ModItems {
GameRegistry.registerItem(ModItems.demonicTelepositionFocus, "demonicTelepositionFocus");
GameRegistry.registerItem(ModItems.imbuedSlate, "imbuedSlate");
GameRegistry.registerItem(ModItems.demonicSlate, "demonicSlate");
GameRegistry.registerItem(ModItems.duskScribeTool, "duskScribeTool");
GameRegistry.registerItem(ModItems.sigilOfTheBridge, "sigilOfTheBridge");
GameRegistry.registerItem(ModItems.armourInhibitor, "armourInhibitor");
GameRegistry.registerItem(ModItems.creativeFiller, "creativeFiller");
@@ -485,8 +482,6 @@ public class ModItems {
GameRegistry.registerItem(ModItems.baseItems, "bloodMagicBaseItems");
GameRegistry.registerItem(ModItems.baseAlchemyItems, "bloodMagicBaseAlchemyItems");
GameRegistry.registerItem(ModItems.dawnScribeTool, "dawnScribeTool");
GameRegistry.registerItem(ModItems.itemBloodPack, "itemBloodPack");
GameRegistry.registerItem(ModItems.itemHarvestSigil, "itemHarvestSigil");
GameRegistry.registerItem(ModItems.itemCompressionSigil, "itemCompressionSigil");
@@ -1,19 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.client.renderer.texture.IIconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class AirScribeTool extends ScribeTool {
public AirScribeTool() {
super(4);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AirScribeTool");
}
}
@@ -1,19 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.client.renderer.texture.IIconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class DawnScribeTool extends ScribeTool {
public DawnScribeTool() {
super(6);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DawnScribeTool");
}
}
@@ -1,19 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.client.renderer.texture.IIconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class DuskScribeTool extends ScribeTool {
public DuskScribeTool() {
super(5);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DuskScribeTool");
}
}
@@ -1,19 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.client.renderer.texture.IIconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class EarthScribeTool extends ScribeTool {
public EarthScribeTool() {
super(3);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EarthScribeTool");
}
}
@@ -1,19 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.client.renderer.texture.IIconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class FireScribeTool extends ScribeTool {
public FireScribeTool() {
super(2);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:FireScribeTool");
}
}
@@ -2,43 +2,64 @@ package WayofTime.alchemicalWizardry.common.items;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ScribeTool extends EnergyItems {
private final int meta;
private final String iconName;
public ScribeTool(int inkType) {
@SideOnly(Side.CLIENT)
private IIcon icon;
public ScribeTool(int inkType, String iconName) {
super();
this.meta = inkType;
this.iconName = iconName;
setMaxStackSize(1);
setCreativeTab(AlchemicalWizardry.tabBloodMagic);
setMaxDamage(10);
setEnergyUsed(10);
this.meta = inkType;
}
@Override
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List<String> par3List, boolean par4) {
par3List.add(StatCollector.translateToLocal("tooltip.scribetool.desc"));
addBindingInformation(par1ItemStack, par3List);
}
@Override
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
if (IBindable.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer) && par1ItemStack.getItemDamage() > 0
&& EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) {
par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() - 1);
}
return par1ItemStack;
setCreativeTab(AlchemicalWizardry.tabBloodMagic);
}
public int getType() {
return this.meta;
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List<String> list, boolean advanced) {
list.add(StatCollector.translateToLocal("tooltip.scribetool.desc"));
addBindingInformation(stack, list);
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if (IBindable.checkAndSetItemOwner(stack, player) && stack.getItemDamage() > 0
&& EnergyItems.syphonBatteries(stack, player, getEnergyUsed())) {
stack.setItemDamage(stack.getItemDamage() - 1);
}
return stack;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
this.icon = register.registerIcon("AlchemicalWizardry:" + iconName);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int damage) {
return this.icon;
}
}
@@ -1,21 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.client.renderer.texture.IIconRegister;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class WaterScribeTool extends ScribeTool {
public WaterScribeTool() {
super(1);
setCreativeTab(AlchemicalWizardry.tabBloodMagic);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterScribeTool");
}
}