// --------------------------------------------------------- void ResourceTexture::Save(Config & config) const { Resource::Save(config); config.AddInt("Format", format); config.AddBool("Mipmaps", has_mips); config.AddBool("Linear", linear); }
void ComponentParticleSystem::RandomValue::Save(const char* name, Config& config) const { Config section = config.AddSection(name); section.AddBool("random", random); if(random) { section.AddFloat("init", range[0]); section.AddFloat("end", range[1]); } else { section.AddFloat("value", range[0]); } }
void ComponentParticleSystem::OnSave(Config& config) const { config.AddUInt("Max particles", init.max_particles); config.AddBool("Loop", init.loop); config.AddFloat("Duration", init.duration); init.life.Save("Life", config); init.speed.Save("Speed", config); init.size.Save("Size", config); init.rotation.Save("Rotation", config); init.gravity.Save("Gravity", config); config.AddFloat4("Color", init.color); config.AddFloat("Whole speed", init.whole_speed); config.AddUInt("Particles per second", emitter.particles_per_second); config.AddUInt("Particles per distance", emitter.particles_per_distance); config.AddUInt("Shape type", (uint)shape.type); if(shape.type == Circle) { config.AddFloat("Circle radius", shape.radius); } else if(shape.type == Cone) { config.AddFloat("Cone radius", shape.radius); config.AddFloat("Cone angle", shape.angle); } config.AddFloat3("Speed init", speed_over_time.init); config.AddFloat3("Speed end", speed_over_time.end); config.AddFloat4("Speed bezier", speed_over_time.bezier); config.AddFloat("Size init", size_over_time.init); config.AddFloat("Size end", size_over_time.end); config.AddFloat4("Size bezier", size_over_time.bezier); config.AddArray("Color over time"); const std::list<ImGradientMark*>& marks = color_over_time.gradient.getMarks(); for(std::list<ImGradientMark*>::const_iterator it = marks.begin(), end = marks.end(); it != end; ++it) { Config mark; mark.AddBool("alpha", (*it)->alpha); if((*it)->alpha) { mark.AddFloat("color", (*it)->color[0]); } else { mark.AddFloat4("color", float4(((*it)->color))); } mark.AddFloat("position", (*it)->position); config.AddArrayEntry(mark); } config.AddUID("Texture", texture_info.texture); config.AddInt("Sheet x", texture_info.x_tiles); config.AddInt("Sheet y", texture_info.y_tiles); config.AddBool("Sheet random", texture_info.random); config.AddFloat("Sheet init", texture_info.frame_over_time.init); config.AddFloat("Sheet end", texture_info.frame_over_time.end); config.AddFloat4("Sheet bezier", texture_info.frame_over_time.bezier); config.AddInt("Blend mode", (int)blend_mode); config.AddFloat("Layer", layer); }