package net.fourbytes.shadow;
import com.badlogic.gdx.utils.Array;
import net.fourbytes.shadow.map.ShadowMap;
import net.fourbytes.shadow.systems.INextDay;
import net.fourbytes.shadow.systems.ITimeDaySystem;
import net.fourbytes.shadow.systems.IWeatherSystem;
public class PauseLevel extends TitleLevel {
public PauseLevel() {
this(null);
}
public PauseLevel(MenuLevel parent) {
super(parent);
Array<MenuItem> items = new Array<MenuItem>(MenuItem.class);
items.add(new MenuItem(this, "Continue", new Runnable(){public void run(){
Shadow.level = bglevel;
}}));
items.add(new MenuItem(this, "Save", new Runnable(){public void run(){
//TODO
final LoadingLevel loadinglevel = new LoadingLevel();
loadinglevel.bglevel = bglevel;
loadinglevel.steps = new Runnable[] {
new Runnable() {
public void run() {
ShadowMap map = ShadowMap.createNewFrom(bglevel, loadinglevel);
loadinglevel.progress = 0;
loadinglevel.progressMax = 0;
map.save(Shadow.getDir("saves").child("map.smf"));
Shadow.level = bglevel;
}
}
};
Shadow.level = loadinglevel;
loadinglevel.start();
}}));
items.add(new MenuItem(this, "Load", new Runnable(){public void run(){
//TODO
final LoadingLevel loadinglevel = new LoadingLevel();
loadinglevel.bglevel = bglevel;
loadinglevel.steps = new Runnable[] {
new Runnable() {
public void run() {
loadinglevel.progress = 0;
loadinglevel.progressMax = bglevel.mainLayer.blocks.size + bglevel.mainLayer.entities.size;
Layer layer = bglevel.mainLayer;
while (layer.blocks.size > 0) {
layer.blocks.items[0].layer.remove(layer.blocks.items[0]);
loadinglevel.progress++;
}
while (layer.entities.size > 0) {
layer.entities.items[0].layer.remove(layer.entities.items[0]);
loadinglevel.progress++;
}
loadinglevel.progress = 0;
loadinglevel.progressMax = 0;
ShadowMap map = ShadowMap.loadFile(Shadow.getDir("saves").child("map.smf"));
map.fillLevel(bglevel, loadinglevel);
Shadow.level = bglevel;
}
}
};
Shadow.level = loadinglevel;
loadinglevel.start();
}}));
items.add(new MenuItem(this, "Main Menu", new Runnable(){public void run(){
Shadow.level = new TitleLevel();
}}));
items.addAll(this.items);
for (MenuItem item : this.items) {
if (item.text.toLowerCase().startsWith("start ") || item.text.equals("Multiplayer")) {
items.removeValue(item, true);
}
}
this.items = items;
ready = true;
}
/*
@Override
public void keyDown(Input.Key key) {
if (Shadow.level != this) {
return;
}
if (key == Input.androidBack) {
Shadow.level = new TitleLevel();
} else {
super.keyDown(key);
}
}
*/
}