base mod created
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
package net.minecraft.item;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.projectile.EntityFishHook;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.EnumActionResult;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.SoundCategory;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemFishingRod extends Item
|
||||
{
|
||||
public ItemFishingRod()
|
||||
{
|
||||
this.setMaxDamage(64);
|
||||
this.setMaxStackSize(1);
|
||||
this.setCreativeTab(CreativeTabs.TOOLS);
|
||||
this.addPropertyOverride(new ResourceLocation("cast"), new IItemPropertyGetter()
|
||||
{
|
||||
@SideOnly(Side.CLIENT)
|
||||
public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn)
|
||||
{
|
||||
if (entityIn == null)
|
||||
{
|
||||
return 0.0F;
|
||||
}
|
||||
else
|
||||
{
|
||||
boolean flag = entityIn.getHeldItemMainhand() == stack;
|
||||
boolean flag1 = entityIn.getHeldItemOffhand() == stack;
|
||||
|
||||
if (entityIn.getHeldItemMainhand().getItem() instanceof ItemFishingRod)
|
||||
{
|
||||
flag1 = false;
|
||||
}
|
||||
|
||||
return (flag || flag1) && entityIn instanceof EntityPlayer && ((EntityPlayer)entityIn).fishEntity != null ? 1.0F : 0.0F;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns True is the item is renderer in full 3D when hold.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isFull3D()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this item should be rotated by 180 degrees around the Y axis when being held in an entities
|
||||
* hands.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldRotateAroundWhenRendering()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the equipped item is right clicked.
|
||||
*/
|
||||
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
|
||||
{
|
||||
ItemStack itemstack = playerIn.getHeldItem(handIn);
|
||||
|
||||
if (playerIn.fishEntity != null)
|
||||
{
|
||||
int i = playerIn.fishEntity.handleHookRetraction();
|
||||
itemstack.damageItem(i, playerIn);
|
||||
playerIn.swingArm(handIn);
|
||||
worldIn.playSound((EntityPlayer)null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.ENTITY_BOBBER_RETRIEVE, SoundCategory.NEUTRAL, 1.0F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
|
||||
}
|
||||
else
|
||||
{
|
||||
worldIn.playSound((EntityPlayer)null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.ENTITY_BOBBER_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
|
||||
|
||||
if (!worldIn.isRemote)
|
||||
{
|
||||
EntityFishHook entityfishhook = new EntityFishHook(worldIn, playerIn);
|
||||
int j = EnchantmentHelper.getFishingSpeedBonus(itemstack);
|
||||
|
||||
if (j > 0)
|
||||
{
|
||||
entityfishhook.setLureSpeed(j);
|
||||
}
|
||||
|
||||
int k = EnchantmentHelper.getFishingLuckBonus(itemstack);
|
||||
|
||||
if (k > 0)
|
||||
{
|
||||
entityfishhook.setLuck(k);
|
||||
}
|
||||
|
||||
worldIn.spawnEntity(entityfishhook);
|
||||
}
|
||||
|
||||
playerIn.swingArm(handIn);
|
||||
playerIn.addStat(StatList.getObjectUseStats(this));
|
||||
}
|
||||
|
||||
return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the enchantability factor of the item, most of the time is based on material.
|
||||
*/
|
||||
public int getItemEnchantability()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user