From 09168fa386f499b34e837c4939b67692f5fa3df9 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Fri, 18 Mar 2016 14:54:31 -0400 Subject: [PATCH] More error fixes (down to 381) --- .../bloodmagic/item/sigil/ItemSigilAir.java | 17 +- .../bloodmagic/item/sigil/ItemSigilBase.java | 39 ++--- .../item/sigil/ItemSigilBloodLight.java | 28 ++-- .../item/sigil/ItemSigilToggleable.java | 25 +-- .../item/soul/ItemSentientArmourGem.java | 21 ++- .../bloodmagic/item/soul/ItemSentientBow.java | 155 +++++++++++------- .../item/soul/ItemSentientSword.java | 18 +- .../bloodmagic/item/soul/ItemSoulGem.java | 8 +- .../bloodmagic/item/soul/ItemSoulSnare.java | 12 +- .../bloodmagic/potion/PotionBloodMagic.java | 2 +- .../container/ContainerItemRoutingNode.java | 15 +- 11 files changed, 206 insertions(+), 134 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilAir.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilAir.java index 0350fd84..d7baef9c 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilAir.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilAir.java @@ -1,10 +1,14 @@ package WayofTime.bloodmagic.item.sigil; -import WayofTime.bloodmagic.api.Constants; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; +import WayofTime.bloodmagic.api.Constants; public class ItemSigilAir extends ItemSigilBase { @@ -15,11 +19,11 @@ public class ItemSigilAir extends ItemSigilBase } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { if (!world.isRemote && !isUnusable(stack)) { - Vec3 vec = player.getLookVec(); + Vec3d vec = player.getLookVec(); double wantedVelocity = 1.7; // TODO - Revisit after potions @@ -33,13 +37,14 @@ public class ItemSigilAir extends ItemSigilBase player.motionY = vec.yCoord * wantedVelocity; player.motionZ = vec.zCoord * wantedVelocity; player.velocityChanged = true; - world.playSoundEffect((double) ((float) player.posX + 0.5F), (double) ((float) player.posY + 0.5F), (double) ((float) player.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); + world.playSound((EntityPlayer) null, player.posX, player.posY, player.posZ, SoundEvents.block_fire_extinguish, SoundCategory.BLOCKS, 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); + player.fallDistance = 0; if (!player.capabilities.isCreativeMode) this.setUnusable(stack, !syphonNetwork(stack, player, getLPUsed())); } - return super.onItemRightClick(stack, world, player); + return super.onItemRightClick(stack, world, player, hand); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java index 95481cce..033b11cf 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java @@ -1,24 +1,27 @@ package WayofTime.bloodmagic.item.sigil; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import lombok.Getter; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.iface.ISigil; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.ItemBindable; import WayofTime.bloodmagic.util.helper.TextHelper; -import lombok.Getter; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; @Getter public class ItemSigilBase extends ItemBindable implements ISigil, IVariantProvider @@ -44,19 +47,17 @@ public class ItemSigilBase extends ItemBindable implements ISigil, IVariantProvi } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { - super.onItemRightClick(stack, world, player); - - return stack; + return super.onItemRightClick(stack, world, player, hand); } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced) { - if (StatCollector.canTranslate(tooltipBase + "desc")) - tooltip.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect(tooltipBase + "desc")))); +// if (StatCollector.canTranslate(tooltipBase + "desc")) + tooltip.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect(tooltipBase + "desc")))); super.addInformation(stack, player, tooltip, advanced); } diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBloodLight.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBloodLight.java index 73dd0044..0272e9a6 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBloodLight.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBloodLight.java @@ -1,16 +1,18 @@ package WayofTime.bloodmagic.item.sigil; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.entity.projectile.EntityBloodLight; import WayofTime.bloodmagic.registry.ModBlocks; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockPos; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; public class ItemSigilBloodLight extends ItemSigilBase { @@ -28,14 +30,14 @@ public class ItemSigilBloodLight extends ItemSigilBase } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { - MovingObjectPosition mop = this.getMovingObjectPositionFromPlayer(world, player, false); + RayTraceResult mop = this.getMovingObjectPositionFromPlayer(world, player, false); if (getCooldownRemainder(stack) > 0) - return stack; + return super.onItemRightClick(stack, world, player, hand); - if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) + if (mop != null && mop.typeOfHit == RayTraceResult.Type.BLOCK) { BlockPos blockPos = mop.getBlockPos().offset(mop.sideHit); @@ -45,8 +47,8 @@ public class ItemSigilBloodLight extends ItemSigilBase if (!world.isRemote) NetworkHelper.syphonAndDamage(NetworkHelper.getSoulNetwork(player), player, getLPUsed()); resetCooldown(stack); - player.swingItem(); - return stack; + player.swingArm(hand); + return super.onItemRightClick(stack, world, player, hand); } } else { @@ -58,7 +60,7 @@ public class ItemSigilBloodLight extends ItemSigilBase resetCooldown(stack); } - return stack; + return super.onItemRightClick(stack, world, player, hand); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleable.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleable.java index 540b4022..7a9fe0f6 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleable.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleable.java @@ -1,21 +1,26 @@ package WayofTime.bloodmagic.item.sigil; -import WayofTime.bloodmagic.item.ItemBindable; -import WayofTime.bloodmagic.util.helper.TextHelper; +import java.util.ArrayList; +import java.util.List; + import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockPos; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import java.util.ArrayList; -import java.util.List; +import WayofTime.bloodmagic.item.ItemBindable; +import WayofTime.bloodmagic.util.helper.TextHelper; public class ItemSigilToggleable extends ItemSigilBase { @@ -37,23 +42,23 @@ public class ItemSigilToggleable extends ItemSigilBase } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { if (!world.isRemote && !isUnusable(stack)) { if (player.isSneaking()) setActivated(stack, !getActivated(stack)); if (getActivated(stack) && ItemBindable.syphonNetwork(stack, player, getLPUsed())) - return stack; + return super.onItemRightClick(stack, world, player, hand); } - return stack; + return super.onItemRightClick(stack, world, player, hand); } @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ) + public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - return ItemBindable.syphonNetwork(stack, player, getLPUsed()) && onSigilUse(stack, player, world, blockPos, side, hitX, hitY, hitZ); + return (ItemBindable.syphonNetwork(stack, player, getLPUsed()) && onSigilUse(stack, player, world, pos, side, hitX, hitY, hitZ)) ? EnumActionResult.SUCCESS : EnumActionResult.FAIL; } public boolean onSigilUse(ItemStack itemStack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ) diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java index a9a5ab9f..aed2d29d 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java @@ -1,17 +1,20 @@ package WayofTime.bloodmagic.item.soul; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.PlayerDemonWillHandler; import WayofTime.bloodmagic.item.armour.ItemSentientArmour; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class ItemSentientArmourGem extends Item { @@ -35,7 +38,7 @@ public class ItemSentientArmourGem extends Item } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { boolean hasSentientArmour = false; ItemStack[] armourInventory = player.inventory.armorInventory; @@ -63,7 +66,7 @@ public class ItemSentientArmourGem extends Item } } - return stack; + return new ActionResult(EnumActionResult.PASS, stack); } public int getWillBracket(double will) diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java index b0f0c366..caecd57e 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java @@ -1,21 +1,24 @@ package WayofTime.bloodmagic.item.soul; -import WayofTime.bloodmagic.BloodMagic; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.entity.projectile.EntitySentientArrow; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.enchantment.Enchantment; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Enchantments; import net.minecraft.init.Items; -import net.minecraft.item.Item; +import net.minecraft.init.SoundEvents; +import net.minecraft.item.ItemArrow; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; +import net.minecraft.util.EnumHand; +import net.minecraft.util.SoundCategory; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; public class ItemSentientBow extends ItemBow { @@ -28,72 +31,87 @@ public class ItemSentientBow extends ItemBow } @Override - public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityPlayer playerIn, int timeLeft) + public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityLivingBase entityLiving, int timeLeft) { - boolean flag = playerIn.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if (flag || playerIn.inventory.hasItem(Items.arrow)) + if (entityLiving instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) entityLiving; + boolean flag = entityplayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantments.infinity, stack) > 0; + ItemStack itemstack = this.getFiredArrow(entityplayer); + int i = this.getMaxItemUseDuration(stack) - timeLeft; - net.minecraftforge.event.entity.player.ArrowLooseEvent event = new net.minecraftforge.event.entity.player.ArrowLooseEvent(playerIn, stack, i); - if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) + i = net.minecraftforge.event.ForgeEventFactory.onArrowLoose(stack, worldIn, (EntityPlayer) entityLiving, i, itemstack != null || flag); + if (i < 0) return; - i = event.charge; - float f = (float) i / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - if ((double) f < 0.1D) + if (itemstack != null || flag) { - return; - } + if (itemstack == null) + { + itemstack = new ItemStack(Items.arrow); + } - if (f > 1.0F) - { - f = 1.0F; - } + float f = func_185059_b(i); - EntityArrow entityarrow = new EntitySentientArrow(worldIn, playerIn, f * 2.0F, 0); + if ((double) f >= 0.1D) + { + boolean flag1 = flag && itemstack.getItem() instanceof ItemArrow; //Forge: Fix consuming custom arrows. - if (f == 1.0F) - { - entityarrow.setIsCritical(true); - } + if (!worldIn.isRemote) + { + //Need to do some stuffs + ItemArrow itemarrow = (ItemArrow) ((ItemArrow) (itemstack.getItem() instanceof ItemArrow ? itemstack.getItem() : Items.arrow)); + EntityArrow entityarrow = itemarrow.makeTippedArrow(worldIn, itemstack, entityplayer); + entityarrow.func_184547_a(entityplayer, entityplayer.rotationPitch, entityplayer.rotationYaw, 0.0F, f * 3.0F, 1.0F); - int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, stack); + if (f == 1.0F) + { + entityarrow.setIsCritical(true); + } - if (j > 0) - { - entityarrow.setDamage(entityarrow.getDamage() + (double) j * 0.5D + 0.5D); - } + int j = EnchantmentHelper.getEnchantmentLevel(Enchantments.power, stack); - int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, stack); + if (j > 0) + { + entityarrow.setDamage(entityarrow.getDamage() + (double) j * 0.5D + 0.5D); + } - if (k > 0) - { - entityarrow.setKnockbackStrength(k); - } + int k = EnchantmentHelper.getEnchantmentLevel(Enchantments.punch, stack); - if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, stack) > 0) - { - entityarrow.setFire(100); - } + if (k > 0) + { + entityarrow.setKnockbackStrength(k); + } - stack.damageItem(1, playerIn); - worldIn.playSoundAtEntity(playerIn, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); + if (EnchantmentHelper.getEnchantmentLevel(Enchantments.flame, stack) > 0) + { + entityarrow.setFire(100); + } - if (flag) - { - entityarrow.canBePickedUp = 2; - } else - { - playerIn.inventory.consumeInventoryItem(Items.arrow); - } + stack.damageItem(1, entityplayer); - playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]); + if (flag1) + { + entityarrow.canBePickedUp = EntityArrow.PickupStatus.CREATIVE_ONLY; + } - if (!worldIn.isRemote) - { - worldIn.spawnEntityInWorld(entityarrow); + worldIn.spawnEntityInWorld(entityarrow); + } + + worldIn.playSound((EntityPlayer) null, entityplayer.posX, entityplayer.posY, entityplayer.posZ, SoundEvents.entity_arrow_shoot, SoundCategory.NEUTRAL, 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); + + if (!flag1) + { + --itemstack.stackSize; + + if (itemstack.stackSize == 0) + { + entityplayer.inventory.deleteStack(itemstack); + } + } + + entityplayer.addStat(StatList.func_188057_b(this)); + } } } } @@ -101,11 +119,6 @@ public class ItemSentientBow extends ItemBow @SideOnly(Side.CLIENT) public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) { - if (player.getItemInUse() == null) - { - return null; - } - int i = stack.getMaxItemUseDuration() - player.getItemInUseCount(); if (i >= 18) @@ -121,4 +134,28 @@ public class ItemSentientBow extends ItemBow return null; } + + protected ItemStack getFiredArrow(EntityPlayer player) + { + if (this.func_185058_h_(player.getHeldItem(EnumHand.OFF_HAND))) + { + return player.getHeldItem(EnumHand.OFF_HAND); + } else if (this.func_185058_h_(player.getHeldItem(EnumHand.MAIN_HAND))) + { + return player.getHeldItem(EnumHand.MAIN_HAND); + } else + { + for (int i = 0; i < player.inventory.getSizeInventory(); ++i) + { + ItemStack itemstack = player.inventory.getStackInSlot(i); + + if (this.func_185058_h_(itemstack)) + { + return itemstack; + } + } + + return null; + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java index e485fde3..f03d7442 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java @@ -12,18 +12,24 @@ import WayofTime.bloodmagic.client.IMeshProvider; import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionActivatable; import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.util.helper.TextHelper; + import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; + import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -55,7 +61,7 @@ public class ItemSentientSword extends ItemSword implements IDemonWillWeapon, IA } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { if (player.isSneaking()) setActivatedState(stack, !getActivated(stack)); @@ -74,8 +80,8 @@ public class ItemSentientSword extends ItemSword implements IDemonWillWeapon, IA setDropOfActivatedSword(stack, level >= 0 ? soulDrop[level] : 0); } - player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); - return stack; + player.setActiveHand(hand); + return new ActionResult(EnumActionResult.SUCCESS, stack); } @Override @@ -198,11 +204,13 @@ public class ItemSentientSword extends ItemSword implements IDemonWillWeapon, IA return soulList; } + //TODO: Change attack speed. @Override - public Multimap getAttributeModifiers(ItemStack stack) + public Multimap getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack) { Multimap multimap = HashMultimap.create(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", getActivated(stack) ? getDamageOfActivatedSword(stack) : 2, 0)); + multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", getActivated(stack) ? getDamageOfActivatedSword(stack) : 2, 0)); + multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", -2.4, 0)); return multimap; } diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java index fbd35b1f..b18becad 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java @@ -14,9 +14,13 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; @@ -45,7 +49,7 @@ public class ItemSoulGem extends Item implements IDemonWillGem, IVariantProvider } @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { EnumDemonWillType type = this.getCurrentType(stack); double drain = Math.min(this.getWill(type, stack), this.getMaxWill(type, stack) / 10); @@ -53,7 +57,7 @@ public class ItemSoulGem extends Item implements IDemonWillGem, IVariantProvider double filled = PlayerDemonWillHandler.addDemonWill(type, player, drain, stack); this.drainWill(type, stack, filled); - return stack; + return new ActionResult(EnumActionResult.PASS, stack); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java index bf28c433..7572bec2 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java @@ -7,11 +7,17 @@ import WayofTime.bloodmagic.entity.projectile.EntitySoulSnare; import WayofTime.bloodmagic.util.helper.TextHelper; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.SoundCategory; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; @@ -35,21 +41,21 @@ public class ItemSoulSnare extends Item implements IVariantProvider } @Override - public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn) + public ActionResult onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) { if (!playerIn.capabilities.isCreativeMode) { --itemStackIn.stackSize; } - worldIn.playSoundAtEntity(playerIn, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + worldIn.playSound((EntityPlayer) null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.entity_snowball_throw, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); if (!worldIn.isRemote) { worldIn.spawnEntityInWorld(new EntitySoulSnare(worldIn, playerIn)); } - return itemStackIn; + return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/potion/PotionBloodMagic.java b/src/main/java/WayofTime/bloodmagic/potion/PotionBloodMagic.java index 58466968..912a55bf 100644 --- a/src/main/java/WayofTime/bloodmagic/potion/PotionBloodMagic.java +++ b/src/main/java/WayofTime/bloodmagic/potion/PotionBloodMagic.java @@ -7,7 +7,7 @@ public class PotionBloodMagic extends Potion { public PotionBloodMagic(String name, ResourceLocation texture, boolean badEffect, int potionColor, int iconIndexX, int iconIndexY) { - super(texture, badEffect, potionColor); + super(badEffect, potionColor); this.setPotionName(name); this.setIconIndex(iconIndexX, iconIndexY); } diff --git a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java index 8a219721..5fcbdb21 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.util.GhostItemHelper; import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ClickType; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; @@ -58,7 +59,7 @@ public class ContainerItemRoutingNode extends Container * Overridden in order to handle ghost item slots. */ @Override - public ItemStack slotClick(int slotId, int clickedButton, int mode, EntityPlayer player) + public ItemStack func_184996_a(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { InventoryPlayer inventoryPlayer = player.inventory; // if (!player.worldObj.isRemote) @@ -69,14 +70,14 @@ public class ContainerItemRoutingNode extends Container if (slot instanceof SlotGhostItem) //TODO: make the slot clicking work! { - if ((mode == 0 || mode == 1) && (clickedButton == 0 || clickedButton == 1)) + if ((dragType == 0 || dragType == 1) && (clickTypeIn == ClickType.PICKUP || clickTypeIn == ClickType.CLONE)) { ItemStack slotStack = slot.getStack(); ItemStack heldStack = inventoryPlayer.getItemStack(); - if (mode == 0) + if (dragType == 0) { - if (clickedButton == 0) + if (clickTypeIn == ClickType.PICKUP) { if (heldStack == null && slotStack != null) { @@ -86,7 +87,7 @@ public class ContainerItemRoutingNode extends Container { if (!((SlotGhostItem) slot).canBeAccessed()) { - return super.slotClick(slotId, clickedButton, mode, player); + return super.func_184996_a(slotId, dragType, clickTypeIn, player); } if (slotStack != null && Utils.canCombine(slotStack, heldStack)) { @@ -116,7 +117,7 @@ public class ContainerItemRoutingNode extends Container } } else { - if (clickedButton == 0) + if (clickTypeIn == ClickType.PICKUP) { if (slotStack != null) { @@ -139,7 +140,7 @@ public class ContainerItemRoutingNode extends Container } } - return super.slotClick(slotId, clickedButton, mode, player); + return super.func_184996_a(slotId, dragType, clickTypeIn, player); } @Override