public void Load(Stream stream) { CanSave = true; Text = FileName; uint Version = CheckVersion(stream); if (Version == 1) { aampFileV1 = new aampv1.AampFile(stream); Text = $"{FileName} Type [{aampFileV1.EffectType}]"; aampEditorV1 = new AampV1Editor(); aampEditorV1.LoadFile(aampFileV1, this); } else if (Version == 2) { aampFileV2 = new aampv2.AampFile(stream); Text = $"{FileName} Type [{aampFileV2.EffectType}]"; aampEditorV2 = new AampV2Editor(); aampEditorV2.LoadFile(aampFileV2, this); } else { throw new Exception($"Unsupported AAMP version! {Version}"); } }
//I could've used a yaml parser, but incase i need to change it up to look nicer and support leo's aamp layout, do it manually public static void ToAamp(Aampv1.AampFile aampFile, string text) { byte[] TextData = Encoding.Unicode.GetBytes(text); StreamReader t = new StreamReader(new MemoryStream(TextData), Encoding.GetEncoding(932)); var yaml = new YamlStream(); yaml.Load(new StringReader(text)); /* var mapping = (YamlMappingNode)yaml.Documents[0].RootNode; * foreach (var item in mapping.AllNodes) * { * Console.WriteLine("n " + item); * }*/ /* byte[] TextData = Encoding.Unicode.GetBytes(text); * StreamReader t = new StreamReader(new MemoryStream(TextData), Encoding.GetEncoding(932)); * using (var reader = new StringReader(t.ReadToEnd())) * { * string AampCheck = reader.ReadLine(); * if (AampCheck != "!aamp") * throw new Exception($"Expected !aamp got {AampCheck} at line 0"); * string VersionCheck = reader.ReadLine(); * string num = GetProperty(VersionCheck); * if (num == "1") * { * * } * }*/ }
public static string ToYaml(Aampv1.AampFile aampFile) { StringBuilder sb = new StringBuilder(); using (TextWriter writer = new StringWriter(sb)) { writer.WriteLine("!aamp"); writer.WriteLine($"version: {aampFile.Version}"); writer.WriteLine("!io"); writer.WriteLine($"version: 0"); writer.WriteLine($"type: {aampFile.EffectType}"); WriteParamList(writer, aampFile.RootNode, 0); } return(sb.ToString()); }
public void Load(Stream stream) { CanSave = true; IsSaveDialog = IFileInfo != null && IFileInfo.InArchive; uint Version = CheckVersion(stream); if (Version == 1) { aampFileV1 = new aampv1.AampFile(stream); } else if (Version == 2) { aampFileV2 = new aampv2.AampFile(stream); } else { throw new Exception($"Unsupported AAMP version! {Version}"); } }
public static void ToAamp(Aampv1.AampFile aampFile) { }
private void LoadParameters(aampv1.AampFile aamp) { if (aamp.EffectType == "Probe Data") { probeLightingConfig = new ProbeLighting(); viewport.AddDrawable(probeLightingConfig); var probeRoot = new ProbeLightingWrapper(probeLightingConfig); treeView1.Nodes.Add(probeRoot); uint index = 0; foreach (var val in aamp.RootNode.childParams) { var entry = new ProbeLighting.Entry(); entry.Index = index++; probeLightingConfig.Entries.Add(entry); probeRoot.Nodes.Add(new ProbeLightingEntryWrapper(entry)); foreach (var param in val.paramObjects) { switch (param.HashString) { case "param_obj": foreach (var data in param.paramEntries) { if (data.HashString == "index") { entry.Index = (uint)data.Value; } if (data.HashString == "type") { entry.Type = (uint)data.Value; } } break; case "grid": entry.Grid = LoadGridData(param.paramEntries); break; case "sh_index_buffer": LoadIndexBuffer(param.paramEntries, entry); break; case "sh_data_buffer": LoadDataBuffer(param.paramEntries, entry); break; } } } aamp.Save($"{CourseFolder}/DEBUG_PROBE.aamp"); foreach (var entry in probeLightingConfig.Entries) { Console.WriteLine(entry.Name); Console.WriteLine($"IndexType {entry.IndexType}"); Console.WriteLine($"DataType {entry.DataType}"); Console.WriteLine($"MaxIndexNum {entry.MaxIndexNum}"); Console.WriteLine($"UsedIndexNum {entry.UsedIndexNum}"); Console.WriteLine($"MaxShDataNum {entry.MaxShDataNum}"); Console.WriteLine($"UsedShDataNum {entry.UsedShDataNum}"); Console.WriteLine($"AABB_Max_Position {entry.Grid.AABB_Max_Position}"); Console.WriteLine($"AABB_Min_Position {entry.Grid.AABB_Min_Position}"); Console.WriteLine($"Voxel_Step_Position {entry.Grid.Voxel_Step_Position}"); Console.WriteLine($"DataBuffer {entry.DataBuffer.Length}"); Console.WriteLine($"IndexBuffer {entry.IndexBuffer.Length}"); } } }