Index: /code/branches/FICN/src/orxonox/CMakeLists.txt
===================================================================
--- /code/branches/FICN/src/orxonox/CMakeLists.txt	(revision 632)
+++ /code/branches/FICN/src/orxonox/CMakeLists.txt	(revision 633)
@@ -34,4 +34,6 @@
     objects/SpaceShip.cc
     objects/NPC.cc
+    objects/BillboardSet.cc
+    objects/Light.cc
   )
 ELSE(WIN32)
Index: /code/branches/FICN/src/orxonox/objects/BillboardSet.cc
===================================================================
--- /code/branches/FICN/src/orxonox/objects/BillboardSet.cc	(revision 633)
+++ /code/branches/FICN/src/orxonox/objects/BillboardSet.cc	(revision 633)
@@ -0,0 +1,31 @@
+#include <sstream>
+
+#include "BillboardSet.h"
+#include "../Orxonox.h"
+
+namespace orxonox
+{
+    unsigned int BillboardSet::billboardSetCounter_s = 0;
+
+    BillboardSet::BillboardSet()
+    {
+        this->billboardSet_ = 0;
+    }
+
+    void BillboardSet::setBillboardSet(const std::string& file, const Ogre::ColourValue& colour, int count, const Ogre::Vector3& position)
+    {
+        std::ostringstream name;
+        name << (BillboardSet::billboardSetCounter_s++);
+        this->billboardSet_ = Orxonox::getSingleton()->getSceneManager()->createBillboardSet("Billboard" + name.str(), count);
+        this->billboardSet_->createBillboard(position, colour);
+        this->billboardSet_->setMaterialName(file);
+        std::cout << "########### created billboard set" << std::endl;
+    }
+
+    BillboardSet::~BillboardSet()
+    {
+        std::cout << "########### deleted billboard set" << std::endl;
+        if (this->billboardSet_)
+            Orxonox::getSingleton()->getSceneManager()->destroyBillboardSet(this->billboardSet_);
+    }
+}
Index: /code/branches/FICN/src/orxonox/objects/BillboardSet.h
===================================================================
--- /code/branches/FICN/src/orxonox/objects/BillboardSet.h	(revision 633)
+++ /code/branches/FICN/src/orxonox/objects/BillboardSet.h	(revision 633)
@@ -0,0 +1,29 @@
+#include <string>
+
+#include "OgreBillboardSet.h"
+
+#ifndef _BillboardSet_H__
+#define _BillboardSet_H__
+
+namespace orxonox
+{
+    class BillboardSet
+    {
+        public:
+            BillboardSet();
+            ~BillboardSet();
+            void setBillboardSet(const std::string& file, const Ogre::ColourValue& colour = Ogre::ColourValue(1.0, 1.0, 1.0), int count = 1, const Ogre::Vector3& position = Ogre::Vector3::ZERO);
+
+            inline Ogre::BillboardSet* getBillboardSet()
+                { return this->billboardSet_; }
+
+            inline const std::string& getName() const
+                { return this->billboardSet_->getName(); }
+
+        private:
+            static unsigned int billboardSetCounter_s;
+            Ogre::BillboardSet* billboardSet_;
+    };
+}
+
+#endif
Index: /code/branches/FICN/src/orxonox/objects/CMakeLists.txt
===================================================================
--- /code/branches/FICN/src/orxonox/objects/CMakeLists.txt	(revision 632)
+++ /code/branches/FICN/src/orxonox/objects/CMakeLists.txt	(revision 633)
@@ -18,4 +18,6 @@
   SpaceShip.cc
   NPC.cc
+  BillboardSet.cc
+  Light.cc
 )
 
Index: /code/branches/FICN/src/orxonox/objects/Light.cc
===================================================================
--- /code/branches/FICN/src/orxonox/objects/Light.cc	(revision 633)
+++ /code/branches/FICN/src/orxonox/objects/Light.cc	(revision 633)
@@ -0,0 +1,30 @@
+#include <sstream>
+
+#include "Light.h"
+#include "../Orxonox.h"
+
+namespace orxonox
+{
+    unsigned int Light::lightCounter_s = 0;
+
+    Light::Light()
+    {
+        this->light_ = 0;
+    }
+
+    void Light::setLight(Ogre::Light::LightTypes type, const Ogre::ColourValue& diffuse, const Ogre::ColourValue& specular)
+    {
+        std::ostringstream name;
+        name << (Light::lightCounter_s++);
+        this->light_ = Orxonox::getSingleton()->getSceneManager()->createLight("Light" + name.str());
+        this->light_->setType(type);
+        this->light_->setDiffuseColour(diffuse);
+        this->light_->setSpecularColour(specular);
+    }
+
+    Light::~Light()
+    {
+        if (this->light_)
+            Orxonox::getSingleton()->getSceneManager()->destroyLight(this->light_);
+    }
+}
Index: /code/branches/FICN/src/orxonox/objects/Light.h
===================================================================
--- /code/branches/FICN/src/orxonox/objects/Light.h	(revision 633)
+++ /code/branches/FICN/src/orxonox/objects/Light.h	(revision 633)
@@ -0,0 +1,30 @@
+#include <string>
+
+#include "OgreLight.h"
+#include "OgreColourValue.h"
+
+#ifndef _Light_H__
+#define _Light_H__
+
+namespace orxonox
+{
+    class Light
+    {
+        public:
+            Light();
+            ~Light();
+            void setLight(Ogre::Light::LightTypes type = Ogre::Light::LT_POINT, const Ogre::ColourValue& diffuse = Ogre::ColourValue(1.0, 1.0, 1.0), const Ogre::ColourValue& specular = Ogre::ColourValue(1.0, 1.0, 1.0));
+
+            inline Ogre::Light* getLight()
+                { return this->light_; }
+
+            inline const std::string& getName() const
+                { return this->light_->getName(); }
+
+        private:
+            static unsigned int lightCounter_s;
+            Ogre::Light* light_;
+    };
+}
+
+#endif
Index: /code/branches/FICN/src/orxonox/objects/Mesh.cc
===================================================================
--- /code/branches/FICN/src/orxonox/objects/Mesh.cc	(revision 632)
+++ /code/branches/FICN/src/orxonox/objects/Mesh.cc	(revision 633)
@@ -17,5 +17,5 @@
         std::ostringstream name;
         name << (Mesh::meshCounter_s++);
-        this->entity_ = Orxonox::getSingleton()->getSceneManager()->createEntity("Mesh" + name.str() + "gugus", file);
+        this->entity_ = Orxonox::getSingleton()->getSceneManager()->createEntity("Mesh" + name.str(), file);
     }
 
Index: /code/branches/FICN/src/orxonox/objects/SpaceShip.cc
===================================================================
--- /code/branches/FICN/src/orxonox/objects/SpaceShip.cc	(revision 632)
+++ /code/branches/FICN/src/orxonox/objects/SpaceShip.cc	(revision 633)
@@ -48,6 +48,8 @@
         this->setMouseEventCallback_ = false;
 
-        this->w = NULL;
-        this->tt = NULL;
+        this->tt_ = 0;
+        this->redNode_ = 0;
+        this->greenNode_ = 0;
+        this->blinkTime_ = 0;
 
         this->moveForward_ = 0;
@@ -91,8 +93,6 @@
     SpaceShip::~SpaceShip()
     {
-        if (w)
-            delete w;
-        if (tt)
-            delete tt;
+        if (tt_)
+            delete tt_;
     }
 
@@ -109,41 +109,41 @@
         Model::loadParams(xmlElem);
 
-        w = new particle::ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"schuss" + this->getName(),"Orxonox/schuss");
-        w->getParticleSystem()->setParameter("local_space","true");
-        w->newEmitter();
+
+        // START CREATING THRUSTER
+        tt_ = new particle::ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"twinthruster" + this->getName(),"Orxonox/engineglow");
+        tt_->getParticleSystem()->setParameter("local_space","true");
+        tt_->newEmitter();
 /*
-        w->setDirection(Vector3(0,0,1));
-        w->setPositionOfEmitter(0, Vector3(10,10,0));
-        w->setPositionOfEmitter(1, Vector3(-10,10,0));
+        tt_->setDirection(Vector3(0,0,1));
+        tt_->setPositionOfEmitter(0, Vector3(20,-1,-15));
+        tt_->setPositionOfEmitter(1, Vector3(-20,-1,-15));
 */
-        w->setDirection(Vector3(1,0,0));
-        w->setPositionOfEmitter(0, Vector3(0,10,10));
-        w->setPositionOfEmitter(1, Vector3(0,-10,10));
-
-        emitterRate_ = w->getRate();
-
-        Ogre::SceneNode* node1 = this->getNode()->createChildSceneNode(this->getName() + "particle1");
-        node1->setInheritScale(false);
-        w->addToSceneNode(node1);
-
-
-
-        tt = new particle::ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"twinthruster" + this->getName(),"Orxonox/engineglow");
-        tt->getParticleSystem()->setParameter("local_space","true");
-        tt->newEmitter();
-/*
-        tt->setDirection(Vector3(0,0,1));
-        tt->setPositionOfEmitter(0, Vector3(20,-1,-15));
-        tt->setPositionOfEmitter(1, Vector3(-20,-1,-15));
-*/
-        tt->setDirection(Vector3(-1,0,0));
-        tt->setPositionOfEmitter(0, Vector3(-15,20,-1));
-        tt->setPositionOfEmitter(1, Vector3(-15,-20,-1));
-        tt->setVelocity(50);
+        tt_->setDirection(Vector3(-1,0,0));
+        tt_->setPositionOfEmitter(0, Vector3(-15,20,-1));
+        tt_->setPositionOfEmitter(1, Vector3(-15,-20,-1));
+        tt_->setVelocity(50);
+
+        emitterRate_ = tt_->getRate();
 
         Ogre::SceneNode* node2 = this->getNode()->createChildSceneNode(this->getName() + "particle2");
         node2->setInheritScale(false);
-        tt->addToSceneNode(node2);
-
+        tt_->addToSceneNode(node2);
+        // END CREATING THRUSTER
+
+        // START CREATING BLINKING LIGHTS
+        this->redBillboard_.setBillboardSet("Examples/Flare", ColourValue(1.0, 0.0, 0.0), 1);
+        this->greenBillboard_.setBillboardSet("Examples/Flare", ColourValue(0.0, 1.0, 0.0), 1);
+
+        this->redNode_ = this->getNode()->createChildSceneNode(this->getName() + "red", Vector3(0.1, 4.6, -0.3));
+        this->redNode_->setInheritScale(false);
+        this->greenNode_ = this->getNode()->createChildSceneNode(this->getName() + "green", Vector3(0.1, -4.6, -0.3));
+        this->greenNode_->setInheritScale(false);
+
+        this->redNode_->attachObject(this->redBillboard_.getBillboardSet());
+        this->redNode_->setScale(0.3, 0.3, 0.3);
+
+        this->greenNode_->attachObject(this->greenBillboard_.getBillboardSet());
+        this->greenNode_->setScale(0.3, 0.3, 0.3);
+        // END CREATING BLINKING LIGHTS
 
 
@@ -214,4 +214,13 @@
         WorldEntity::tick(dt);
 
+        if (this->redNode_ && this->greenNode_)
+        {
+            this->blinkTime_ += dt;
+            float redScale = 0.15 + 0.15 * sin(this->blinkTime_ * 10.0);
+            float greenScale = 0.15 - 0.15 * sin(this->blinkTime_ * 10.0);
+            this->redNode_->setScale(redScale, redScale, redScale);
+            this->greenNode_->setScale(greenScale, greenScale, greenScale);
+        }
+
         OIS::Keyboard* mKeyboard = Orxonox::getSingleton()->getKeyboard();
         OIS::Mouse* mMouse = Orxonox::getSingleton()->getMouse();
@@ -385,9 +394,9 @@
         if (accelerationForward_ > 25.0)
         {
-          this->tt->setRate(emitterRate_);
-        }
-        else
-        {
-          this->tt->setRate(0);
+            this->tt_->setRate(emitterRate_);
+        }
+        else
+        {
+            this->tt_->setRate(0);
         }
 
Index: /code/branches/FICN/src/orxonox/objects/SpaceShip.h
===================================================================
--- /code/branches/FICN/src/orxonox/objects/SpaceShip.h	(revision 632)
+++ /code/branches/FICN/src/orxonox/objects/SpaceShip.h	(revision 633)
@@ -5,4 +5,7 @@
 
 #include "Model.h"
+#include "BillboardSet.h"
+#include "OgreSceneNode.h"
+
 #include "../../tinyxml/tinyxml.h"
 #include "../particle/ParticleInterface.h"
@@ -41,6 +44,11 @@
             bool setMouseEventCallback_;
 
-            particle::ParticleInterface *w;
-            particle::ParticleInterface *tt;
+            particle::ParticleInterface *tt_;
+
+            BillboardSet redBillboard_;
+            BillboardSet greenBillboard_;
+            Ogre::SceneNode* redNode_;
+            Ogre::SceneNode* greenNode_;
+            float blinkTime_;
 
             float moveForward_;
Index: /code/branches/FICN/src/orxonox/objects/WorldEntity.cc
===================================================================
--- /code/branches/FICN/src/orxonox/objects/WorldEntity.cc	(revision 632)
+++ /code/branches/FICN/src/orxonox/objects/WorldEntity.cc	(revision 633)
@@ -51,5 +51,9 @@
             name << (WorldEntity::worldEntityCounter_s++);
             this->setName("WorldEntity" + name.str());
-            node_ = Orxonox::getSingleton()->getSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
+            this->node_ = Orxonox::getSingleton()->getSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
+        }
+        else
+        {
+            this->node_ = 0;
         }
 
