Index: code/branches/FICN/Media/materials/scripts/PE_materials.material
===================================================================
--- code/branches/FICN/Media/materials/scripts/PE_materials.material	(revision 535)
+++ code/branches/FICN/Media/materials/scripts/PE_materials.material	(revision 535)
@@ -0,0 +1,143 @@
+material PE/lensflare
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture flare.png
+			}
+		}
+	}
+}
+
+material PE/bigFlame
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture bigflame.png
+			}
+		}
+	}
+}
+
+material PE/smoke
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend alpha_blend
+
+			texture_unit
+			{
+				texture smoke.png
+			}
+		}
+	}
+}
+
+material PE/explosion
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture explosion.png
+			}
+		}
+	}
+}
+
+material PE/ringflare
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture ring_flare.png
+			}
+		}
+	}
+}
+
+material PE/ringflare2
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture ring_flare2.png
+			}
+		}
+	}
+}
+
+material PE/Flare
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			scene_blend add
+			depth_write off
+
+			texture_unit
+			{
+				texture flaretrail.png
+			}
+		}
+	}
+}
+
+material PE/Streak
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture streak.png
+			}
+		}
+	}
+}
Index: code/branches/FICN/bin/resources.cfg
===================================================================
--- code/branches/FICN/bin/resources.cfg	(revision 534)
+++ code/branches/FICN/bin/resources.cfg	(revision 535)
@@ -11,4 +11,5 @@
 FileSystem=../Media/materials/scripts
 FileSystem=../Media/materials/textures
+#FileSystem=../Media/material
 FileSystem=../Media/models
 FileSystem=../Media/overlay
Index: code/branches/FICN/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/FICN/src/orxonox/CMakeLists.txt	(revision 534)
+++ code/branches/FICN/src/orxonox/CMakeLists.txt	(revision 535)
@@ -5,4 +5,5 @@
 ADD_SUBDIRECTORY(objects)
 ADD_SUBDIRECTORY(weapon)
+ADD_SUBDIRECTORY(particle)
 
 
@@ -35,4 +36,5 @@
   weapon
   xml
+  particle
 )
 
Index: code/branches/FICN/src/orxonox/orxonox.cc
===================================================================
--- code/branches/FICN/src/orxonox/orxonox.cc	(revision 534)
+++ code/branches/FICN/src/orxonox/orxonox.cc	(revision 535)
@@ -61,4 +61,5 @@
 #include "spaceship_steering.h"
 
+#include "particle/ParticleInterface.h"
 
 //network stuff
@@ -424,4 +425,12 @@
     steering_->addNode(node);
 
+/*
+    particle::ParticleInterface *e = new particle::ParticleInterface(mgr,"engine","strahl");
+    e->particleSystem_->setParameter("local_space","true");
+    e->setPositionOfEmitter(0, Vector3(0,0,-10));
+    e->setDirection(Vector3(0,0,-1));*/
+//     e->addToSceneNode(node);
+
+
   }
 
Index: code/branches/FICN/src/orxonox/particle/CMakeLists.txt
===================================================================
--- code/branches/FICN/src/orxonox/particle/CMakeLists.txt	(revision 535)
+++ code/branches/FICN/src/orxonox/particle/CMakeLists.txt	(revision 535)
@@ -0,0 +1,7 @@
+PROJECT(Orxonox)
+
+SET(SRC_FILES
+  ParticleInterface.cc
+)
+
+ADD_LIBRARY(particle SHARED ${SRC_FILES})
Index: code/branches/FICN/src/orxonox/particle/ParticleInterface.cc
===================================================================
--- code/branches/FICN/src/orxonox/particle/ParticleInterface.cc	(revision 535)
+++ code/branches/FICN/src/orxonox/particle/ParticleInterface.cc	(revision 535)
@@ -0,0 +1,182 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      ...
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "ParticleInterface.h"
+#include <Ogre.h>
+#include <OIS/OIS.h>
+// #include <CEGUI/CEGUI.h>
+// #include <CEGUIRenderer.h>
+
+
+using namespace Ogre;
+
+namespace particle {
+
+	ParticleInterface::~ParticleInterface(void)
+	{
+		sceneManager_->destroyParticleSystem(particleSystem_);
+
+		delete sceneNode_;
+		delete particleSystem_;
+		delete sceneManager_;
+	}
+
+	ParticleInterface::ParticleInterface( SceneManager *sceneManager, String name, String templateName )
+	{
+		sceneManager_ = sceneManager;
+		particleSystem_ = sceneManager->createParticleSystem(name, templateName);
+
+		//Variabeln einlesen, Emitter1_ ist Referenz-Emitter
+		velocity_ = particleSystem_->getSpeedFactor();
+		colour_ = particleSystem_->getEmitter(0)->getColour();
+		rate_ = particleSystem_->getEmitter(0)->getEmissionRate();
+		distance_ = particleSystem_->getEmitter(0)->getTimeToLive();
+
+		//Anzahl der Emitter
+		numberOfEmitters_ = particleSystem_->getNumEmitters();
+		standardizeEmitters();
+	}
+
+	void ParticleInterface::standardizeEmitters(void)
+	{
+		//Abgleichen der anderen Emitter an die Variabeln
+		for (int i=1; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setColour( colour_ );
+			particleSystem_->getEmitter(i)->setTimeToLive( distance_ );
+			particleSystem_->getEmitter(i)->setEmissionRate( rate_ );
+		}
+
+	}
+
+	void ParticleInterface::addToSceneNode( SceneNode* sceneNode )
+	{
+		sceneNode_ = sceneNode;
+		sceneNode_->attachObject(particleSystem_);
+	}
+
+	void ParticleInterface::dettachFromSceneNode ( void )
+	{
+		sceneNode_->detachObject(particleSystem_);
+		sceneNode_ = NULL;
+	}
+
+	Real ParticleInterface::getVelocity()
+	{
+		return velocity_;
+	}
+
+	void ParticleInterface::setVelocity(Real v)
+	{
+		velocity_ = v;
+		//partikel anpassen
+		particleSystem_->setSpeedFactor(v);
+	}
+
+	int ParticleInterface::getRate()
+	{
+		return rate_;
+	}
+	void ParticleInterface::setRate(int r)
+	{
+		rate_ = r;
+		//partikel anpassen
+		for (int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setEmissionRate(rate_);
+		}
+	}
+
+	Real ParticleInterface::getDistance()
+	{
+		return distance_;
+	}
+
+	void ParticleInterface::setDistance(Real d)
+	{
+		distance_ = d;
+		//partikel anpassen
+		for (int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setTimeToLive(distance_);
+		}
+	}
+	ColourValue ParticleInterface::getColour()
+	{
+		return colour_;
+	}
+
+	void ParticleInterface::setColour(ColourValue colour)
+	{
+		colour_ = colour;
+		//partikel anpassen
+		for (int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setColour(colour_);
+		}
+	}
+
+	ParticleEmitter* ParticleInterface::getEmitter( int emitterNr )
+	{
+		if (!(emitterNr<numberOfEmitters_)) return NULL;
+		return particleSystem_->getEmitter(emitterNr);
+	}
+
+	void ParticleInterface::newEmitter ( void )
+	{
+		particleSystem_->addEmitter(particleSystem_->getEmitter(0)->getType());
+		numberOfEmitters_=numberOfEmitters_+1;
+		particleSystem_->getEmitter(0)->copyParametersTo( particleSystem_->getEmitter(numberOfEmitters_-1) );
+	}
+
+	void ParticleInterface::setPositionOfEmitter ( int emitterNr, Vector3 position )
+	{
+		particleSystem_->getEmitter(emitterNr)->setPosition(position);
+	}
+
+	Vector3 ParticleInterface::getPositionOfEmitter ( int emitterNr )
+	{
+		return particleSystem_->getEmitter(0)->getPosition();
+	}
+
+	void ParticleInterface::setDirection ( Vector3 direction )
+	{
+		for(int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setDirection(direction);
+		}
+	}
+
+
+	Vector3 ParticleInterface::getDirection ( void )
+	{
+		return particleSystem_->getEmitter(0)->getDirection();
+	}
+
+	void ParticleInterface::switchEnable(){
+		bool enable=(!(particleSystem_->getEmitter(0)->getEnabled()));
+		for(int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setEnabled(enable);
+		}
+	}
+
+}
Index: code/branches/FICN/src/orxonox/particle/ParticleInterface.h
===================================================================
--- code/branches/FICN/src/orxonox/particle/ParticleInterface.h	(revision 535)
+++ code/branches/FICN/src/orxonox/particle/ParticleInterface.h	(revision 535)
@@ -0,0 +1,54 @@
+#ifndef MODULE_ParticleInterface_H
+#define MODULE_ParticleInterface_H
+
+// #include "ParticleInterface.h"
+#include <Ogre.h>
+#include <OIS/OIS.h>
+// #include <CEGUI/CEGUI.h>
+// #include <CEGUIRenderer.h>
+
+using namespace Ogre;
+
+namespace particle
+{
+
+class ParticleInterface
+{
+ public:
+	ParticleSystem *particleSystem_;
+
+	ParticleInterface( SceneManager *sceneManager, String name, String templateName );
+	~ParticleInterface( void );
+	void addToSceneNode( SceneNode* sceneNode );
+	void dettachFromSceneNode( void );
+	ParticleEmitter* getEmitter ( int emitterNr );
+	void newEmitter ( void );
+	void setPositionOfEmitter ( int emitterNr, Vector3 position );
+	Vector3 getPositionOfEmitter ( int emitterNr );
+	void setDirection ( Vector3 direction );
+	Vector3 getDirection ( void );
+	Real getVelocity();
+	void setVelocity( Real v );
+	int getRate();
+	void setRate( int r );
+	Real getDistance();
+	void setDistance( Real d );
+	ColourValue getColour( void );
+	void setColour( ColourValue colour );
+	void switchEnable( void );
+
+ private:
+	SceneNode *sceneNode_;
+	SceneManager *sceneManager_;
+	Real distance_;
+	Real velocity_;
+	int rate_;
+	ColourValue colour_;
+	int numberOfEmitters_;
+
+	void standardizeEmitters();
+};
+
+
+}
+#endif
Index: code/branches/particle-old/ParticleREADME.txt
===================================================================
--- code/branches/particle-old/ParticleREADME.txt	(revision 534)
+++ code/branches/particle-old/ParticleREADME.txt	(revision 535)
@@ -2,6 +2,6 @@
 
 == Files ==
-Benötigte Files: ParticleInterface.h, ParticleInterface.cc
-Benötigte Resourcen: alle particle-Scripts und das material-Script
+Ben�tigte Files: ParticleInterface.h, ParticleInterface.cc
+Ben�tigte Resourcen: alle particle-Scripts und das material-Script
 
 == Code ==
@@ -11,9 +11,9 @@
 	//Definiere SceneNode particleNode mit einer geeigneten Entity z.B. Schiff
 
-	//Effekt w für die Laser
-	particle::ParticleInterface *w = new particle::ParticleInterface(mSceneMgr,"schuss","Orxonox/schuss");;
+	//Effekt w f�r die Laser
+	particle::ParticleInterface *w = new particle::ParticleInterface(mSceneMgr,"schuss","Orxonox/schuss");
 
-	//Effekt e für die Triebwerke
-	particle::ParticleInterface *e = new particle::ParticleInterface(mSceneMgr,"engine","Orxonox/treibwerk");;
+	//Effekt e f�r die Triebwerke
+	particle::ParticleInterface *e = new particle::ParticleInterface(mSceneMgr,"engine","Orxonox/treibwerk");
 
 	//Einstellen der Parameter
@@ -23,5 +23,5 @@
 	e->particleSystem_->setParameter("local_space","true");
 
-	//Fügt einen weiteren Laser hinzu und setzt die beiden an 
+	//F�gt einen weiteren Laser hinzu und setzt die beiden an 
 	//zwei verschiedene Positionen und setzt die Richtung richtig
 	w->newEmitter();
@@ -35,19 +35,19 @@
 
 
-	//Anfügen der PartikelEffekte an die SceneNode
+	//Anf�gen der PartikelEffekte an die SceneNode
 	w->addToSceneNode(particleNode);
 	e->addToSceneNode(particleNode);
 
 
-== Dynamische Änderungen ==
+== Dynamische �nderungen ==
 
-	//Verändert die Geschwindigkeit der Partikel 
+	//Ver�ndert die Geschwindigkeit der Partikel 
 	w->setVelocity(w->getVelocity()+0.05);
 	w->setVelocity(w->getVelocity()-0.05);
 
-	//Verändert die Distanz, bis wo die Partikel zu sehen sind
+	//Ver�ndert die Distanz, bis wo die Partikel zu sehen sind
 	w->setDistance(w->getDistance()+0.1);
 	w->setDistance(w->getDistance()-0.1);
 
-	//Ändert von Partikel erzeugen auf gestoppt oder umgekehrt
+	//�ndert von Partikel erzeugen auf gestoppt oder umgekehrt
 	w->switchEnable();
