Index: branches/hud/src/world_entities/creatures/fps_player.cc
===================================================================
--- branches/hud/src/world_entities/creatures/fps_player.cc	(revision 10654)
+++ branches/hud/src/world_entities/creatures/fps_player.cc	(revision 10685)
@@ -20,4 +20,5 @@
 #include "state.h"
 #include "tools/camera.h"
+#include "player.h"
 
 #include "src/lib/util/loading/factory.h"
@@ -52,4 +53,5 @@
 			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
 			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
+			    ->addMethod("displayHUDText", Executor1<FPSPlayer, lua_State*, const std::string&>(&FPSPlayer::displayHUDText))
                        );
 
@@ -352,5 +354,4 @@
   {
     this->getWeaponManager().fire();
-    PRINTF(0)("Crosshair at position: %f, %f, %f\n", this->getWeaponManager().getFixedTarget()->getAbsCoor().x, this->getWeaponManager().getFixedTarget()->getAbsCoor().y, this->getWeaponManager().getFixedTarget()->getAbsCoor().z);
   }
 
@@ -604,2 +605,6 @@
 }
 
+void FPSPlayer::displayHUDText( const std::string& message )
+{
+	State::getPlayer()->hud().notifyUser(message);
+}
Index: branches/hud/src/world_entities/creatures/fps_player.h
===================================================================
--- branches/hud/src/world_entities/creatures/fps_player.h	(revision 10654)
+++ branches/hud/src/world_entities/creatures/fps_player.h	(revision 10685)
@@ -36,4 +36,6 @@
     virtual void tick(float time);
     virtual void draw() const;
+    
+    void displayHUDText( const std::string& message );
 
 
Index: branches/hud/src/world_entities/player.cc
===================================================================
--- branches/hud/src/world_entities/player.cc	(revision 10654)
+++ branches/hud/src/world_entities/player.cc	(revision 10685)
@@ -19,4 +19,5 @@
 
 #include "event_handler.h"
+#include "fps_player.h"
 
 #include "state.h"
@@ -74,9 +75,19 @@
     PRINTF(4)("Enter new Playable\n");
     this->playable = playable;
-    this->_hud.setArmorWidget(this->playable->getHealthWidget());
-    if (dynamic_cast<SpaceShip*>(this->playable) != 0)
+    
+    if( playable->isA(FpsPlayer::staticClassID()) )
+    {
+    	this->_hud.setMod(Hud::Playmode FirstPerson);
+    	this->_hud.setHealthWidget(this->playable->getHealthWidget());
+    }
+    else
+    {
+    	this->_hud.setMode(Hud::Playmode Full3D);
+    	this->_hud.setHealthWidget(this->playable->getHealthWidget());
+    }
+    /*if (dynamic_cast<SpaceShip*>(this->playable) != 0)
       this->_hud.setWeaponManager(&this->playable->getWeaponManager(), &dynamic_cast<SpaceShip*>(this->playable)->getWeaponManagerSecondary());
     else
-      this->_hud.setWeaponManager(&this->playable->getWeaponManager());
+      this->_hud.setWeaponManager(&this->playable->getWeaponManager());*/
 
     this->playable->setPlayer(this);
Index: branches/hud/src/world_entities/world_entity.cc
===================================================================
--- branches/hud/src/world_entities/world_entity.cc	(revision 10654)
+++ branches/hud/src/world_entities/world_entity.cc	(revision 10685)
@@ -813,4 +813,24 @@
 }
 
+/**
+ * @brief creates the ImplantWidget
+ *
+ * since not all entities need an ImpantWidget, it is only created on request.
+ */
+void WorldEntity::createImplantWidget()
+{
+  if (this->implantWidget == NULL)
+  {
+    this->implantWidget = new OrxGui::GLGuiEnergyWidgetVertical();
+    //this->impantWidget->setDisplayedName("Implant");
+    //this->impantWidget->setSize2D(100,20);
+    //this->impantWidget->setAbsCoor2D(100,200);
+
+    //this->updateImplantWidget();
+  }
+  else
+    PRINTF(3)("Allready created the ImlpantWidget for %s::%s\n", this->getClassCName(), this->getCName());
+}
+
 void WorldEntity::increaseHealthMax(float increaseHealth)
 {
@@ -824,4 +844,11 @@
   this->createHealthWidget();
   return this->healthWidget;
+}
+
+
+OrxGui::GLGuiWidget* WorldEntity::getImplantWidget()
+{
+  this->createImplantWidget();
+  return this->implantWidget;
 }
 
Index: branches/hud/src/world_entities/world_entity.h
===================================================================
--- branches/hud/src/world_entities/world_entity.h	(revision 10654)
+++ branches/hud/src/world_entities/world_entity.h	(revision 10685)
@@ -161,4 +161,5 @@
   void increaseHealthMax(float increaseHealth);
   OrxGui::GLGuiWidget* getHealthWidget();
+  OrxGui::GLGuiWidget* getImplantWidget();
   bool hasHealthWidget() const { return this->healthWidget != NULL; };
 
@@ -187,4 +188,5 @@
   void setHealthMax(float healthMax);
   void createHealthWidget();
+  void createImplantWidget();
     //  CharacterAttributes*    charAttr;         //!< the character attributes of a world_entity
 
@@ -206,9 +208,11 @@
 
 private:
-  /// TODO maybe we will move the following three entries and the corresponding functions to Playable AND NPC
+  /// TODO maybe we will move the following eight entries and the corresponding functions to Playable AND NPC
   float                   damage;             //!< the damage dealt to other objects by colliding.
   float                   health;             //!< The Energy of this Entity, if the Entity has any energy at all.
-  float                   healthMax;          //!< The Maximal energy this entity can take.
+  float                   healthMax;          //!< The Maximal energy this entity can take. 
+  float						implantEnergy;		//!< energy of implants
   OrxGui::GLGuiEnergyWidgetVertical* healthWidget;    //!< The Slider (if wanted).
+  OrxGui::GLGuiEnergyWidgetVertical* implantWidget; 
 
   std::vector<Model*>     models;             //!< The model that should be loaded for this entity.
@@ -247,4 +251,6 @@
   float                   healthMax_write;
   int                     healthMax_handle;
+  
+
 
 
