#Shoot Projectiles like a Blaze (Reflection of smallFireball)

4 messages · Page 1 of 1 (latest)

fathom spire
#

Note; this is just an example to fire small fireBalls... getting the target.pos can be achieved through multiple means

const $smallFireBall = Java.loadClass("net.minecraft.world.entity.projectile.SmallFireball")

ItemEvents.rightClicked('minecraft:stick', event => {
    const {player, level} = event

    let rayTrace = player.rayTrace(8)
    if(rayTrace == null) return
    let target = rayTrace.entity
    if(target == null) return


    let d = player.distanceToSqr(target)
    let x = target.x - player.x
    let y = target.y - player.y+1
    let z = target.z - player.z
    let h = JavaMath.sqrt(JavaMath.sqrt(d) * 0.5)
    let smallFireBall = new $smallFireBall(player.level, player, player.getRandom().triangle(x, 2.297 * h), y, player.getRandom().triangle(z, 2.297 * h))
    smallFireBall.setPos(player.x, player.y+1, player.z)
    player.level.addFreshEntity(smallFireBall)

})```
strong jungle
#

regardless, good example of reflection to mimic the way base game does things, reminds me of the warden script i wrote <3

fathom spire
#

Yes, you could in theory also use
event.level.createEntity
But I wanted to replicate the blaze fireballs as good as possible