Changeset 11314
- Timestamp:
- Nov 28, 2016, 7:21:35 PM (8 years ago)
- Location:
- code/branches/HUD_HS16/src/modules
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc
r11305 r11314 52 52 overlayElement_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "HUDPickupItem" + getUniqueNumberString())); 53 53 54 overlayElement_->setPosition(0.0f,0.0f); 55 overlayElement_->setDimensions(0.5f,0.5f); 56 this->background_->addChild(overlayElement_); 54 overlayElement_->setDimensions(0.1f,0.1f); 55 57 56 } 58 57 … … 65 64 } 66 65 67 void HUDPickupItem::initializeMaterial(const std::string& s) 68 { 66 void HUDPickupItem::initializeMaterial(const std::string& s, float x, float y) 67 { 68 orxout() << "material name is: " << s << endl; 69 69 overlayElement_->setMaterialName(s); 70 } 71 72 void HUDPickupItem::printHello() 73 { 74 orxout() << "lets say hello" << endl; 70 overlayElement_->setPosition(x, y); 71 overlayElement_->show(); 72 this->background_->addChild(overlayElement_); 73 } 74 75 void HUDPickupItem::hideMe() 76 { 77 orxout() << this << " has called hide" << endl; 78 overlayElement_->hide(); 79 overlayElement_->_update(); 80 orxout() << "after the call the element is visible: " << overlayElement_->isVisible() << endl; 75 81 } 76 82 -
code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.h
r11305 r11314 36 36 37 37 // void setPickup(Pickup* pickup); 38 void initializeMaterial(const std::string& s );39 void printHello();38 void initializeMaterial(const std::string& s, float x, float y); 39 void hideMe(); 40 40 41 41 private: -
code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc
r11305 r11314 53 53 orxout() << "hello here is the HUDPickupSystem" << endl; 54 54 this->background_->addChild(overlayElement_); 55 56 PickupManager::getInstance().setPickupSystem(this);57 55 } 58 56 … … 69 67 void HUDPickupSystem::updatePickupList(std::vector<Pickupable*> picks) 70 68 { 71 for(Pickupable* p : picks) 69 int i=0; 70 const float offsetX = 0.32f; 71 float offsetY = 0.77f; 72 const float x = 0.1f; 73 74 orxout() << "size: " << picks.size() << endl; 75 76 if(picks.size()>0) 72 77 { 73 HUDPickupItem* item = new HUDPickupItem(this->getContext()); 74 item->initializeMaterial(((Pickup*)p)->getRepresentationName()); 75 item->printHello(); 78 79 for(Pickupable* p : picks) 80 { 81 // orxout() << "actual pick is: " << p << endl; 82 if(i%4==0) 83 { 84 offsetY+=0.04f; 85 i=0; 86 } 87 HUDPickupItem* item = new HUDPickupItem(this->getContext()); 88 // item->initializeMaterial(((Pickup*)p)->getRepresentationName(), offsetX+i*x, offsetY); 89 if(i%2==0) 90 item->initializeMaterial("Shield", offsetX+i*x, offsetY); 91 else 92 item->initializeMaterial("ArrowUp", offsetX+i*x, offsetY); 93 item->setOverlayGroup(this->getOverlayGroup()); 94 this->picks[p] = item; 95 ++i; 96 } 76 97 } 77 98 } … … 79 100 void HUDPickupSystem::createPickupList() 80 101 { 81 82 102 } 103 104 void HUDPickupSystem::removePickup(Pickupable* pickup) 105 { 106 HUDPickupItem* item = this->picks.find(pickup)->second; 107 orxout() << "removePickup: pickup= " << pickup << " item= " << item << endl; 108 assert(item); 109 item->setOverlayGroup(nullptr); 110 item->hideMe(); 111 overlayElement_->_update(); 112 } 83 113 84 114 void HUDPickupSystem::destroyAll() 85 115 { 86 116 this->background_->removeChild(overlayElement_->getName()); 87 117 } 88 118 } -
code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h
r11305 r11314 63 63 // virtual void positionChanged() override; 64 64 // virtual void sizeChanged() override; 65 void updatePickupList(std::vector<Pickupable*> picks); 65 void updatePickupList(std::vector<Pickupable*> picks); 66 void createPickupList(); 67 void removePickup(Pickupable* pickup); 66 68 private: 67 void createPickupList();69 68 70 void destroyAll(); 71 72 std::map<Pickupable*, HUDPickupItem*> picks; 69 73 70 74 Ogre::PanelOverlayElement* overlayElement_; -
code/branches/HUD_HS16/src/modules/pickup/CMakeLists.txt
r9348 r11314 19 19 PickupPrecompiledHeaders.h 20 20 LINK_LIBRARIES 21 overlays 21 22 orxonox 22 23 SOURCE_FILES ${PICKUP_SRC_FILES} -
code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc
r11305 r11314 83 83 } 84 84 85 void PickupManager::setPickupSystem(HUDPickupSystem* system)86 {87 pickupSystem=system;88 }89 90 85 /** 91 86 @brief … … 271 266 assert(pickup); 272 267 268 if(!pickupSystem) 269 { 270 for (HUDPickupSystem* hud : ObjectList<HUDPickupSystem>()) 271 pickupSystem = hud; 272 } 273 assert(pickupSystem); //pickupSystem HAS to be there! 274 273 275 if(!GameMode::isMaster()) // If this is neither standalone nor the server. 274 276 return; … … 299 301 this->pickups_[index] = pickup; 300 302 301 //TODO 302 std::vector<Pickupable*> picks; 303 304 PickupManager& manager = PickupManager::getInstance(); 305 306 Pickupable* pickup = nullptr; 307 308 for(uint32_t i = 0; i!=10; i++) 309 { 310 pickup=manager.pickups_.find(i)->second; 311 picks.push_back(pickup); 312 } 313 // pickupSystem->updatePickupList(picks); 303 orxout() << "the pickup is: " << pickup << endl; 304 305 this->picks.push_back(pickup); 306 307 pickupSystem->updatePickupList(picks); 314 308 315 309 } … … 320 314 index = it->second; 321 315 322 323 316 this->indexes_.erase(pickup); 324 317 this->pickups_.find(index)->second=nullptr; //set to null, so that can be identified as free slot by getPickupIndex() 318 319 320 this->picks.erase(std::remove(this->picks.begin(), this->picks.end(), pickup), this->picks.end()); //remove pickup from vector 321 322 pickupSystem->removePickup(pickup); 323 pickupSystem->updatePickupList(picks); 325 324 } 326 325 -
code/branches/HUD_HS16/src/modules/pickup/PickupManager.h
r11305 r11314 42 42 43 43 #include "PickupRepresentation.h" 44 44 #include "interfaces/Pickupable.h" 45 45 #include "util/Singleton.h" 46 46 #include "interfaces/PickupListener.h" … … 153 153 private: 154 154 HUDPickupSystem* pickupSystem; 155 std::vector<Pickupable*> picks; 156 155 157 static PickupManager* singletonPtr_s; 156 158 static const std::string guiName_s; //!< The name of the PickupInventory
Note: See TracChangeset
for help on using the changeset viewer.