From 0a6127b843d6ac6aae5ac10511a65947e405235d Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 23 Aug 2020 12:53:49 -0400 Subject: [PATCH] v0.8.2c: adjusted emitters to fix a race condition --- .../com/watabou/noosa/particles/Emitter.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/SPD-classes/src/main/java/com/watabou/noosa/particles/Emitter.java b/SPD-classes/src/main/java/com/watabou/noosa/particles/Emitter.java index 846bef630..a5b081034 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/particles/Emitter.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/particles/Emitter.java @@ -44,7 +44,8 @@ public class Emitter extends Group { protected int quantity; public boolean on = false; - + + private boolean started = false; public boolean autoKill = true; protected int count; @@ -87,7 +88,9 @@ public class Emitter extends Group { } public void start( Factory factory, float interval, int quantity ) { - + + started = true; + this.factory = factory; this.lightMode = factory.lightMode(); @@ -113,13 +116,19 @@ public class Emitter extends Group { break; } } - } else if (autoKill && countLiving() == 0) { + } else if (started && autoKill && countLiving() == 0) { kill(); } super.update(); } - + + @Override + public void revive() { + started = false; + super.revive(); + } + protected void emit( int index ) { if (target == null) { factory.emit(