mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-27 15:17:59 +01:00
Fixed horseshoes shot from dispensers not using their correct speed for the item fired
This commit is contained in:
parent
653fc0bcf7
commit
1920233090
1 changed files with 15 additions and 0 deletions
|
@ -16,6 +16,7 @@ import net.minecraft.component.type.AttributeModifierSlot;
|
||||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
import net.minecraft.component.type.AttributeModifiersComponent;
|
||||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.entity.projectile.ProjectileEntity;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.tooltip.TooltipType;
|
import net.minecraft.item.tooltip.TooltipType;
|
||||||
|
@ -92,6 +93,20 @@ public class HorseShoeItem extends HeavyProjectileItem {
|
||||||
return projectile;
|
return projectile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initializeProjectile(ProjectileEntity entity, double x, double y, double z, float power, float uncertainty) {
|
||||||
|
float degradation = 0;
|
||||||
|
if (entity instanceof PhysicsBodyProjectileEntity p) {
|
||||||
|
ItemStack stack = p.getStack();
|
||||||
|
degradation = (stack.getDamage() / (float)stack.getMaxDamage());
|
||||||
|
}
|
||||||
|
|
||||||
|
float speed = Math.max(0.2F, ((baseProjectileSpeed + 0.1F) / 1.5F) * (1 - (0.6F * degradation)));
|
||||||
|
float inaccuracy = projectileInnacuracy + degradation * 30;
|
||||||
|
entity.setVelocity(x, y, z, speed, inaccuracy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SoundEvent getThrowSound(ItemStack stack) {
|
public SoundEvent getThrowSound(ItemStack stack) {
|
||||||
return USounds.Vanilla.ITEM_TRIDENT_THROW.value();
|
return USounds.Vanilla.ITEM_TRIDENT_THROW.value();
|
||||||
|
|
Loading…
Reference in a new issue