Selaa lähdekoodia

Prefab.findAll

trethaller 7 vuotta sitten
vanhempi
commit
7542517376
1 muutettua tiedostoa jossa 9 lisäystä ja 5 poistoa
  1. 9 5
      hxd/prefab/Prefab.hx

+ 9 - 5
hxd/prefab/Prefab.hx

@@ -202,13 +202,17 @@ class Prefab {
 	}
 
 	public function getAll<T:Prefab>( cl : Class<T>, ?arr: Array<T> ) : Array<T> {
+		return findAll(function(p) return p.to(cl));
+	}
+
+	public function findAll<T>( f : Prefab -> Null<T>, ?arr : Array<T> ) : Array<T> {
 		if(arr == null)
 			arr = [];
-		for(c in children) {
-			var i = c.to(cl);
-			if(i != null)
-				arr.push(i);
-			c.getAll(cl, arr);
+		for( c in children ) {
+			var v = f(c);
+			if( v != null )
+				arr.push(v);
+			c.findAll(f, arr);
 		}
 		return arr;
 	}