Skip to content

TileEntity Particles

To continuously spawn particles for your TileEntity, you can use the createPacketTask function and save the task in a field. The function expects a list of packets and a tick interval. To get the particle packets you can use the ParticleBuilder obtained by the top-level function particle.
For example, for the FurnaceGenerator we have the following setup:

private val particleTask = createPacketTask(listOf(
    particle(ParticleTypes.SMOKE) {
        location(centerLocation.advance(getFace(FRONT), 0.6).apply { y += 0.8 })
        offset(getFace(BlockSide.RIGHT).axis, 0.15f)
        offsetY(0.1f)
        speed(0f)
        amount(5)
    }
), 1)

You can then call particleTask.start() and particleTask.stop() depending on whether you want to start or stop displaying the particles.