Blame |
Last modification |
View Log
| RSS feed
package com.gebauz.bauzoid.game.entities;
import java.util.Vector;
public class EntityManager
{
// Constants========================================================================================
// Embedded Types===================================================================================
// Members==========================================================================================
private Vector<BaseEntity
> mEntities =
new Vector<BaseEntity
>();
// Methods==========================================================================================
public EntityManager
()
{
}
public void initAsync
()
{
// initialize entities asynchronously
for (int i =
0; i
< mEntities.
size(); i++
)
{
mEntities.
get(i
).
initAsync();
}
}
public void init
()
{
// initialize entities
for (int i =
0; i
< mEntities.
size(); i++
)
{
mEntities.
get(i
).
init();
}
}
public void exit
()
{
// uninitialize entities
for (int i = mEntities.
size()-
1; i
>=
0; i--
)
{
mEntities.
get(i
).
exit();
}
mEntities.
clear();
}
// update and render should be done by GameLogic!
public void update
(float deltaTime
)
{
for (int i =
0; i
< mEntities.
size(); i++
)
{
BaseEntity e = mEntities.
get(i
);
if (e.
shouldUpdateRender())
e.
update(deltaTime
);
}
}
public void render
()
{
for (int i =
0; i
< mEntities.
size(); i++
)
{
BaseEntity e = mEntities.
get(i
);
if (e.
shouldUpdateRender())
e.
render();
}
}
public <T
extends BaseEntity
> T addEntity
(T entity
)
{
return addEntity
(entity,
false);
}
public <T
extends BaseEntity
> T addEntity
(T entity,
boolean shouldUpdateRender
)
{
mEntities.
add(entity
);
entity.
setEntityManager(this);
entity.
setShouldUpdateRender(shouldUpdateRender
);
return entity
;
}
// Getters/Setters==================================================================================
public BaseEntity getEntity
(int i
)
{
return mEntities.
elementAt(i
);
}
public final int getNumEntities
()
{
return mEntities.
size();
}
}