3030import com .artemis .Manager ;
3131import com .artemis .utils .Bag ;
3232import com .artemis .utils .ImmutableBag ;
33+ import com .artemis .utils .IntBag ;
3334import com .artemis .utils .reflect .ClassReflection ;
3435import com .artemis .utils .reflect .Field ;
3536import com .artemis .utils .reflect .Method ;
@@ -84,9 +85,14 @@ protected void initialize() {
8485
8586 private void find42UnicornManagers () {
8687 ImmutableBag <BaseSystem > systems = world .getSystems ();
88+ int index = 0 ;
8789 for (int i = 0 , n = systems .size (); i < n ; ++i ) {
8890 BaseSystem system = systems .get (i );
8991
92+ if (system instanceof Manager ) {
93+ continue ;
94+ }
95+
9096 Class <? extends BaseSystem > systemType = system .getClass ();
9197 String systemName = systemType .getSimpleName ();
9298 Aspect aspect = null ;
@@ -116,12 +122,17 @@ private void find42UnicornManagers() {
116122 listenForEntitySetChanges (info );
117123 }
118124
119- updateListener .addedSystem (i , systemName , aspectInfo .allTypes , aspectInfo .oneTypes , aspectInfo .exclusionTypes );
125+ updateListener .addedSystem (index ++ , systemName , aspectInfo .allTypes , aspectInfo .oneTypes , aspectInfo .exclusionTypes );
120126 }
121127
122- ImmutableBag <Manager > managers = world .getManagers ();
123- for (int i = 0 , n = managers .size (); i < n ; ++i ) {
124- Manager manager = managers .get (i );
128+ for (int i = 0 , n = systems .size (); i < n ; ++i ) {
129+ BaseSystem system = systems .get (i );
130+
131+ if (!(system instanceof Manager )) {
132+ continue ;
133+ }
134+
135+ Manager manager = (Manager ) system ;
125136
126137 Class <? extends Manager > managerType = manager .getClass ();
127138 String managerName = managerType .getSimpleName ();
@@ -137,7 +148,7 @@ private void find42UnicornManagers() {
137148 private void listenForEntitySetChanges (final SystemInfo info ) {
138149 info .subscription .addSubscriptionListener (new SubscriptionListener () {
139150 @ Override
140- public void removed (ImmutableBag < Entity > entities ) {
151+ public void removed (IntBag entities ) {
141152 info .entitiesCount -= entities .size ();
142153
143154 if (updateListener != null && (updateListener .getListeningBitset () & WorldUpdateListener .ENTITY_SYSTEM_STATS ) != 0 ) {
@@ -146,7 +157,7 @@ public void removed(ImmutableBag<Entity> entities) {
146157 }
147158
148159 @ Override
149- public void inserted (ImmutableBag < Entity > entities ) {
160+ public void inserted (IntBag entities ) {
150161 info .entitiesCount += entities .size ();
151162
152163 if (info .entitiesCount > info .maxEntitiesCount ) {
@@ -189,7 +200,7 @@ public void added(Entity e) {
189200 inspectNewComponentTypesAndNotify ();
190201 }
191202
192- updateListener .addedEntity (e .id , (BitSet ) componentBitset .clone ());
203+ updateListener .addedEntity (e .getId () , (BitSet ) componentBitset .clone ());
193204 }
194205
195206 @ Override
@@ -198,7 +209,7 @@ public void deleted(Entity e) {
198209 return ;
199210 }
200211
201- updateListener .deletedEntity (e .id );
212+ updateListener .deletedEntity (e .getId () );
202213 }
203214
204215 private void inspectNewComponentTypesAndNotify () {
0 commit comments