Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 29, 2010, 12:30:32 PM (15 years ago)
Author:
dafrick
Message:

Working towards a functioning PickupInventory.

Location:
code/branches/pickup4/src/modules/pickup
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/pickup4/src/modules/pickup/CMakeLists.txt

    r6524 r6632  
    1515  FIND_HEADER_FILES
    1616  TOLUA_FILES
     17    PickupManager.h
     18    PickupRepresentation.h
    1719  DEFINE_SYMBOL
    1820    "PICKUP_SHARED_BUILD"
  • code/branches/pickup4/src/modules/pickup/PickupManager.cc

    r6540 r6632  
    3535
    3636#include "core/CoreIncludes.h"
     37#include "core/LuaState.h"
     38#include "core/GUIManager.h"
    3739#include "core/ScopedSingletonManager.h"
    3840#include "core/Identifier.h"
    3941#include "interfaces/PickupCarrier.h"
     42#include "infos/PlayerInfo.h"
    4043#include "worldentities/pawns/Pawn.h"
    4144#include "PickupRepresentation.h"
    4245
     46#include "ToluaBindPickup.h"
     47
    4348namespace orxonox
    4449{
    45 
     50    // Register tolua_open function when loading the library
     51    DeclareToluaInterface(Pickup);
     52   
    4653    ManageScopedSingleton(PickupManager, ScopeID::Root, false);
     54   
     55    /*static*/ const std::string PickupManager::guiName_s = "PickupInventory";
    4756   
    4857    /**
     
    110119    }
    111120   
     121    PickupCarrier* PickupManager::getPawn(void)
     122    {
     123        Pawn* pawn = dynamic_cast<Pawn*>(GUIManager::getInstancePtr()->getPlayer(PickupManager::guiName_s)->getControllableEntity());
     124        if(pawn == NULL)
     125            return NULL;
     126        return dynamic_cast<PickupCarrier*>(pawn);
     127    }
     128   
     129    unsigned int PickupManager::getNumCarrierChildren(PickupCarrier* carrier)
     130    {
     131        return carrier->getNumCarrierChildren();
     132    }
     133           
     134    PickupCarrier* PickupManager::getCarrierChild(unsigned int index, PickupCarrier* carrier)
     135    {
     136        return carrier->getCarrierChild(index);
     137    }
     138   
     139    PickupRepresentation* PickupManager::getPickupRepresentation(unsigned int index, PickupCarrier* carrier)
     140    {
     141        Pickupable* pickup = carrier->getPickup(index);
     142        if(pickup == NULL)
     143            return NULL;
     144       
     145        return this->getRepresentation(pickup->getPickupIdentifier());
     146    }
     147   
     148
     149    unsigned int PickupManager::getNumPickups(PickupCarrier* carrier)
     150    {
     151        return carrier->getNumPickups();
     152    }
     153   
     154    void PickupManager::dropPickup(unsigned int index, PickupCarrier* carrier)
     155    {
     156        Pickupable* pickup = carrier->getPickup(index);
     157        carrier->drop(pickup);
     158    }
     159   
     160    void PickupManager::usePickup(unsigned int index, PickupCarrier* carrier, bool use)
     161    {
     162        Pickupable* pickup = carrier->getPickup(index);
     163        pickup->setUsed(use);
     164    }
     165   
    112166}
  • code/branches/pickup4/src/modules/pickup/PickupManager.h

    r6540 r6632  
    4444#include "core/OrxonoxClass.h"
    4545
    46 namespace orxonox
    47 {
     46namespace orxonox // tolua_export
     47{ // tolua_export
     48
     49    //TODO: Remove after transfer to orxonox/pickup
     50    class PickupCarrier; // tolua_export
    4851
    4952    /**
    5053    @brief
    5154        Manages Pickupables.
    52         In essence has two tasks to fulfill. Firstly it must link Pickupables (through their PickupIdentifiers) and their PickupRepresentations. Secondly it manages the Pickup GUI.
     55        In essence has two tasks to fulfill. Firstly it must link Pickupables (through their PickupIdentifiers) and their PickupRepresentations. Secondly it manages the PickupInventory.
    5356        //TODO: Manage Pickup GUI.
    5457    @author
    5558        Damian 'Mozork' Frick
    5659    */
    57     class _PickupExport PickupManager : public Singleton<PickupManager>, public OrxonoxClass
    58     {
     60    class _PickupExport PickupManager // tolua_export
     61        : public Singleton<PickupManager>, public OrxonoxClass
     62    { // tolua_export
    5963        friend class Singleton<PickupManager>;
    6064       
     
    6367            virtual ~PickupManager();
    6468           
    65             static PickupManager& getInstance() { return Singleton<PickupManager>::getInstance(); }
     69            static PickupManager& getInstance() { return Singleton<PickupManager>::getInstance(); } // tolua_export
    6670           
    6771            bool registerRepresentation(const PickupIdentifier* identifier, PickupRepresentation* representation); //!< Registers a PickupRepresentation together with the PickupIdentifier of the Pickupable the PickupRepresentation represents.
    6872            PickupRepresentation* getRepresentation(const PickupIdentifier* identifier); //!< Get the PickupRepresentation representing the Pickupable with the input PickupIdentifier.
    6973           
     74            // tolua_begin
     75            PickupCarrier* getPawn(void);
     76           
     77            unsigned int getNumCarrierChildren(PickupCarrier* carrier);
     78            PickupCarrier* getCarrierChild(unsigned int index, PickupCarrier* carrier);
     79           
     80            unsigned int getNumPickups(PickupCarrier* carrier);
     81            PickupRepresentation* getPickupRepresentation(unsigned int index, PickupCarrier* carrier);
     82            void dropPickup(unsigned int index, PickupCarrier* carrier);
     83            void usePickup(unsigned int index, PickupCarrier* carrier, bool use);
     84            // tolua_end
     85           
    7086        private:
    7187            static PickupManager* singletonPtr_s;
     88            static const std::string guiName_s;
    7289           
    7390            PickupRepresentation* defaultRepresentation_; //!< The default PickupRepresentation.
    7491            std::map<const PickupIdentifier*, PickupRepresentation*, PickupIdentifierCompare> representations_; //!< Map linking PickupIdentifiers (representing types if Pickupables) and PickupRepresentations.
    7592       
    76     };
     93    }; // tolua_export
    7794   
    78 }
     95} // tolua_export
    7996
    8097#endif // _PickupManager_H__
  • code/branches/pickup4/src/modules/pickup/PickupPrereqs.h

    r6524 r6632  
    6565namespace orxonox
    6666{
    67 
     67   
    6868    class DroppedPickup;
    6969    class Pickup;
  • code/branches/pickup4/src/modules/pickup/PickupRepresentation.cc

    r6540 r6632  
    8686        this->name_ = "Pickup";
    8787        this->spawnerTemplate_ = "";
     88        this->inventoryRepresentation_ = "";
    8889        this->pickup_ = NULL;
    8990    }
     
    100101        XMLPortParam(PickupRepresentation, "description", setDescription, getDescription, xmlelement, mode);
    101102        XMLPortParam(PickupRepresentation, "spawnerTemplate", setSpawnerTemplate, getSpawnerTemplate, xmlelement, mode);
     103        XMLPortParam(PickupRepresentation, "inventoryRepresentation", setInventoryRepresentation, getInventoryRepresentation, xmlelement, mode);
    102104        XMLPortObject(PickupRepresentation, Pickupable, "pickup", setPickup, getPickup, xmlelement, mode);
    103105        XMLPortObject(PickupRepresentation, StaticEntity, "spawner-representation", setSpawnerRepresentation, getSpawnerRepresentationIndex, xmlelement, mode);
  • code/branches/pickup4/src/modules/pickup/PickupRepresentation.h

    r6540 r6632  
    4545#include "core/BaseObject.h"
    4646
    47 namespace orxonox
    48 {
     47namespace orxonox // tolua_export
     48{ // tolua_export
    4949
    5050    /**
     
    5353        They are created through XML and are registered with the PickupManager.
    5454    */
    55     class _PickupExport PickupRepresentation : public BaseObject
    56     {
     55    class _PickupExport PickupRepresentation // tolua_export
     56        : public BaseObject
     57    { // tolua_export
    5758       
    5859        public:
     
    9091                { this->spawnerRepresentation_ = representation; }
    9192            /**
     93            @brief Set the image representing the pickup in the PickupInventory.
     94            @param image A string with the name of the image representing the pickup.
     95            */
     96            inline void setInventoryRepresentation(const std::string& image)
     97                { this->inventoryRepresentation_ = image; }
     98            /**
    9299            @brief Set the Pickupable that is represented by this PickupRepresentation.
    93100            @param pickup A pointer to the Pickupable.
     
    100107            @return Returns the name.
    101108            */
    102             inline const std::string& getName(void)
    103                 { return this->name_; }
     109            inline const std::string& getName(void) { return this->name_; } // tolua_export
    104110            /**
    105111            @brief Get the description of the Pickupable represented by this PickupRepresentation.
    106112            @return Returns the description.
    107113            */
    108             inline const std::string& getDescription(void)
    109                 { return this->description_; }
     114            inline const std::string& getDescription(void) { return this->description_; } // tolua_export
    110115            /**
    111116            @brief Get the name of spawnerTemplate the Pickupable represented by this PickupRepresentation.
     
    121126            inline const StaticEntity* getSpawnerRepresentationIndex(unsigned int index)
    122127                { if(index == 0) return this->spawnerRepresentation_; return NULL; }
     128            /**
     129            @brief Get the name of the image representing the pickup in the PickupInventory.
     130            @return Returns the name of the image as a string.
     131            */
     132            inline const std::string& getInventoryRepresentation(void) { return this->inventoryRepresentation_; } // tolua_export
    123133            /**
    124134            @brief Get the Pickupable represented by this PickupRepresentation.
     
    139149            std::string spawnerTemplate_; //!<  The name of the template of this PickupRepresentation.
    140150            StaticEntity* spawnerRepresentation_; //!< The spawnerRepresentation of this PickupRepresentation.
     151            std::string inventoryRepresentation_; //!< The name of an image representing the pickup in the PickupInventory. TODO: Exact format and placement of image?
    141152           
    142153            Pickupable* pickup_; //!< The Pickupable that is represented by this PickupRepresentation.
    143154           
    144     };
     155    }; // tolua_export
    145156
    146 }
     157} // tolua_export
    147158   
    148159#endif // _PickupRepresentation_H__
Note: See TracChangeset for help on using the changeset viewer.