Michael Ludwig avatar Michael Ludwig committed 0650224

Add getTypes() that returns all TypeIds in use, without requiring a class type argument.

Comments (0)

Files changed (1)

src/main/java/com/lhkbob/entreri/EntitySystem.java

     }
     
     /**
+     * Get all TypeIds currently used by the EntitySystem. If a type has had all
+     * of its components removed, it will still be returned here.
+     * 
+     * @return All TypeIds at one point used by this system
+     */
+    public Collection<TypeId<?>> getTypes() {
+        List<TypeId<?>> ids = new ArrayList<TypeId<?>>();
+        for (int i = 0; i < componentRepositories.length; i++) {
+            if (componentRepositories[i] != null) {
+                // check the type
+                    // this type is a subclass of the requested type
+                    ids.add(componentRepositories[i].getTypeId());
+            }
+        }
+        return ids;
+    }
+    
+    /**
      * Return the ControllerManager for this EntitySystem that can be used to
      * organize processing of the system using {@link Controller}
      * implementations.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.