From 770b14dccc4c03bd99fb79405edd17cb12e09e37 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 29 May 2015 01:35:29 -0400 Subject: [PATCH] v0.3.0b: improved item emitter effects, should be more efficient and less buggy --- .../sprites/DiscardedItemSprite.java | 1 + .../shatteredpixeldungeon/sprites/ItemSprite.java | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/DiscardedItemSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/DiscardedItemSprite.java index 6b7580de8..e37b1041f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/DiscardedItemSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/DiscardedItemSprite.java @@ -33,6 +33,7 @@ public class DiscardedItemSprite extends ItemSprite { public void drop() { scale.set( 1 ); am = 1; + if (emitter != null) emitter.killAndErase(); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java index d1b72d536..6f3f7b120 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java @@ -105,12 +105,18 @@ public class ItemSprite extends MovieClip { dropInterval = 0; heap = null; - if (emitter != null) emitter.revive(); + if (emitter != null) { + emitter.killAndErase(); + emitter = null; + } } public void visible(boolean value){ this.visible = value; - if (emitter != null) emitter.visible = value; + if (emitter != null && !visible){ + emitter.killAndErase(); + emitter = null; + } } public PointF worldToCamera( int cell ) { @@ -161,7 +167,7 @@ public class ItemSprite extends MovieClip { public ItemSprite view(Item item){ view(item.image(), item.glowing()); - if (this.emitter != null) this.emitter.on = false; + if (this.emitter != null) this.emitter.killAndErase(); Emitter emitter = item.emitter(); if (emitter != null && parent != null) { emitter.pos( this ); @@ -184,7 +190,8 @@ public class ItemSprite extends MovieClip { @Override public void kill() { super.kill(); - if (emitter != null) emitter.on = false; + if (emitter != null) emitter.killAndErase(); + emitter = null; } @Override