Nice release, thanks for sharing. I started working on a similar tool and started by trying to create models for EffectData and EffectScene. I'll share them below in case they are useful to you. My plan was to try to possibly create a description for each.
It seems like you're coding in C#/C++ but if not let me know what language you're using and I can convert it.
Code:
public class EffectData
{
public int Category { get; set; }
public string Name { get; set; }
public string UnitType { get; set; }
public string BillboardType { get; set; }
public string TailStep { get; set; } // Could be a more complex type if needed
public float? Size { get; set; }
public bool? Backprint { get; set; }
public bool? Disort { get; set; }
public string TextureFile { get; set; }
public string TexturePack { get; set; }
public string BlendType { get; set; }
public string TextureLoop { get; set; }
public int? TexAnimTime { get; set; }
// Additional fields based on 'particle' unit type
public string LeafType { get; set; }
public string ActiveState { get; set; }
public int? Lifetime { get; set; }
public int? EmitRate { get; set; }
public int? MaxElementCount { get; set; }
public int? AddRotate { get; set; }
public float? Velocity { get; set; } // Could be a vector if needed
public float? Acceleration { get; set; } // Could be a vector if needed
public string SpawnDirection { get; set; } // Could be a vector if needed
public string Gravity { get; set; } // Could be a vector if needed
public float? ColorRange { get; set; }
public float? StartRange { get; set; }
public string EndPosition { get; set; } // Could be a vector if needed
public string ParticleSize { get; set; } // Could be a vector if needed
public bool? FollowDirection { get; set; }
public bool? SpawnDirAbs { get; set; }
public bool? TriangleRender { get; set; }
public EffectData()
{
// Initialize with defaults or required values
}
}
public class EffectScene
{
public int Id { get; set; }
public string Name { get; set; }
public List<EffectResource> Resources { get; set; } = new List<EffectResource>();
public List<Scene> Scenes { get; set; } = new List<Scene>();
public class EffectResource
{
public int ResId { get; set; }
public string EffectName { get; set; }
}
public class Scene
{
public int SceneId { get; set; }
public string SceneName { get; set; }
public List<Control> Controls { get; set; } = new List<Control>();
}
public class Control
{
public int UnitId { get; set; }
public bool Active { get; set; }
public string StartPosition { get; set; } // Could be a more complex type (like a vector)
public (int, int) Lifetime { get; set; }
public int AnimTime { get; set; }
public string Scale { get; set; } // Could be a more complex type or a list of keyframes
public string Alpha { get; set; } // Could be a more complex type or a list of keyframes
public bool RandomStart { get; set; }
public string BoneName { get; set; }
public string Color { get; set; } // Could be a more complex type or a list of keyframes
public string Rotation { get; set; } // Could be a more complex type or a list of keyframes
}
}