[Orxonox-commit 7703] r12296 - code/branches/MouseAPI_FS19/src/modules/MouseAPI

tkuonen at orxonox.net tkuonen at orxonox.net
Thu Apr 11 15:27:08 CEST 2019


Author: tkuonen
Date: 2019-04-11 15:27:08 +0200 (Thu, 11 Apr 2019)
New Revision: 12296

Added:
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.h
Modified:
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapiexample.cc
Log:
added MouseGametype


Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt	2019-04-11 13:25:01 UTC (rev 12295)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt	2019-04-11 13:27:08 UTC (rev 12296)
@@ -1,6 +1,7 @@
 SET_SOURCE_FILES(MOUSEAPI_SRC_FILES
   mouseapi.cc
   mouseapiexample.cc
+  mousegametype.cc
 )
 
 

Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapiexample.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapiexample.cc	2019-04-11 13:25:01 UTC (rev 12295)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapiexample.cc	2019-04-11 13:27:08 UTC (rev 12296)
@@ -1,5 +1,8 @@
 #include "mouseapiexample.h"
 #include "gametypes/Gametype.h"
+#include "infos/PlayerInfo.h"
+#include "worldentities/CameraPosition.h"
+#include "worldentities/ControllableEntity.h"
 
 namespace orxonox
 {
@@ -9,9 +12,6 @@
 MouseAPIExample::MouseAPIExample(Context* context) : ControllableEntity(context)
 {
     RegisterObject(MouseAPIExample);
-    //this->getGametype()->getPlayers().begin()->first->getControllableEntity()...
-
-
 }
 
 MouseAPIExample::~MouseAPIExample()
@@ -23,9 +23,11 @@
 
 void MouseAPIExample::testfunction(MouseButtonCode::ByEnum mouse)
 {
-    float randomnumber = (rand()%100 + 1)/100.0;
+    float randomnumber = (rand()%100 + 1)/20.0;
     this->setScale(randomnumber);
     orxout() << "Blah\n";
+    //this->getGametype()->getPlayers().begin()->first->getControllableEntity()->mouseLook();//getCurrentCameraPosition()->setAllowMouseLook(false);
+    //this->getGametype()->getPlayers().begin()->first->stopControl();
 
 }
 
@@ -34,5 +36,8 @@
     SUPER(MouseAPIExample, XMLPort, xmlelement, mode);
     MouseAPI::getInstance().activate();
     MouseAPI::getInstance().addClickableObject(this->getWorldPosition(),10,std::list<MouseButtonCode::ByEnum>{MouseButtonCode::Left},[this](MouseButtonCode::ByEnum mouse){this->testfunction(mouse);});
+    //this->getGametype()->getPlayers().begin()->first->getControllableEntity()->mouseLook();
+
+
 }
 }

Added: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc	                        (rev 0)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc	2019-04-11 13:27:08 UTC (rev 12296)
@@ -0,0 +1,46 @@
+#include "mousegametype.h"
+
+namespace orxonox
+{
+RegisterUnloadableClass(MouseGametype);
+MouseGametype::MouseGametype(Context* context):Gametype(context)
+{
+    RegisterObject(MouseGametype);
+    player_ =nullptr;
+
+}
+void MouseGametype::start(){
+
+    bool temp = this->bForceSpawn_;
+    this->bForceSpawn_ = true;
+
+    // Call start for the parent class.
+    Gametype::start();
+
+    // Reset the variable.
+    this->bForceSpawn_ = temp;
+
+}
+
+void MouseGametype::spawnPlayersIfRequested()
+{
+    // Spawn a human player.
+    for (const auto& mapEntry : this->players_)
+        if (mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_))
+            this->spawnPlayer(mapEntry.first);
+}
+
+
+void MouseGametype::spawnPlayer(PlayerInfo* player)
+{
+    assert(player);
+
+    if(this->player_ == nullptr)
+    {
+        this->player_ = player;
+        this->players_[player].state_ = PlayerState::Alive;
+
+    }
+}
+
+}

Added: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.h	                        (rev 0)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.h	2019-04-11 13:27:08 UTC (rev 12296)
@@ -0,0 +1,22 @@
+#ifndef MOUSEGAMETYPE_H
+#define MOUSEGAMETYPE_H
+#include "gametypes/Gametype.h"
+#include "core/CoreIncludes.h"
+#include "infos/PlayerInfo.h"
+
+namespace orxonox
+{
+
+class MouseGametype: public Gametype
+{
+public:
+    MouseGametype(Context *context);
+    virtual void start() override;
+    virtual void spawnPlayer(PlayerInfo* player) override;
+    virtual void spawnPlayersIfRequested()override;
+private:
+    PlayerInfo* player_ ;
+};
+
+}
+#endif // MOUSEGAMETYPE_H



More information about the Orxonox-commit mailing list