MCPcopy Create free account
hub / github.com/GregTech6/gregtech6 / onArrowLooseEvent

Method onArrowLooseEvent

src/main/java/gregapi/GT_API_Proxy.java:1544–1579  ·  view source on GitHub ↗
(ArrowLooseEvent aEvent)

Source from the content-addressed store, hash-verified

1542 }
1543
1544 @SubscribeEvent(priority = EventPriority.LOWEST)
1545 public void onArrowLooseEvent(ArrowLooseEvent aEvent) {
1546 ItemStack aArrow = ST.projectile(aEvent.entityPlayer, TD.Projectiles.ARROW);
1547 if (!aEvent.isCanceled() && ST.valid(aEvent.bow) && aArrow != null && aEvent.bow.getItem() instanceof ItemBow) {
1548 float tSpeed = aEvent.charge / 20.0F;
1549 tSpeed = (tSpeed * tSpeed + tSpeed * 2.0F) / 3.0F;
1550
1551 if (tSpeed < 0.1) return;
1552 if (tSpeed > 1.0) tSpeed = 1.0F;
1553
1554 EntityProjectile tArrowEntity = ((IItemProjectile)aArrow.getItem()).getProjectile(TD.Projectiles.ARROW, aArrow, aEvent.entityPlayer.worldObj, aEvent.entityPlayer, tSpeed * 2.0F);
1555
1556 if (tSpeed >= 1.0F) tArrowEntity.setIsCritical(T);
1557
1558 int
1559 tLevel = UT.NBT.getEnchantmentLevel(Enchantment.power, aEvent.bow);
1560 if (tLevel > 0) tArrowEntity.setDamage(tArrowEntity.getDamage() + tLevel * 0.5D + 0.5D);
1561 tLevel = UT.NBT.getEnchantmentLevel(Enchantment.punch, aEvent.bow);
1562 if (tLevel > 0) tArrowEntity.setKnockbackStrength(tLevel);
1563 tLevel = UT.NBT.getEnchantmentLevel(Enchantment.flame, aEvent.bow);
1564 if (tLevel > 0) tArrowEntity.setFire(tLevel * 100);
1565
1566 aEvent.bow.damageItem(1, aEvent.entityPlayer);
1567 aEvent.bow.getItem();
1568 aEvent.entityPlayer.worldObj.playSoundAtEntity(aEvent.entityPlayer, "random.bow", 1.0F, 1.0F / (RNGSUS.nextFloat() * 0.4F + 1.2F) + tSpeed * 0.5F);
1569
1570 tArrowEntity.canBePickedUp = 1;
1571
1572 if (!UT.Entities.hasInfiniteItems(aEvent.entityPlayer)) aArrow.stackSize--;
1573 if (aArrow.stackSize == 0) ST.denull(aEvent.entityPlayer);
1574
1575 if (!aEvent.entityPlayer.worldObj.isRemote) aEvent.entityPlayer.worldObj.spawnEntityInWorld(tArrowEntity);
1576
1577 aEvent.setCanceled(T);
1578 }
1579 }
1580
1581 @Override
1582 public int getBurnTime(ItemStack aFuel) {

Callers

nothing calls this directly

Calls 8

projectileMethod · 0.95
validMethod · 0.95
denullMethod · 0.95
getEnchantmentLevelMethod · 0.80
setKnockbackStrengthMethod · 0.80
hasInfiniteItemsMethod · 0.80
getItemMethod · 0.65
getProjectileMethod · 0.65

Tested by

no test coverage detected