   -- realPloughPS for a add Grape
   -- Specialization for real Plough Particle System for add Grape
   --
   -- Ersteller Börndi
   -- Datum 29/05/12
   --
   -- Before you want to use the script to another mod please contact me on ICQ (554488792)
   -- or one of the various forum's (nickname: Börndi) Thank you!
   --
   -- Bevor du das Script in einen anderen Mod verwenden willst bitte kontaktiere mich in ICQ (554488792)
   -- oder in einen der verschiedenen Forum´s (Nickname: Börndi) Danke!!!
   --

   ploughModifyPSZs = {};

   function ploughModifyPSZs.prerequisitesPresent(specializations)
   	return true;
   end;

   function ploughModifyPSZs:load(xmlFile)
	self.pflugParticleSystemsInvert = {};
	self.pflugParticleSystemsnichtInvert = {};

	local i = 0;
	while true do
		local key = string.format("vehicle.pflugParticleSystems.pflugParticleSystemInvertiert(%d)", i);
		local node = getXMLString(xmlFile, key.. "#node");
		if node == nil then
			break;
		end;
		node = Utils.indexToObject(self.components, node);
		if node ~= nil then
			local psFile = getXMLString(xmlFile, key.. "#file");
			local pflugParticleSystemInvert = {};
			pflugParticleSystemInvert.particleSystem = {};
			StaticParticleSystem.loadParticleSystem(xmlFile, pflugParticleSystemInvert.particleSystem, key, self.components, false, nil, self.baseDirectory);
			table.insert(self.pflugParticleSystemsInvert, pflugParticleSystemInvert);
		end;
		i = i+1;
	end;

	i = 0;
	while true do
		local key = string.format("vehicle.pflugParticleSystems.pflugParticleSystemnichtInvertiert(%d)", i);
		local node = getXMLString(xmlFile, key.. "#node");
		if node == nil then
			break;
		end;
		node = Utils.indexToObject(self.components, node);
		if node ~= nil then
			local psFile = getXMLString(xmlFile, key.. "#file");
			local pflugParticleSystemnichtInvert = {};
			pflugParticleSystemnichtInvert.particleSystem = {};
			StaticParticleSystem.loadParticleSystem(xmlFile, pflugParticleSystemnichtInvert.particleSystem, key, self.components, false, nil, self.baseDirectory);
			table.insert(self.pflugParticleSystemsnichtInvert, pflugParticleSystemnichtInvert);
		end;
		i = i+1;
	end;
   end;

   function ploughModifyPSZs:delete()
	for k, pflugParticleSystemInvert in pairs(self.pflugParticleSystemsInvert) do
		Utils.deleteParticleSystem(pflugParticleSystemInvert);
	end;

	for k, pflugParticleSystemnichtInvert in pairs(self.pflugParticleSystemsnichtInvert) do
		Utils.deleteParticleSystem(pflugParticleSystemnichtInvert);
	end;
   end;

   function ploughModifyPSZs:mouseEvent(posX, posY, isDown, isUp, button)
   end;

   function ploughModifyPSZs:keyEvent(unicode, sym, modifier, isDown)
   end;

   function ploughModifyPSZs:update(dt)
	if self:getIsActive() then
		if self.attacherVehicle ~= nil then
			if self.attacherVehicle.ParticleInvertZs == true then
				for k, pflugParticleSystemInvert in pairs(self.pflugParticleSystemsInvert) do
					Utils.setEmittingState(pflugParticleSystemInvert.particleSystem, true);
				end;
			else
				for k, pflugParticleSystemInvert in pairs(self.pflugParticleSystemsInvert) do
					Utils.setEmittingState(pflugParticleSystemInvert.particleSystem, false);
				end;
			end;

			if self.attacherVehicle.ParticlenichtInvertZs == true then
				for k, pflugParticleSystemnichtInvert in pairs(self.pflugParticleSystemsnichtInvert) do
					Utils.setEmittingState(pflugParticleSystemnichtInvert.particleSystem, true);
				end;
			else
				for k, pflugParticleSystemnichtInvert in pairs(self.pflugParticleSystemsnichtInvert) do
					Utils.setEmittingState(pflugParticleSystemnichtInvert.particleSystem, false);
				end;
			end;
		end;
	end;
   end;

   function ploughModifyPSZs:draw()
   end;

   function ploughModifyPSZs:onDetach()
	for k, pflugParticleSystemInvert in pairs(self.pflugParticleSystemsInvert) do
		Utils.setEmittingState(pflugParticleSystemInvert.particleSystem, false);
	end;

	for k, pflugParticleSystemnichtInvert in pairs(self.pflugParticleSystemsnichtInvert) do
		Utils.setEmittingState(pflugParticleSystemnichtInvert.particleSystem, false);
	end;
   end;