More error fixes (down to 381)

This commit is contained in:
WayofTime 2016-03-18 14:54:31 -04:00
parent 7706d0667a
commit 09168fa386
11 changed files with 206 additions and 134 deletions

View file

@ -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<ItemStack> 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);
}
}

View file

@ -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<ItemStack> 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<String> 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);
}

View file

@ -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<ItemStack> 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

View file

@ -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<ItemStack> 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)

View file

@ -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<ItemStack> 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<ItemStack>(EnumActionResult.PASS, stack);
}
public int getWillBracket(double will)

View file

@ -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;
}
}
}

View file

@ -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<ItemStack> 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<ItemStack>(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<String, AttributeModifier> getAttributeModifiers(ItemStack stack)
public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack)
{
Multimap<String, AttributeModifier> multimap = HashMultimap.<String, AttributeModifier>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;
}

View file

@ -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<ItemStack> 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<ItemStack>(EnumActionResult.PASS, stack);
}
@Override

View file

@ -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<ItemStack> 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<ItemStack>(EnumActionResult.SUCCESS, itemStackIn);
}
@Override

View file

@ -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);
}

View file

@ -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