package com.fdangelo.circleworld.universeview;
import java.util.ArrayList;
import com.badlogic.gdx.utils.IntMap;
import com.fdangelo.circleworld.universeview.objects.AvatarView;
import com.fdangelo.circleworld.universeview.objects.ShipView;
import com.fdangelo.circleworld.universeview.tilemap.PlanetView;
public class UniverseViewFactory {
private final IntMap<ArrayList<PlanetView>> planetsPool = new IntMap<ArrayList<PlanetView>>();
public final AvatarView getAvatar() {
return new AvatarView();
}
public final ShipView getShip() {
return new ShipView();
}
public final PlanetView getPlanet(final int height) {
PlanetView planet = null;
ArrayList<PlanetView> list;
if (planetsPool.containsKey(height)) {
list = planetsPool.get(height);
} else {
list = null;
}
if (list != null && list.size() > 0) {
planet = list.get(list.size() - 1);
list.remove(list.size() - 1);
} else {
planet = new PlanetView();
}
return planet;
}
public final void returnPlanet(final PlanetView planet) {
final int height = planet.getTilemapCircle().getHeight();
planet.recycle();
ArrayList<PlanetView> list;
if (planetsPool.containsKey(height)) {
list = planetsPool.get(height);
} else {
list = new ArrayList<PlanetView>();
planetsPool.put(height, list);
}
list.add(planet);
}
}