Hbm-s-Nuclear-Tech-GIT/src/main/java/com/hbm/items/tool/ItemToolingWeapon.java
2022-08-15 15:57:18 +02:00

58 lines
1.6 KiB
Java

package com.hbm.items.tool;
import com.google.common.collect.Multimap;
import com.hbm.items.ModItems;
import api.hbm.block.IToolable.ToolType;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class ItemToolingWeapon extends ItemTooling {
protected float damage = 0;
public ItemToolingWeapon(ToolType type, int durability, float damage) {
super(type, durability);
this.damage = damage;
}
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase player) {
World world = player.worldObj;
if(this == ModItems.wrench) {
Vec3 vec = player.getLookVec();
double dX = vec.xCoord * 0.5;
double dY = vec.yCoord * 0.5;
double dZ = vec.zCoord * 0.5;
entity.motionX += dX;
entity.motionY += dY;
entity.motionZ += dZ;
world.playSoundAtEntity(entity, "random.anvil_land", 3.0F, 0.75F);
}
return false;
}
@Override
public Multimap getAttributeModifiers(ItemStack stack) {
Multimap multimap = super.getAttributeModifiers(stack);
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Weapon modifier", damage, 0));
if(this == ModItems.wrench) {
multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Wrench modifier", -0.1, 1));
}
return multimap;
}
}