From bbf0e2aeb257661ae431f8e22bf35685bf56da00 Mon Sep 17 00:00:00 2001 From: koolkrafter5 Date: Sun, 25 May 2025 14:53:25 -0400 Subject: [PATCH] Inscription Tools Refactor (#86) Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com> --- .../alchemicalWizardry/ModItems.java | 27 ++++---- .../common/block/RitualStone.java | 61 ++++++------------ .../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 | 62 +++++++++++++------ .../common/items/WaterScribeTool.java | 21 ------- 9 files changed, 72 insertions(+), 194 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/block/RitualStone.java b/src/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java index 381d4fc1..6a57e8cf 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java @@ -4,7 +4,6 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -59,36 +58,28 @@ public class RitualStone extends Block implements IRitualStone { } @Override - public int damageDropped(int metadata) { - return 0; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, - float these, float are) { - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem == null) { + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + ItemStack stack = player.getCurrentEquippedItem(); + if (stack == null || !(stack.getItem() instanceof ScribeTool scribe)) { return false; } - Item item = playerItem.getItem(); + int toolType = scribe.getType(); - if (!(item instanceof ScribeTool)) { + if (toolType == world.getBlockMetadata(x, y, z)) { return false; } - if (playerItem.getMaxDamage() <= playerItem.getItemDamage() && !(playerItem.getMaxDamage() == 0)) { + if (stack.getMaxDamage() != 0 && stack.getItemDamage() >= stack.getMaxDamage()) { return false; } - ScribeTool scribeTool = (ScribeTool) item; - if (!player.capabilities.isCreativeMode) { - playerItem.setItemDamage(playerItem.getItemDamage() + 1); + stack.setItemDamage(stack.getItemDamage() + 1); } - world.setBlockMetadataWithNotify(x, y, z, scribeTool.getType(), 3); + world.setBlockMetadataWithNotify(x, y, z, toolType, 3); world.markBlockForUpdate(x, y, z); return true; } @@ -96,31 +87,15 @@ public class RitualStone extends Block implements IRitualStone { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - switch (metadata) { - case 0: - return blankIcon; - - case 1: - return waterStoneIcon; - - case 2: - return fireStoneIcon; - - case 3: - return earthStoneIcon; - - case 4: - return airStoneIcon; - - case 5: - return duskStoneIcon; - - case 6: - return dawnStoneIcon; - - default: - return blankIcon; - } + return switch (metadata) { + case 1 -> waterStoneIcon; + case 2 -> fireStoneIcon; + case 3 -> earthStoneIcon; + case 4 -> airStoneIcon; + case 5 -> duskStoneIcon; + case 6 -> dawnStoneIcon; + default -> blankIcon; + }; } @Override 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 8b25136a..a1dd7c9f 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java @@ -2,44 +2,68 @@ 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 int meta; + private final int meta; + private final String iconName; + + @SideOnly(Side.CLIENT) + private IIcon icon; public ScribeTool(int inkType) { + this(inkType, "unknown"); + } + + 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)) { - if (par1ItemStack.getItemDamage() > 0) { - 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 sneaking) { + 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"); - } -}