From a0277c49e3695b421e2dd41c9a9cee267649988a Mon Sep 17 00:00:00 2001 From: gered Date: Tue, 12 Nov 2013 21:49:54 -0500 Subject: [PATCH] call dispose() for EntityPreset's implementing Disposable when removing them from EntityManager's preset list --- src/com/blarg/gdx/entities/EntityManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/blarg/gdx/entities/EntityManager.java b/src/com/blarg/gdx/entities/EntityManager.java index b8e5318..1e859cc 100644 --- a/src/com/blarg/gdx/entities/EntityManager.java +++ b/src/com/blarg/gdx/entities/EntityManager.java @@ -1,10 +1,10 @@ package com.blarg.gdx.entities; import com.badlogic.gdx.utils.*; +import com.blarg.gdx.ReflectionUtils; import com.blarg.gdx.entities.systemcomponents.EntityPresetComponent; import com.blarg.gdx.entities.systemcomponents.InactiveComponent; import com.blarg.gdx.events.EventManager; -import com.blarg.gdx.ReflectionUtils; public class EntityManager implements Disposable { public final EventManager eventManager; @@ -101,10 +101,17 @@ public class EntityManager implements Disposable { } public void removePreset(Class presetType) { + EntityPreset preset = presets.get(presetType); presets.remove(presetType); + if (Disposable.class.isInstance(preset)) + ((Disposable)preset).dispose(); } public void removeAllPresets() { + for (ObjectMap.Entry, EntityPreset> i : presets.entries()) { + if (Disposable.class.isInstance(i.value)) + ((Disposable)i.value).dispose(); + } presets.clear(); }