Subversion Repositories AndroidProjects

Rev

Rev 1712 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.bauzoid2.entities;

import com.gebauz.bauzoid2.entities.components.Component;
import com.gebauz.bauzoid2.entities.components.ComponentManager;

import java.util.Vector;

public abstract class GameObject
{

        // Constants========================================================================================

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

        // Fields===========================================================================================

    public Vector<Component> Components = new Vector<Component>();
       
        // Methods==========================================================================================

        public GameObject()
        {
        }

    public void init()
    {

    }

    public void exit()
    {
        for (Component c : Components)
        {
            c.exit();
        }

        Components.clear();
    }
       
    public <T extends Component> T addComponent(T component)
    {
        ComponentManager<T> mgr = component.getManager();

        mgr.addComponent(component);

        return component;
    }

    public <T extends Component> T getComponent(Class<T> type)
    {
        for (Component c : Components)
        {
            if (type.isInstance(c))
                return type.cast(c);
        }

        return null;
    }

        // Getters/Setters==================================================================================


}