[Orxonox-commit 7771] r12363 - in code/branches/MouseAPI_FS19: data/levels data/overlays src/modules/MouseAPI
tkuonen at orxonox.net
tkuonen at orxonox.net
Thu May 9 16:04:31 CEST 2019
Author: tkuonen
Date: 2019-05-09 16:04:30 +0200 (Thu, 09 May 2019)
New Revision: 12363
Added:
code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo
Modified:
code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc
Log:
Added MouseCursor
Modified: code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw
===================================================================
--- code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw 2019-05-09 13:53:01 UTC (rev 12362)
+++ code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw 2019-05-09 14:04:30 UTC (rev 12363)
@@ -8,6 +8,8 @@
<?lua
include("stats.oxo")
include("HUDTemplates3.oxo")
+ include("MouseCursor.oxo")
+ include("tetrisHUD.oxo")
include("templates/lodInformation.oxt")
?>
@@ -20,7 +22,7 @@
<templates>
<Template link=lodtemplate_default />
</templates>
-
+
<Scene
ambientlight = "0.8, 0.8, 0.8"
skybox = "Orxonox/Starbox"
@@ -48,7 +50,8 @@
</attached>
</MouseAPIExample>
-
+<!--<MouseAPICursor></MouseAPICursor>
+<MouseCursor></MouseCursor>-->
</Scene>
</Level>
Added: code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo
===================================================================
--- code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo (rev 0)
+++ code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo 2019-05-09 14:04:30 UTC (rev 12363)
@@ -0,0 +1,5 @@
+<Template name="MouseCursor">
+<OverlayGroup name = "MouseCursorGroup" scale = "1, 1">
+ <MouseAPICursor name="cursor" position = "0, 0" size="0.03, 0.03" cursorShape="cursor.png"></MouseAPICursor>
+</OverlayGroup>
+</Template>
Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc 2019-05-09 13:53:01 UTC (rev 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc 2019-05-09 14:04:30 UTC (rev 12363)
@@ -1,5 +1,15 @@
#include "mouseapi.h"
+#if OGRE_VERSION >= 0x010900
+# include <Overlay/OgreOverlayManager.h>
+# include <Overlay/OgrePanelOverlayElement.h>
+#else
+# include <OgreOverlayManager.h>
+# include <OgrePanelOverlayElement.h>
+#endif
+
+#include "util/StringUtils.h"
+
namespace orxonox{
ManageScopedSingleton(MouseAPI, ScopeID::GRAPHICS, false);
@@ -28,6 +38,14 @@
//InputManager::getInstance().getState("game")->
}
//GUIManager::getInstance().showGUI("MouseAPICursor", true);//Display a mouse cursor by displaying a empty menu
+ /*cursor = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+ .createOverlayElement("Panel", "MouseAPI_cursor_" + getUniqueNumberString()));
+ cursor->setMaterialName("Orxonox/RadarMarker");//todo: better material
+ cursor->setPosition(0,0);
+ cursor->setDimensions(0.1,0.1);
+ Ogre::Overlay* overlay = Ogre::OverlayManager::getSingleton().create( "MouseAPI_cursor_" + getUniqueNumberString() );
+ overlay->show();*/
+ //this->overlay_->add2D(this->cursor);
}
}
@@ -83,7 +101,7 @@
if(active)
{
InputManager::getInstance().leaveState("game");//hack: todo: crate 2nd input state with prioritz 98 for cegui(cursor)
- GUIManager::getInstance().showGUI("MouseAPICursor", false);//hack todo: only if gui not shown & evt better if not in mouse mooved
+ //GUIManager::getInstance().showGUI("MouseAPICursor", false);//hack todo: only if gui not shown & evt better if not in mouse mooved
}
}
Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h 2019-05-09 13:53:01 UTC (rev 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h 2019-05-09 14:04:30 UTC (rev 12363)
@@ -95,6 +95,8 @@
// true => MouseAPI has been activated, false => MouseAPI has not been activated
bool active = false;
+ Ogre::PanelOverlayElement* cursor;
+
public:
MouseAPI();
Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc 2019-05-09 13:53:01 UTC (rev 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc 2019-05-09 14:04:30 UTC (rev 12363)
@@ -7,7 +7,39 @@
MouseAPICursor::MouseAPICursor(Context* context):OrxonoxOverlay(context)
{
RegisterObject(MouseAPICursor);
-//TODO: copy from radar overlay
+ cursor = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+ .createOverlayElement("Panel", "MouseAPI_cursor_" + getUniqueNumberString()));
+ cursor->setMaterialName(TextureGenerator::getMaterialName(
+ cursorname, Ogre::ColourValue::White));
+
+ overlay_->add2D(this->cursor);
+ scale(Vector2(0.03,0.03));
+ setVisible(true);
}
+MouseAPICursor::~MouseAPICursor()
+{
+ if(running)
+ MouseAPI::getInstance().deactivate();
}
+
+void MouseAPICursor::XMLPort(ticpp::Element &xmlelement, XMLPort::Mode mode)
+{
+ MouseAPI::getInstance().activate();
+ running = true;
+ SUPER(MouseAPICursor, XMLPort, xmlelement, mode);
+ XMLPortParam(MouseAPICursor, "cursorShape", setCursorName, getCursorName,xmlelement, mode);
+ //XMLPortParam(MouseAPICursor, "cursorColor", setCursorColor, getCursorColor,xmlelement, mode);//TODO: ColoValue::setAsARGB()
+}
+
+void MouseAPICursor::tick(float dt)
+{
+ if(running)
+ {
+ this->cursor->show();
+ this->show();
+ this->setPosition(MouseAPI::getInstance().getMousePosition());
+ }
+}
+
+}
Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h 2019-05-09 13:53:01 UTC (rev 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h 2019-05-09 14:04:30 UTC (rev 12363)
@@ -2,13 +2,47 @@
#define MOUSEAPICURSOR_H
#include <overlays/OrxonoxOverlay.h>
#include "core/CoreIncludes.h"
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayGroup.h"
+#include "mouseapi.h"
+#include "core/XMLPort.h"
+
+#if OGRE_VERSION >= 0x010900
+# include <Overlay/OgreOverlayManager.h>
+# include <Overlay/OgrePanelOverlayElement.h>
+#else
+# include <OgreOverlayManager.h>
+# include <OgrePanelOverlayElement.h>
+#endif
+
+#include "tools/TextureGenerator.h"
+#include "util/StringUtils.h"
+
namespace orxonox{
-class MouseAPICursor: public OrxonoxOverlay
+class MouseAPICursor: public OrxonoxOverlay, public Tickable
{
+private:
+ Ogre::PanelOverlayElement* cursor;
+ bool running = false;
+ std::string cursorname = "cursor.png";
public:
MouseAPICursor(Context* context);
+ ~MouseAPICursor();
+ virtual void tick(float dt) override;
+ virtual void XMLPort(ticpp::Element &xmlelement, XMLPort::Mode mode) override;
+ inline void setCursorName(const std::string& name)
+ {
+ cursorname = name;
+ cursor->setMaterialName(TextureGenerator::getMaterialName(
+ cursorname, Ogre::ColourValue::White));
+ }
+ inline std::string getCursorName(void) const
+ {
+ return cursorname;
+ }
+
};
}
Modified: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc 2019-05-09 13:53:01 UTC (rev 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc 2019-05-09 14:04:30 UTC (rev 12363)
@@ -7,10 +7,12 @@
RegisterObject(MouseGametype);
player_ =nullptr;
+ this->setHUDTemplate("MouseCursor");
+
}
-void MouseGametype::start(){
-
+void MouseGametype::start()
+{
bool temp = this->bForceSpawn_;
this->bForceSpawn_ = true;
@@ -19,6 +21,7 @@
// Reset the variable.
this->bForceSpawn_ = temp;
+
}
void MouseGametype::spawnPlayersIfRequested()
@@ -38,7 +41,6 @@
{
this->player_ = player;
this->players_[player].state_ = PlayerState::Alive;
-
}
}
More information about the Orxonox-commit
mailing list