Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 26, 2009, 10:06:54 AM (16 years ago)
Author:
dafrick
Message:

Some Documenting and bug fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/pickup3/src/modules/pickup/DroppedItem.cc

    r6419 r6421  
    2929#include "DroppedItem.h"
    3030
    31 #include "util/Math.h"
    3231#include "core/CoreIncludes.h"
    33 #include "core/Executor.h"
    34 #include "BaseItem.h"
    35 #include "graphics/Billboard.h"
     32#include "interfaces/Pickupable.h"
    3633#include "graphics/Model.h"
    37 #include "worldentities/pawns/Pawn.h"
    3834
    3935namespace orxonox
    4036{
    41     CreateFactory(DroppedItem); //TODO: This isn't needed, is it?
    42 
    4337    /**
    4438    @brief
     
    4741    DroppedItem::DroppedItem(BaseObject* creator) : PickupSpawner(creator)
    4842    {
    49         RegisterObject(DroppedItem);
     43        this->initialize();
    5044    }
    5145
    52     DroppedItem::DroppedItem(BaseObject* creator, BaseItem* item, float triggerDistance, float respawnTime, int maxSpawnedItems) : PickupSpawner(creator, item, triggerDistance, respawnTime, maxSpawnedItems)
     46    DroppedItem::DroppedItem(BaseObject* creator, Pickupable* item, const Vector3& position, float triggerDistance) : PickupSpawner(creator, item, triggerDistance, 0, 1)
     47    {   
     48        this->initialize();
     49       
     50        this->createDrop(position);
     51    }
     52   
     53    void DroppedItem::initialize(void)
    5354    {
    5455        RegisterObject(DroppedItem);
    55         this->item_ = item;
     56       
     57        this->gotPickedUp_ = false;
    5658    }
    5759
     
    6264    DroppedItem::~DroppedItem()
    6365    {
    64        
     66        if(this->gotPickedUp_ && this->pickup_ != NULL)
     67        {
     68            this->pickup_ = NULL;
     69        }
    6570    }
    6671
    67     BaseItem* DroppedItem::getItem(void)
     72    Pickupable* DroppedItem::getPickup(void)
    6873    {
    69         return this->item_;
     74        return this->pickup_;
     75    }
     76   
     77    void DroppedItem::createDrop(const Vector3& position)
     78    {
     79        this->setPosition(position);
     80       
     81        //TODO: Make this work.
     82        //const Model& model = PickupManager::getModel(item->getPickupIdentifier());
     83        //this->attach(model);
    7084    }
    7185
    72     /**
    73     @brief
    74        
    75     */
     86//TODO: Remove.
    7687    //TODO: Comment.
    7788    //Each pickup should have a XML template where the Model and Billboard, and so on, is specified.
    78     /*static*/ DroppedItem* DroppedItem::createDefaultDrop(BaseItem* item, const Vector3& position, const ColourValue& flareColour, float timeToLive)
    79     {
    80         //TODO: triggerDistance?
    81         float triggerDistance = 20.0;
    82         DroppedItem* droppedItem = new DroppedItem(item, item, triggerDistance, 0, 1);
    83        
    84         //TODO: Do this somehwere else?
    85         Model* model = new Model(item);
    86         Billboard* billboard = new Billboard(item);
     89//    /*static*/ DroppedItem* DroppedItem::createDefaultDrop(BaseItem* item, const Vector3& position, const ColourValue& flareColour, float timeToLive)
     90//     {
     91//         //TODO: triggerDistance?
     92//         float triggerDistance = 20.0;
     93//         DroppedItem* droppedItem = new DroppedItem(item, item, triggerDistance, 0, 1);
     94//         
     95//         //TODO: Do this somehwere else?
     96//         Model* model = new Model(item);
     97//         Billboard* billboard = new Billboard(item);
     98//
     99//         model->setMeshSource("sphere.mesh");
     100//         model->setScale(3.0f);
     101//
     102//         billboard->setMaterial("Examples/Flare");
     103//         billboard->setColour(flareColour);
     104//         billboard->setScale(0.5f);
     105//
     106//         droppedItem->setPosition(position);
     107//         droppedItem->attach(model);
     108//         droppedItem->attach(billboard);
     109//
     110//         COUT(3) << "Created DroppedItem for '" << item->getPickupIdentifier() << "' at (" << position.x << "," << position.y << "," << position.z << ")." << std::endl;
     111//
     112//         return droppedItem;
     113//     }
    87114
    88         model->setMeshSource("sphere.mesh");
    89         model->setScale(3.0f);
    90 
    91         billboard->setMaterial("Examples/Flare");
    92         billboard->setColour(flareColour);
    93         billboard->setScale(0.5f);
    94 
    95         droppedItem->setPosition(position);
    96         droppedItem->attach(model);
    97         droppedItem->attach(billboard);
    98 
    99         COUT(3) << "Created DroppedItem for '" << item->getPickupIdentifier() << "' at (" << position.x << ',' << position.y << ',' << position.z << ")." << std::endl;
    100 
    101         return droppedItem;
    102     }
    103 
    104     /**
    105     @brief
    106 
    107     */
    108115    //TODO: See one function above.
    109     DroppedItem* DroppedItem::createDefaultDrop(BaseItem* item, Pawn* pawn, const ColourValue& flareColour, float timeToLive)
    110     {
    111         Vector3 after = pawn->getPosition() + pawn->getOrientation() * Vector3(0.0f, 0.0f, 50.0f);
    112         return DroppedItem::createDefaultDrop(item, after, flareColour, timeToLive);
    113     }
     116//     DroppedItem* DroppedItem::createDefaultDrop(BaseItem* item, Pawn* pawn, const ColourValue& flareColour, float timeToLive)
     117//     {
     118//         Vector3 after = pawn->getPosition() + pawn->getOrientation() * Vector3(0.0f, 0.0f, 50.0f);
     119//         return DroppedItem::createDefaultDrop(item, after, flareColour, timeToLive);
     120//     }
    114121}
Note: See TracChangeset for help on using the changeset viewer.