Subversion Repositories AndroidProjects

Rev

Rev 994 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.burutaru.game.level;

import java.util.Vector;

import com.badlogic.gdx.Gdx;
import com.gebauz.bauzoid.app.Consts;
import com.gebauz.burutaru.game.entities.ICollidable;

public class LevelData extends LevelObject
{
        // Constants========================================================================================

        // Embedded Types===================================================================================

        // Fields===========================================================================================
       
       
        private Vector<BaseCommand> mCommandList = new Vector<BaseCommand>();
       
        private Vector<LevelObject> mLevelObjects = new Vector<LevelObject>();
       
        private String mLevelName = null;
       
        // Methods==========================================================================================
       
        public LevelData(Level level)
        {
                super(level);          
        }
       
        public void initAsync()
        {
                // kick off async loading - this is most likely called from the LevelDataAsyncLoader
               
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        mLevelObjects.get(i).initAsync();
                }
        }
       
        public void init()
        {
                // async loading is done, so tie everything together
               
                Gdx.app.log(Consts.LOG_TAG, "Level Name: " + mLevelName);
               
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        mLevelObjects.get(i).init();
                }
        }
       
        public void exit()
        {
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        mLevelObjects.get(i).exit();
                }
        }
       
        public void update(float deltaTime)
        {
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        mLevelObjects.get(i).update(deltaTime);
                }
        }
       
        public void renderBackground()
        {
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        mLevelObjects.get(i).renderBackground();
                }
        }
       
        public void renderForeground()
        {
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        mLevelObjects.get(i).renderForeground();
                }
        }
       
        public void addLevelObject(LevelObject object)
        {
                mLevelObjects.add(object);
        }
       
        public void fillCollidableList(Vector<ICollidable> list)
        {
                // TODO: check performance implications of instanceof operation
                for (int i = 0; i < mLevelObjects.size(); i++)
                {
                        LevelObject obj = mLevelObjects.get(i);
                        if (obj instanceof ICollidable)
                        {
                                list.add((ICollidable)obj);
                        }
                }              
        }

        // Getters/Setters==================================================================================
       
        public final void setName(String name) { mLevelName = name; }
        public final String getName() { return mLevelName; }
       
        public final int getNumLevelObjects() { return mLevelObjects.size(); }
        public final LevelObject getLevelObject(int i) { return mLevelObjects.get(i); }
       
       

}