Player.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include <Atomic/IO/Log.h>
  2. #include <Atomic/Resource/ResourceCache.h>
  3. #include <Atomic/Graphics/Renderer.h>
  4. #include <Atomic/Graphics/Camera.h>
  5. #include "Player.h"
  6. namespace AtomicPlayer
  7. {
  8. Player::Player(Context* context) :
  9. Object(context)
  10. {
  11. viewport_ = new Viewport(context_);
  12. GetSubsystem<Renderer>()->SetViewport(0, viewport_);
  13. }
  14. Player::~Player()
  15. {
  16. }
  17. Scene* Player::LoadScene(const String& filename, Camera *camera)
  18. {
  19. ResourceCache* cache = GetSubsystem<ResourceCache>();
  20. SharedPtr<File> file = cache->GetFile(filename);
  21. if (!file->IsOpen())
  22. {
  23. return 0;
  24. }
  25. Scene* scene = new Scene(context_);
  26. if (!scene->LoadXML(*file))
  27. {
  28. scene->ReleaseRef();
  29. return 0;
  30. }
  31. if(!camera)
  32. {
  33. PODVector<Node*> cameraNodes;
  34. scene->GetChildrenWithComponent(cameraNodes, Camera::GetTypeStatic(), true);
  35. if (cameraNodes.Size())
  36. {
  37. camera = cameraNodes[0]->GetComponent<Camera>();
  38. }
  39. }
  40. viewport_->SetScene(scene);
  41. if (camera)
  42. viewport_->SetCamera(camera);
  43. return scene;
  44. }
  45. void Player::SayHi()
  46. {
  47. LOGINFO("The Player says Hi!");
  48. }
  49. }