From 81fed8f46de92bd816ebcc59797281df080c356d Mon Sep 17 00:00:00 2001 From: koolkrafter5 Date: Wed, 21 May 2025 00:58:04 -0400 Subject: [PATCH] Make the scribe tools actually consume LP when used. Refactor scribe tools to not need separate classes for each one. --- .../alchemicalWizardry/ModItems.java | 27 ++++----- .../common/items/AirScribeTool.java | 19 ------- .../common/items/DawnScribeTool.java | 19 ------- .../common/items/DuskScribeTool.java | 19 ------- .../common/items/EarthScribeTool.java | 19 ------- .../common/items/FireScribeTool.java | 19 ------- .../common/items/ScribeTool.java | 57 +++++++++++++------ .../common/items/WaterScribeTool.java | 21 ------- 8 files changed, 50 insertions(+), 150 deletions(-) delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/DawnScribeTool.java delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java diff --git a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java index 09694682..265079af 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java @@ -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"); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java deleted file mode 100644 index 7f33fb02..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java +++ /dev/null @@ -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"); - } -} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/DawnScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/DawnScribeTool.java deleted file mode 100644 index b1b716e3..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/DawnScribeTool.java +++ /dev/null @@ -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"); - } -} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java deleted file mode 100644 index ce30af3d..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java +++ /dev/null @@ -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"); - } -} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java deleted file mode 100644 index 6691c070..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java +++ /dev/null @@ -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"); - } -} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java deleted file mode 100644 index dfd59cd0..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java +++ /dev/null @@ -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"); - } -} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java index f7a3ec71..b24b0c15 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java @@ -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 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 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; + } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java deleted file mode 100644 index 125e4506..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java +++ /dev/null @@ -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"); - } -}