ETHParticleDrawer::ETHParticleDrawer( const ETHResourceProviderPtr& provider, ETHGraphicResourceManagerPtr graphicResources, const str_type::string& resourceDirectory, const str_type::string& fileName, const Vector2& pos, const float angle, const float scale) : m_pos(pos), m_angle(angle), m_provider(provider), m_fileName(fileName) { ETHParticleSystem particleSystem; particleSystem.ReadFromFile(resourceDirectory + ETHDirectories::GetEffectsDirectory() + fileName, provider->GetFileManager()); const Vector2 startPos(m_pos + provider->GetVideo()->GetCameraPos()); m_particleManager = ETHParticleManagerPtr( new ETHParticleManager(provider, particleSystem, startPos, Vector3(startPos, 0.0f), angle, 1.0f, scale)); }
ETHParticleManager::ETHParticleManager( ETHResourceProviderPtr provider, const str_type::string& file, const Vector2& v2Pos, const Vector3& v3Pos, const float angle, const float entityVolume) : m_provider(provider) { ETHParticleSystem partSystem; if (partSystem.ReadFromFile(file, m_provider->GetFileManager())) { CreateParticleSystem(partSystem, v2Pos, v3Pos, angle, entityVolume, 1.0f); } else { ETH_STREAM_DECL(ss) << GS_L("ETHParticleManager: file not found: ") << file; m_provider->Log(ss.str(), Platform::FileLogger::ERROR); } }