void CommandSaveInnerEmitterToYaml::Execute() { BaseParticleEditorNode* selectedNode = ParticlesEditorController::Instance()->GetSelectedNode(); InnerEmitterParticleEditorNode* emitterNode = dynamic_cast<InnerEmitterParticleEditorNode*>(selectedNode); if (!emitterNode || !emitterNode->GetInnerEmitter()) { return; } ParticleEmitter * emitter = emitterNode->GetInnerEmitter(); FilePath yamlPath = emitter->GetConfigPath(); if (this->forceAskFilename || yamlPath.IsEmpty() ) { QString projectPath = QString(EditorSettings::Instance()->GetParticlesConfigsPath().GetAbsolutePathname().c_str()); QString filePath = QFileDialog::getSaveFileName(NULL, QString("Save Particle Emitter YAML file"), projectPath, QString("YAML File (*.yaml)")); if (filePath.isEmpty()) { return; } yamlPath = FilePath(filePath.toStdString()); } emitter->SaveToYaml(yamlPath); }
void ParticleEmitterPropertyControl::ReadFrom(Entity * sceneNode) { NodesPropertyControl::ReadFrom(sceneNode); ParticleEmitter * emitter = GetEmitter(sceneNode); DVASSERT(emitter); propertyList->AddSection("Particles emitter"); propertyList->AddStringProperty("Yaml path", PropertyList::PROPERTY_IS_READ_ONLY); propertyList->SetStringPropertyValue("Yaml path", emitter->GetConfigPath().GetAbsolutePathname()); }