Bladeren bron

added isAliveComplete()

ncannasse 9 jaren geleden
bovenliggende
commit
e6a66b7165
1 gewijzigde bestanden met toevoegingen van 9 en 8 verwijderingen
  1. 9 8
      hxd/net/NetworkHost.hx

+ 9 - 8
hxd/net/NetworkHost.hx

@@ -266,24 +266,25 @@ class NetworkHost {
 		aliveEvents.push(f);
 		aliveEvents.push(f);
 	}
 	}
 
 
+	public function isAliveComplete() {
+		return @:privateAccess ctx.newObjects.length == 0 && aliveEvents.length == 0;
+	}
+
 	public function makeAlive() {
 	public function makeAlive() {
 		var objs = @:privateAccess ctx.newObjects;
 		var objs = @:privateAccess ctx.newObjects;
 		if( objs.length == 0 )
 		if( objs.length == 0 )
 			return;
 			return;
-		@:privateAccess ctx.newObjects = [];
-		for( o in objs ) {
+		while( true ) {
+			var o = objs.shift();
+			if( o == null ) break;
 			var n = Std.instance(o, NetworkSerializable);
 			var n = Std.instance(o, NetworkSerializable);
 			if( n == null ) continue;
 			if( n == null ) continue;
 			if( logger != null )
 			if( logger != null )
 				logger("Alive " + n +"#" + n.__uid);
 				logger("Alive " + n +"#" + n.__uid);
 			n.alive();
 			n.alive();
 		}
 		}
-		while( aliveEvents.length > 0 ) {
-			var events = aliveEvents;
-			aliveEvents = [];
-			for( f in events )
-				f();
-		}
+		while( aliveEvents.length > 0 )
+			aliveEvents.shift()();
 	}
 	}
 
 
 	public function setLogger( log : String -> Void ) {
 	public function setLogger( log : String -> Void ) {