package net.alcuria.umbracraft.engine.manager;
import net.alcuria.umbracraft.engine.entities.BaseEntity;
import com.badlogic.gdx.utils.Array;
/** A manager manages a list of children, with methods to add and update them.
* @author Andrew Keturi
* @param <T> a child {@link BaseEntity} type */
public abstract class Manager<T extends BaseEntity> {
Array<T> children;
public void add(T child) {
if (children == null) {
children = new Array<T>();
}
children.add(child);
}
public void remove(T child) {
if (children == null) {
return;
}
children.removeValue(child, true);
}
public void render() {
if (children == null) {
return;
}
for (T child : children) {
child.render();
}
}
public void update() {
if (children == null) {
return;
}
for (T child : children) {
child.update();
}
}
}