From 4a1289e3d12a09c43ec1f3ce0ebaeb10c80a05b6 Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Wed, 17 May 2023 18:59:06 +0200 Subject: [PATCH] feat: crystalline bell --- build.gradle | 2 +- .../net/anvilcraft/thaummach/TMItems.java | 8 +- .../thaummach/items/ItemCrystallineBell.java | 94 ++++++++++++++++++ .../assets/thaummach/lang/en_US.lang | 1 + .../textures/items/crystalline_bell.png | Bin 0 -> 424 bytes 5 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 src/main/java/net/anvilcraft/thaummach/items/ItemCrystallineBell.java create mode 100644 src/main/resources/assets/thaummach/textures/items/crystalline_bell.png diff --git a/build.gradle b/build.gradle index 73fadd4..821539a 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ repositories { dependencies { implementation "thaumcraft:Thaumcraft:1.7.10-4.2.3.5:deobf" - implementation "dev.tilera:auracore:1.1.2:deobf" + implementation "dev.tilera:auracore:1.8.9:deobf" implementation "com.github.tox1cozZ:mixin-booter-legacy:1.1.2" } diff --git a/src/main/java/net/anvilcraft/thaummach/TMItems.java b/src/main/java/net/anvilcraft/thaummach/TMItems.java index 54b3fcb..e2025fa 100644 --- a/src/main/java/net/anvilcraft/thaummach/TMItems.java +++ b/src/main/java/net/anvilcraft/thaummach/TMItems.java @@ -1,12 +1,14 @@ package net.anvilcraft.thaummach; import cpw.mods.fml.common.registry.GameRegistry; +import net.anvilcraft.thaummach.items.ItemCrystallineBell; import net.anvilcraft.thaummach.items.ItemFocus; import net.anvilcraft.thaummach.items.ItemRunicEssence; import net.anvilcraft.thaummach.items.ItemSingularity; import net.minecraft.item.Item; public class TMItems { + public static Item crystallineBell; public static Item focus0; public static Item focus1; public static Item focus2; @@ -16,6 +18,8 @@ public class TMItems { public static Item singularity; public static void init() { + crystallineBell = new ItemCrystallineBell(); + focus0 = new ItemFocus(0); focus1 = new ItemFocus(1); focus2 = new ItemFocus(2); @@ -26,13 +30,15 @@ public class TMItems { singularity = new ItemSingularity(); + GameRegistry.registerItem(crystallineBell, "crystalline_bell"); + GameRegistry.registerItem(focus0, "focus0"); GameRegistry.registerItem(focus1, "focus1"); GameRegistry.registerItem(focus2, "focus2"); GameRegistry.registerItem(focus3, "focus3"); GameRegistry.registerItem(focus4, "focus4"); - GameRegistry.registerItem(runicEssence, "runicEssence"); + GameRegistry.registerItem(runicEssence, "runic_essence"); GameRegistry.registerItem(singularity, "singularity"); } diff --git a/src/main/java/net/anvilcraft/thaummach/items/ItemCrystallineBell.java b/src/main/java/net/anvilcraft/thaummach/items/ItemCrystallineBell.java new file mode 100644 index 0000000..d8ab21c --- /dev/null +++ b/src/main/java/net/anvilcraft/thaummach/items/ItemCrystallineBell.java @@ -0,0 +1,94 @@ +package net.anvilcraft.thaummach.items; + +import dev.tilera.auracore.api.ICrystal; +import net.anvilcraft.thaummach.TMTab; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import thaumcraft.api.IRepairable; + +public class ItemCrystallineBell extends Item implements IRepairable { + public ItemCrystallineBell() { + super(); + super.maxStackSize = 1; + this.setMaxDamage(100); + this.setUnlocalizedName("thaummach:crystalline_bell"); + this.setCreativeTab(TMTab.INSTANCE); + this.canRepair = false; + } + + @Override + public void registerIcons(IIconRegister reg) { + this.itemIcon = reg.registerIcon("thaummach:crystalline_bell"); + } + + @Override + public boolean isFull3D() { + return true; + } + + @Override + public int getItemEnchantability() { + return 5; + } + + @Override + public EnumRarity getRarity(ItemStack itemstack) { + return EnumRarity.uncommon; + } + + @Override + public boolean isRepairable() { + return false; + } + + @Override + public boolean onItemUse( + ItemStack itemstack, + EntityPlayer player, + World world, + int i, + int j, + int k, + int l, + // useless parameters + float alec1, + float alec2, + float alec3 + ) { + if (itemstack.stackSize == 0) + return false; + + int meta = world.getBlockMetadata(i, j, k); + TileEntity te = world.getTileEntity(i, j, k); + if (te != null && te instanceof ICrystal) { + if (((ICrystal) te).getCrystalCount(meta) == 1) + return false; + world.playSoundEffect( + (double) ((float) i + 0.5F), + (double) ((float) j + 0.5F), + (double) ((float) k + 0.5F), + "random.orb", + 0.5F, + 0.8F + (float) ((ICrystal) te).getCrystalCount(meta) * 0.1F + ); + + ((ICrystal) te).harvestShard(player); + + itemstack.damageItem(1, player); + world.markBlockForUpdate(i, j, k); + return true; + } + return super.onItemUse(itemstack, player, world, i, j, k, l, alec1, alec2, alec3); + } + + // TODO: WTF + //@Override + //public float visRepairCost() { + // return 0.5F; + //} +} diff --git a/src/main/resources/assets/thaummach/lang/en_US.lang b/src/main/resources/assets/thaummach/lang/en_US.lang index 9eafe51..314e78a 100644 --- a/src/main/resources/assets/thaummach/lang/en_US.lang +++ b/src/main/resources/assets/thaummach/lang/en_US.lang @@ -40,6 +40,7 @@ item.thaummach:focus_3.name=Arcane Focus: Earth item.thaummach:focus_4.name=Arcane Focus: Fire item.thaummach:singularity.name=Arcane Singularity +item.thaummach:crystalline_bell.name=Crystalline Bell thaummach:runic_essence.0.name=Runic Essence: Magic thaummach:runic_essence.1.name=Runic Essence: Air diff --git a/src/main/resources/assets/thaummach/textures/items/crystalline_bell.png b/src/main/resources/assets/thaummach/textures/items/crystalline_bell.png new file mode 100644 index 0000000000000000000000000000000000000000..076aeeb7361d935607a1cedc07ff3c49889dea14 GIT binary patch literal 424 zcmV;Z0ayNsP)*SixKGReQv))g*J5(7Ftsru@s>c248;;Q@);2O4_y!dLta z(DVS&{S!`KvJ8ZKoKy52(6JE1e1e2bTPSX-{V*HQZcMWA2z&Q1w$9&J3jsQfFmG~j zCOss7TA6Sw7f5NYaS4xjmHnOc@sjIfNmX_T&A|}mUZGx^pK=vb&j0CMfB^ttwd0!f SVk0B~0000