| 301 | } |
| 302 | |
| 303 | List<Particle> ActiveItem::pullNewParticles() { |
| 304 | // Same as pullNewAudios, we translate, rotate, and flip ourselves |
| 305 | List<Particle> result; |
| 306 | for (auto& particle : m_itemAnimatorDynamicTarget.pullNewParticles()) { |
| 307 | particle.position = owner()->position() + handPosition(particle.position); |
| 308 | particle.velocity = particle.velocity.rotate(m_armAngle.get()); |
| 309 | if (owner()->facingDirection() == Direction::Left) { |
| 310 | particle.velocity[0] *= -1; |
| 311 | particle.flip = !particle.flip; |
| 312 | } |
| 313 | result.append(std::move(particle)); |
| 314 | } |
| 315 | result.appendAll(m_scriptedAnimator.pullNewParticles()); |
| 316 | return result; |
| 317 | } |
| 318 | |
| 319 | Maybe<String> ActiveItem::cursor() const { |
| 320 | return m_cursor; |