From 6df0d2dc6ea5eb6e93b92408f10b1248fbe657d1 Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Sat, 6 Jun 2020 22:16:39 +0100 Subject: [PATCH] Allow permanent constructs to be dispelled by shift-right-clicking with any wand --- .../entity/construct/EntityMagicConstruct.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityMagicConstruct.java b/src/main/java/electroblob/wizardry/entity/construct/EntityMagicConstruct.java index 14b514a9..6ef5f507 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityMagicConstruct.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityMagicConstruct.java @@ -1,6 +1,7 @@ package electroblob.wizardry.entity.construct; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.item.ISpellCastingItem; import electroblob.wizardry.registry.WizardrySounds; import electroblob.wizardry.util.AllyDesignationSystem; import electroblob.wizardry.util.WizardryUtilities; @@ -8,8 +9,12 @@ import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IEntityOwnable; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.IEntityAdditionalSpawnData; import net.minecraftforge.fml.relauncher.Side; @@ -70,6 +75,17 @@ public abstract class EntityMagicConstruct extends Entity implements IEntityOwna } + @Override + public EnumActionResult applyPlayerInteraction(EntityPlayer player, Vec3d vec, EnumHand hand){ + + if(lifetime == -1 && getCaster() == player && player.isSneaking() && player.getHeldItem(hand).getItem() instanceof ISpellCastingItem){ + this.despawn(); + return EnumActionResult.SUCCESS; + } + + return super.applyPlayerInteraction(player, vec, hand); + } + /** * Defaults to just setDead() in EntityMagicConstruct, but is provided to allow subclasses to override this e.g. * bubble uses it to dismount the entity inside it and play the 'pop' sound before calling super(). You should