| 686 | } |
| 687 | |
| 688 | void RenderManager::rrCreateRenderedMovableEntity(RenderedMovableEntity* renderedMovableEntity) |
| 689 | { |
| 690 | std::string meshName = renderedMovableEntity->getMeshName(); |
| 691 | std::string tempString = renderedMovableEntity->getOgreNamePrefix() + renderedMovableEntity->getName(); |
| 692 | |
| 693 | Ogre::SceneNode* node = mRoomSceneNode->createChildSceneNode(tempString + "_node"); |
| 694 | |
| 695 | node->setPosition(renderedMovableEntity->getPosition()); |
| 696 | node->roll(Ogre::Degree(renderedMovableEntity->getRotationAngle())); |
| 697 | Ogre::Entity* ent = nullptr; |
| 698 | if(!meshName.empty()) |
| 699 | { |
| 700 | ent = mSceneManager->createEntity(tempString, meshName + ".mesh"); |
| 701 | node->attachObject(ent); |
| 702 | } |
| 703 | |
| 704 | renderedMovableEntity->setParentSceneNode(node->getParentSceneNode()); |
| 705 | renderedMovableEntity->setEntityNode(node); |
| 706 | |
| 707 | // If it is required, we hide the tile |
| 708 | if((renderedMovableEntity->getHideCoveredTile()) && |
| 709 | (renderedMovableEntity->getOpacity() >= 1.0)) |
| 710 | { |
| 711 | Tile* posTile = renderedMovableEntity->getPositionTile(); |
| 712 | if(posTile == nullptr) |
| 713 | return; |
| 714 | |
| 715 | std::string tileName = posTile->getOgreNamePrefix() + posTile->getName(); |
| 716 | if (!mSceneManager->hasEntity(tileName)) |
| 717 | return; |
| 718 | |
| 719 | Ogre::Entity* entity = mSceneManager->getEntity(tileName); |
| 720 | entity->setVisible(false); |
| 721 | } |
| 722 | |
| 723 | if ((ent != nullptr) && (renderedMovableEntity->getOpacity() < 1.0f)) |
| 724 | setEntityOpacity(ent, renderedMovableEntity->getOpacity()); |
| 725 | } |
| 726 | |
| 727 | void RenderManager::rrDestroyRenderedMovableEntity(RenderedMovableEntity* curRenderedMovableEntity) |
| 728 | { |
no test coverage detected