Changeset 11176 for code/trunk/src/orxonox/worldentities
- Timestamp:
- Apr 28, 2016, 3:45:32 PM (9 years ago)
- Location:
- code/trunk/src/orxonox/worldentities/pawns
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/orxonox/worldentities/pawns/Pawn.cc
r11099 r11176 49 49 #include "weaponsystem/Munition.h" 50 50 #include "sound/WorldSound.h" 51 #include "core/object/ObjectListIterator.h" 51 52 52 53 #include "controllers/FormationController.h" … … 55 56 { 56 57 RegisterClass(Pawn); 58 59 SetConsoleCommand("Pawn", "debugDrawWeapons", &Pawn::consoleCommand_debugDrawWeapons).addShortcut(); 57 60 58 61 Pawn::Pawn(Context* context) … … 168 171 { 169 172 registerVariable(this->bAlive_, VariableDirection::ToClient); 173 registerVariable(this->bVulnerable_, VariableDirection::ToClient); 170 174 registerVariable(this->health_, VariableDirection::ToClient); 171 175 registerVariable(this->maxHealth_, VariableDirection::ToClient); … … 592 596 return BLANKSTRING; 593 597 } 598 599 void Pawn::drawWeapons(bool bDraw) 600 { 601 if (bDraw) 602 { 603 std::vector<WeaponSlot*> weaponSlots = weaponSystem_->getAllWeaponSlots(); 604 int numWeaponSlots = weaponSlots.size(); 605 Vector3 slotPosition = Vector3::ZERO; 606 Quaternion slotOrientation = Quaternion::IDENTITY; 607 Model* slotModel = nullptr; 608 609 for (int i = 0; i < numWeaponSlots; ++i) 610 { 611 slotPosition = weaponSlots.at(i)->getPosition(); 612 slotOrientation = weaponSlots.at(i)->getOrientation(); 613 slotModel = new Model(this->getContext()); 614 slotModel->setMeshSource("Coordinates.mesh"); 615 slotModel->setScale(3.0f); 616 slotModel->setOrientation(slotOrientation); 617 slotModel->setPosition(slotPosition); 618 619 this->attach(slotModel); 620 debugWeaponSlotModels_.push_back(slotModel); 621 } 622 } 623 else 624 { 625 // delete all debug models 626 for(Model* model : debugWeaponSlotModels_) 627 { 628 model->destroy(); 629 } 630 debugWeaponSlotModels_.clear(); 631 } 632 } 633 634 /*static*/ void Pawn::consoleCommand_debugDrawWeapons(bool bDraw) 635 { 636 if (bDraw) 637 { 638 orxout() << "WeaponSlot visualization enabled." << endl; 639 } 640 else 641 { 642 orxout() << "WeaponSlot visualization disabled." << endl; 643 } 644 645 ObjectList<Pawn> pawnList; 646 for (ObjectListIterator<Pawn> it = pawnList.begin(); it != pawnList.end(); ++it) 647 { 648 it->drawWeapons(bDraw); 649 } 650 } 594 651 } -
code/trunk/src/orxonox/worldentities/pawns/Pawn.h
r11071 r11176 218 218 { return this->weaponSystem_; } 219 219 220 static void consoleCommand_debugDrawWeapons(bool bDraw); 221 220 222 protected: 221 223 virtual void preDestroy() override; … … 233 235 234 236 bool bAlive_; 235 bool bVulnerable_; ///< If false the pawn may not ged damaged237 bool bVulnerable_; ///< If this is false, then the pawn may not take damage 236 238 237 239 virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const override … … 269 271 inline void setWeaponSystem(WeaponSystem* weaponsystem) 270 272 { this->weaponSystem_ = weaponsystem; } 273 void drawWeapons(bool bDraw); 271 274 272 275 Vector3 aimPosition_; 273 276 274 277 WorldSound* explosionSound_; // TODO: Does this really belong here? Maybe move it to BigExplosion? 278 279 std::vector<Model*> debugWeaponSlotModels_; 275 280 276 281 }; // tolua_export
Note: See TracChangeset
for help on using the changeset viewer.