package stray.achievements;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.utils.Array;
public class CompletedAchievements {
public CompletedAchievements() {
loadResources();
}
HashMap<Achievement, Boolean> completed = new HashMap<Achievement, Boolean>();
public HashMap<Achievement, Boolean> getAll() {
return completed;
}
public void complete(Achievement a) {
completed.put(a, true);
}
private void loadResources() {
Array<Achievement> ach = Achievements.instance().achievements;
for (Achievement a : ach) {
completed.put(a, false);
}
}
public void save(String prefix, Preferences p) {
Iterator it = completed.entrySet().iterator();
while (it.hasNext()) {
Entry<Achievement, Boolean> entry = (Entry) it.next();
if (((Boolean) entry.getValue()) == true) {
p.putBoolean(prefix + entry.getKey().data, true);
}
}
p.flush();
}
public void load(String prefix, Preferences p) {
Iterator it = p.get().entrySet().iterator();
HashMap<Achievement, Boolean> toPut = new HashMap();
while (it.hasNext()) {
Entry<String, ?> entry = (Entry) it.next();
if (entry.getKey().startsWith(prefix)) {
for (Achievement a : completed.keySet()) {
if (a.data.equals(entry.getKey().substring(prefix.length()))) {
toPut.put(a, true);
}
}
}
}
if (!toPut.isEmpty()) {
completed.putAll(toPut);
}
}
}