Example #1
0
        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}");
            }
        }
Example #2
0
        //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")
             *      {
             *
             *      }
             *  }*/
        }
Example #3
0
        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());
        }
Example #4
0
        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}");
            }
        }
Example #5
0
 public static void ToAamp(Aampv1.AampFile aampFile)
 {
 }
Example #6
0
        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}");
                }
            }
        }