package projectzombie.world; import java.util.ArrayList; import bdf.classes.IBdfClassManager; import bdf.types.BdfArray; import bdf.types.BdfNamedList; import bdf.types.BdfObject; import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.display.lighting.TileLighting; import projectzombie.entity.player.EntityPlayer; import projectzombie.time.GameTimer; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; public class World implements IBdfClassManager { private Layer loaded; private ArrayList layers = new ArrayList(); public void render(Camera camera) { loaded.render(camera); } public void tickEntities() { loaded.tickEntities(); } public void spawnRandomEntities() { loaded.spawnRandomEntities(); } public void setLayer(int id) { ChunkEventHandler.loaded = false; TileLighting.clearLighting(); TileLighting.setDirty(); this.loaded = layers.get(id); } public void removeLayer(int id) { layers.remove(id); } public int addLayer(Layer layer) { int id = layers.size(); layers.add(layer); layer.id = id; return id; } public Layer getLayer() { return loaded; } @Override public void BdfClassLoad(BdfObject bdf) { BdfNamedList nl = bdf.getNamedList(); // Get the layers and the loaded layer BdfArray layers_bdf = nl.get("layers").getArray(); for(BdfObject o : layers_bdf) { layers.add(new Layer(o)); } int loaded_id = nl.get("loaded").getInteger(); setLayer(loaded_id); // Load the player data BdfArray players = nl.get("players").getArray(); Main.player = new EntityPlayer(players.get(0)); // Set the games time GameTimer.setTime(nl.get("time").getLong()); } @Override public void BdfClassSave(BdfObject bdf) { BdfNamedList nl = bdf.getNamedList(); // Get the current loaded layer int loaded_id = -1; for(int i=0;i