Changeset 6421 for code/branches/pickup3/src/modules/pickup/DroppedItem.cc
- Timestamp:
- Dec 26, 2009, 10:06:54 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/pickup3/src/modules/pickup/DroppedItem.cc
r6419 r6421 29 29 #include "DroppedItem.h" 30 30 31 #include "util/Math.h"32 31 #include "core/CoreIncludes.h" 33 #include "core/Executor.h" 34 #include "BaseItem.h" 35 #include "graphics/Billboard.h" 32 #include "interfaces/Pickupable.h" 36 33 #include "graphics/Model.h" 37 #include "worldentities/pawns/Pawn.h"38 34 39 35 namespace orxonox 40 36 { 41 CreateFactory(DroppedItem); //TODO: This isn't needed, is it?42 43 37 /** 44 38 @brief … … 47 41 DroppedItem::DroppedItem(BaseObject* creator) : PickupSpawner(creator) 48 42 { 49 RegisterObject(DroppedItem);43 this->initialize(); 50 44 } 51 45 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) 53 54 { 54 55 RegisterObject(DroppedItem); 55 this->item_ = item; 56 57 this->gotPickedUp_ = false; 56 58 } 57 59 … … 62 64 DroppedItem::~DroppedItem() 63 65 { 64 66 if(this->gotPickedUp_ && this->pickup_ != NULL) 67 { 68 this->pickup_ = NULL; 69 } 65 70 } 66 71 67 BaseItem* DroppedItem::getItem(void)72 Pickupable* DroppedItem::getPickup(void) 68 73 { 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); 70 84 } 71 85 72 /** 73 @brief 74 75 */ 86 //TODO: Remove. 76 87 //TODO: Comment. 77 88 //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 // } 87 114 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 @brief106 107 */108 115 //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 // } 114 121 }
Note: See TracChangeset
for help on using the changeset viewer.