Explorar o código

Prefab.findAll

trethaller %!s(int64=7) %!d(string=hai) anos
pai
achega
7542517376
Modificáronse 1 ficheiros con 9 adicións e 5 borrados
  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;
 	}