private void SongAggregateGraph(DLCPackageData info, DLCPackageType dlcType)
        {
            var dlcName = info.Name.ToLower();
            var songPartition = new SongPartition();

            // Xblock
            var xbl = new GraphItem();
            xbl.Name = dlcName;
            xbl.Canonical = String.Format(CANONICAL_XBLOCK[dlcType], dlcName);
            xbl.RelPathDirectory = xbl.Canonical;
            xbl.Tag = new List<string>();
            xbl.Tag.Add(TagValue.EmergentWorld.GetDescription());
            xbl.Tag.Add(TagValue.XWorld.GetDescription());
            xbl.UUID = IdGenerator.Guid();
            xbl.RelPathFile = String.Format("{0}.xblock", xbl.Name);
            GameXblock = xbl;

            JsonDB = new List<GraphItem>();
            if (currentPlatform.IsConsole)
                HsonDB = new List<GraphItem>();

            SongXml = new List<GraphItemLLID>();
            MusicgameSong = new List<GraphItemLLID>();
            foreach (var arrangement in info.Arrangements) {
                var name = String.Format(NAME_ARRANGEMENT, dlcName, songPartition.GetArrangementFileName(arrangement.Name, arrangement.ArrangementType).ToLower());

                // JsonDB
                var json = new GraphItem();
                json.Name = name;
                json.Canonical = currentPlatform.IsConsole ? CANONICAL_MANIFEST_CONSOLE : String.Format(CANONICAL_MANIFEST_PC, dlcName);
                json.RelPathDirectory = json.Canonical;
                json.Tag = new List<string>();
                json.Tag.Add(TagValue.Database.GetDescription());
                json.Tag.Add(TagValue.JsonDB.GetDescription());
                json.UUID = IdGenerator.Guid();
                json.RelPathFile = String.Format("{0}.json", json.Name);
                JsonDB.Add(json);

                //One file for each arrangement (Xbox360 / PS3 only)
                if (currentPlatform.IsConsole) {
                    // HsonDB
                    var hson = new GraphItem();
                    hson.Name = name;
                    hson.Canonical = CANONICAL_MANIFEST_CONSOLE;
                    hson.RelPathDirectory = hson.Canonical;
                    hson.Tag = new List<string>();
                    hson.Tag.Add(TagValue.Database.GetDescription());
                    hson.Tag.Add(TagValue.HsonDB.GetDescription());
                    hson.UUID = IdGenerator.Guid();
                    hson.RelPathFile = String.Format("{0}.hson", json.Name);
                    HsonDB.Add(hson);
                }

                // XmlSong
                var xml = new GraphItemLLID();
                xml.Name = name;
                xml.Canonical = String.Format(CANONICAL_XMLSONG, dlcName);
                xml.RelPathDirectory = xml.Canonical;
                xml.LogPathDirectory = xml.Canonical;
                xml.Tag = new List<string>();
                xml.Tag.Add(TagValue.Application.GetDescription());
                xml.Tag.Add(TagValue.XML.GetDescription());
                xml.UUID = arrangement.SongXml.UUID;
                xml.LLID = Guid.Parse(arrangement.SongXml.LLID);
                xml.RelPathFile = String.Format("{0}.xml", xml.Name);
                xml.LogPathFile = xml.RelPathFile;
                SongXml.Add(xml);

                // Musicgame
                var sng = new GraphItemLLID();
                sng.Name = name;
                sng.Canonical = String.Format(CANONICAL_GAMESONG, currentPlatform.GetPathName()[1].ToLower());
                sng.RelPathDirectory = sng.Canonical;
                sng.LogPathDirectory = sng.Canonical;
                sng.Tag = new List<string>();
                sng.Tag.Add(TagValue.Application.GetDescription());
                sng.Tag.Add(TagValue.MusicgameSong.GetDescription());
                if (currentPlatform.IsConsole)
                    sng.Tag.Add(GraphItem.GetPlatformTagDescription(currentPlatform.platform));
                sng.UUID = arrangement.SongFile.UUID;
                sng.LLID = Guid.Parse(arrangement.SongFile.LLID);
                sng.RelPathFile = String.Format("{0}.sng", sng.Name);
                sng.LogPathFile = sng.RelPathFile;
                MusicgameSong.Add(sng);
            }

            if (currentPlatform.version == GameVersion.RS2014) {
                //One file for all arrangement (PC / Mac only)
                if (!currentPlatform.IsConsole) {
                    // HsanDB
                    var hsan = new GraphItem();
                    hsan.Name = String.Format("songs_dlc_{0}", dlcName);
                    hsan.Canonical = String.Format(CANONICAL_MANIFEST_PC, dlcName);
                    hsan.RelPathDirectory = hsan.Canonical;
                    hsan.Tag = new List<string>();
                    hsan.Tag.Add(TagValue.Database.GetDescription());
                    hsan.Tag.Add(TagValue.HsanDB.GetDescription());
                    hsan.UUID = IdGenerator.Guid();
                    hsan.RelPathFile = String.Format("{0}.hsan", hsan.Name);
                    HsanDB = hsan;
                }

                // Showlight (Xml)
                var xml = new GraphItemLLID();
                xml.Name = String.Format(NAME_SHOWLIGHT, dlcName);
                xml.Canonical = String.Format(CANONICAL_XMLSONG, dlcName);
                xml.RelPathDirectory = xml.Canonical;
                xml.LogPathDirectory = xml.Canonical;
                xml.Tag = new List<string>();
                xml.Tag.Add(TagValue.Application.GetDescription());
                xml.Tag.Add(TagValue.XML.GetDescription());
                xml.UUID = IdGenerator.Guid();
                xml.LLID = Guid.Parse(IdGenerator.LLID());
                xml.RelPathFile = String.Format("{0}.xml", xml.Name);
                xml.LogPathFile = xml.RelPathFile;
                SongXml.Add(xml);
                ShowlightXml = xml;
            }

            // Image Art (DDS)
            var aArtArray = new string[] { info.AlbumArtPath };
            if (currentPlatform.version == GameVersion.RS2014)
                aArtArray = new string[] {
                    String.Format("album_{0}_256.dds", dlcName),
                    String.Format("album_{0}_128.dds", dlcName),
                    String.Format("album_{0}_64.dds", dlcName) };
            ImageArt = new List<GraphItemLLID>();
            foreach (var album in aArtArray) {
                var dds = new GraphItemLLID();
                dds.Canonical = CANONICAL_IMAGEART[dlcType];
                dds.RelPathDirectory = dds.Canonical;
                dds.LogPathDirectory = dds.Canonical;
                dds.Tag = new List<string>();
                dds.Tag.Add(TagValue.DDS.GetDescription());
                dds.Tag.Add(TagValue.Image.GetDescription());
                dds.UUID = IdGenerator.Guid();
                dds.LLID = Guid.Parse(IdGenerator.LLID());
                dds.Name = Path.GetFileNameWithoutExtension(album);
                dds.RelPathFile = Path.GetFileName(album);
                dds.LogPathFile = dds.RelPathFile;
                ImageArt.Add(dds);
            }

            // Lyrics Font Texture
            if (!String.IsNullOrEmpty(info.LyricsTex)) {
                LyricsTex = new GraphItemLLID();
                var tex = new GraphItemLLID();
                tex.Canonical = String.Format(CANONICAL_MANIFEST_PC, dlcName);
                tex.RelPathDirectory = tex.Canonical;
                tex.LogPathDirectory = tex.Canonical;
                tex.Tag = new List<string>();
                tex.Tag.Add(TagValue.DDS.GetDescription());
                tex.Tag.Add(TagValue.Image.GetDescription());
                tex.UUID = IdGenerator.Guid();
                tex.LLID = Guid.Parse(IdGenerator.LLID());
                tex.Name = String.Format("lyrics_{0}", dlcName);
                tex.RelPathFile = tex.Name;
                tex.LogPathFile = tex.RelPathFile;
                LyricsTex = tex;
            }

            // Soundbank
            Soundbank = new List<GraphItemLLID>();
            var bnk = new GraphItemLLID();
            bnk.Canonical = String.Format(CANONICAL_SOUNDBANK, currentPlatform.GetPathName()[0].ToLower());
            bnk.RelPathDirectory = bnk.Canonical;
            bnk.LogPathDirectory = LOGPATH_SOUNDBANK;
            bnk.Tag = new List<string>();
            bnk.Tag.Add(TagValue.Audio.GetDescription());
            bnk.Tag.Add(TagValue.WwiseSoundBank.GetDescription());
            bnk.Tag.Add(GraphItem.GetPlatformTagDescription(currentPlatform.platform));
            bnk.UUID = IdGenerator.Guid();
            bnk.LLID = Guid.Parse(IdGenerator.LLID());
            bnk.Name = String.Format("song_{0}", dlcName);
            bnk.RelPathFile = String.Format("{0}.bnk", bnk.Name);
            bnk.LogPathFile = bnk.RelPathFile;
            Soundbank.Add(bnk);

            if (currentPlatform.version == GameVersion.RS2014) {
                // Soundbank Preview
                var bnkPreview = new GraphItemLLID();
                bnkPreview.Canonical = String.Format(CANONICAL_SOUNDBANK, currentPlatform.GetPathName()[0].ToLower());
                bnkPreview.RelPathDirectory = bnkPreview.Canonical;
                bnkPreview.LogPathDirectory = LOGPATH_SOUNDBANK;
                bnkPreview.Tag = new List<string>();
                bnkPreview.Tag.Add(TagValue.Audio.GetDescription());
                bnkPreview.Tag.Add(TagValue.WwiseSoundBank.GetDescription());
                bnkPreview.Tag.Add(GraphItem.GetPlatformTagDescription(currentPlatform.platform));
                bnkPreview.UUID = IdGenerator.Guid();
                bnkPreview.LLID = Guid.Parse(IdGenerator.LLID());
                bnkPreview.Name = String.Format("song_{0}_preview", dlcName);
                bnkPreview.RelPathFile = String.Format("{0}.bnk", bnkPreview.Name);
                bnkPreview.LogPathFile = bnkPreview.RelPathFile;
                Soundbank.Add(bnkPreview);
            }
        }
예제 #2
0
        private void InlayAggregateGraph(DLCPackageData info, DLCPackageType dlcType)
        {
            var dlcName = info.Inlay.DLCSixName;

            // Xblock
            var xbl = new GraphItem();

            xbl.Name             = String.Format("guitar_{0}", dlcName);
            xbl.Canonical        = String.Format(CANONICAL_XBLOCK[dlcType], dlcName);
            xbl.RelPathDirectory = xbl.Canonical;
            xbl.Tag = new List <string>();
            xbl.Tag.Add(TagValue.EmergentWorld.GetDescription());
            xbl.Tag.Add(TagValue.XWorld.GetDescription());
            xbl.UUID        = IdGenerator.Guid();
            xbl.RelPathFile = String.Format("guitar_{0}.xblock", dlcName);
            GameXblock      = xbl;


            // JsonDB
            JsonDB = new List <GraphItem>();
            var json = new GraphItem();

            json.Name             = String.Format("dlc_guitar_{0}", dlcName);
            json.Canonical        = currentPlatform.IsConsole ? CANONICAL_MANIFEST_CONSOLE : String.Format(CANONICAL_MANIFEST_PC, dlcName);
            json.RelPathDirectory = json.Canonical;
            json.Tag = new List <string>();
            json.Tag.Add(TagValue.Database.GetDescription());
            json.Tag.Add(TagValue.JsonDB.GetDescription());
            json.UUID        = IdGenerator.Guid();
            json.RelPathFile = String.Format("dlc_guitar_{0}.json", dlcName);
            JsonDB.Add(json);

            if (currentPlatform.IsConsole)
            {
                // HsonDB - One file for each manifest (Xbox360 / PS3 only)
                HsonDB = new List <GraphItem>();
                var hson = new GraphItem();
                hson.Name             = String.Format("dlc_{0}", dlcName);
                hson.Canonical        = CANONICAL_MANIFEST_CONSOLE;
                hson.RelPathDirectory = hson.Canonical;
                hson.Tag = new List <string>();
                hson.Tag.Add(TagValue.Database.GetDescription());
                hson.Tag.Add(TagValue.HsonDB.GetDescription());
                hson.UUID        = IdGenerator.Guid();
                hson.RelPathFile = String.Format("dlc_{0}.hson", dlcName);
                HsonDB.Add(hson);
            }
            else
            {
                // HsanDB - One file for all manifest (PC / Mac)
                var hsan = new GraphItem();
                hsan.Name             = String.Format("dlc_{0}", dlcName);
                hsan.Canonical        = String.Format(CANONICAL_MANIFEST_PC, dlcName);
                hsan.RelPathDirectory = hsan.Canonical;
                hsan.Tag = new List <string>();
                hsan.Tag.Add(TagValue.Database.GetDescription());
                hsan.Tag.Add(TagValue.HsanDB.GetDescription());
                hsan.UUID        = IdGenerator.Guid();
                hsan.RelPathFile = String.Format("dlc_{0}.hsan", dlcName);
                HsanDB           = hsan;
            }

            ImageArt = new List <GraphItemLLID>();

            // Inlay Icon (DDS)
            var aArtArray = new string[] { String.Format("reward_inlay_{0}_512", dlcName),
                                           String.Format("reward_inlay_{0}_256", dlcName),
                                           String.Format("reward_inlay_{0}_128", dlcName),
                                           String.Format("reward_inlay_{0}_64", dlcName) };

            foreach (var icon in aArtArray)
            {
                var iconDDS = new GraphItemLLID();
                iconDDS.Canonical        = CANONICAL_IMAGEART[dlcType];
                iconDDS.RelPathDirectory = iconDDS.Canonical;
                iconDDS.LogPathDirectory = iconDDS.Canonical;
                iconDDS.Tag = new List <string>();
                iconDDS.Tag.Add(TagValue.DDS.GetDescription());
                iconDDS.Tag.Add(TagValue.Image.GetDescription());
                iconDDS.UUID        = IdGenerator.Guid();
                iconDDS.LLID        = Guid.Parse(IdGenerator.LLID());
                iconDDS.Name        = icon;
                iconDDS.RelPathFile = String.Format("{0}.dds", iconDDS.Name);
                iconDDS.LogPathFile = iconDDS.RelPathFile;
                ImageArt.Add(iconDDS);
            }

            // Inlay Art
            var inlayDDS = new GraphItemLLID();

            inlayDDS.Canonical        = CANONICAL_INLAY;
            inlayDDS.RelPathDirectory = inlayDDS.Canonical;
            inlayDDS.LogPathDirectory = inlayDDS.Canonical;
            inlayDDS.Tag = new List <string>();
            inlayDDS.Tag.Add(TagValue.DDS.GetDescription());
            inlayDDS.Tag.Add(TagValue.Image.GetDescription());
            inlayDDS.UUID        = IdGenerator.Guid();
            inlayDDS.LLID        = Guid.Parse(IdGenerator.LLID());
            inlayDDS.Name        = String.Format("inlay_{0}", dlcName);
            inlayDDS.RelPathFile = String.Format("{0}.dds", inlayDDS.Name);
            inlayDDS.LogPathFile = inlayDDS.RelPathFile;
            ImageArt.Add(inlayDDS);

            // Inlay Nif
            var nif = new GraphItemLLID();

            nif.Canonical        = CANONICAL_INLAY;
            nif.RelPathDirectory = nif.Canonical;
            nif.LogPathDirectory = nif.Canonical;
            nif.Tag = new List <string>();
            nif.Tag.Add(TagValue.Application.GetDescription());
            nif.Tag.Add(TagValue.GamebryoSceneGraph.GetDescription());
            nif.UUID        = IdGenerator.Guid();
            nif.LLID        = Guid.Parse(IdGenerator.LLID());
            nif.Name        = dlcName;
            nif.RelPathFile = String.Format("{0}.nif", dlcName);
            nif.LogPathFile = nif.RelPathFile;
            InlayNif        = nif;
        }
        private void InlayAggregateGraph(DLCPackageData info, DLCPackageType dlcType)
        {
            var dlcName = info.Inlay.DLCSixName;

            // Xblock
            var xbl = new GraphItem();
            xbl.Name = String.Format("guitar_{0}", dlcName);
            xbl.Canonical = String.Format(CANONICAL_XBLOCK[dlcType], dlcName);
            xbl.RelPathDirectory = xbl.Canonical;
            xbl.Tag = new List<string>();
            xbl.Tag.Add(TagValue.EmergentWorld.GetDescription());
            xbl.Tag.Add(TagValue.XWorld.GetDescription());
            xbl.UUID = IdGenerator.Guid();
            xbl.RelPathFile = String.Format("guitar_{0}.xblock", dlcName);
            GameXblock = xbl;

            // JsonDB
            JsonDB = new List<GraphItem>();
            var json = new GraphItem();
            json.Name = String.Format("dlc_guitar_{0}", dlcName);
            json.Canonical = currentPlatform.IsConsole ? CANONICAL_MANIFEST_CONSOLE : String.Format(CANONICAL_MANIFEST_PC, dlcName);
            json.RelPathDirectory = json.Canonical;
            json.Tag = new List<string>();
            json.Tag.Add(TagValue.Database.GetDescription());
            json.Tag.Add(TagValue.JsonDB.GetDescription());
            json.UUID = IdGenerator.Guid();
            json.RelPathFile = String.Format("dlc_guitar_{0}.json", dlcName);
            JsonDB.Add(json);

            if (currentPlatform.IsConsole) {
                // HsonDB - One file for each manifest (Xbox360 / PS3 only)
                HsonDB = new List<GraphItem>();
                var hson = new GraphItem();
                hson.Name = String.Format("dlc_{0}", dlcName);
                hson.Canonical = CANONICAL_MANIFEST_CONSOLE;
                hson.RelPathDirectory = hson.Canonical;
                hson.Tag = new List<string>();
                hson.Tag.Add(TagValue.Database.GetDescription());
                hson.Tag.Add(TagValue.HsonDB.GetDescription());
                hson.UUID = IdGenerator.Guid();
                hson.RelPathFile = String.Format("dlc_{0}.hson", dlcName);
                HsonDB.Add(hson);
            } else {
                // HsanDB - One file for all manifest (PC / Mac)
                var hsan = new GraphItem();
                hsan.Name = String.Format("dlc_{0}", dlcName);
                hsan.Canonical = String.Format(CANONICAL_MANIFEST_PC, dlcName);
                hsan.RelPathDirectory = hsan.Canonical;
                hsan.Tag = new List<string>();
                hsan.Tag.Add(TagValue.Database.GetDescription());
                hsan.Tag.Add(TagValue.HsanDB.GetDescription());
                hsan.UUID = IdGenerator.Guid();
                hsan.RelPathFile = String.Format("dlc_{0}.hsan", dlcName);
                HsanDB = hsan;
            }

            ImageArt = new List<GraphItemLLID>();

            // Inlay Icon (DDS)
            var aArtArray = new string[] { String.Format("reward_inlay_{0}_512", dlcName),
                                           String.Format("reward_inlay_{0}_256", dlcName),
                                           String.Format("reward_inlay_{0}_128", dlcName),
                                           String.Format("reward_inlay_{0}_64", dlcName) };

            foreach (var icon in aArtArray) {
                var iconDDS = new GraphItemLLID();
                iconDDS.Canonical = CANONICAL_IMAGEART[dlcType];
                iconDDS.RelPathDirectory = iconDDS.Canonical;
                iconDDS.LogPathDirectory = iconDDS.Canonical;
                iconDDS.Tag = new List<string>();
                iconDDS.Tag.Add(TagValue.DDS.GetDescription());
                iconDDS.Tag.Add(TagValue.Image.GetDescription());
                iconDDS.UUID = IdGenerator.Guid();
                iconDDS.LLID = Guid.Parse(IdGenerator.LLID());
                iconDDS.Name = icon;
                iconDDS.RelPathFile = String.Format("{0}.dds", iconDDS.Name);
                iconDDS.LogPathFile = iconDDS.RelPathFile;
                ImageArt.Add(iconDDS);
            }

            // Inlay Art
            var inlayDDS = new GraphItemLLID();
            inlayDDS.Canonical = CANONICAL_INLAY;
            inlayDDS.RelPathDirectory = inlayDDS.Canonical;
            inlayDDS.LogPathDirectory = inlayDDS.Canonical;
            inlayDDS.Tag = new List<string>();
            inlayDDS.Tag.Add(TagValue.DDS.GetDescription());
            inlayDDS.Tag.Add(TagValue.Image.GetDescription());
            inlayDDS.UUID = IdGenerator.Guid();
            inlayDDS.LLID = Guid.Parse(IdGenerator.LLID());
            inlayDDS.Name = String.Format("inlay_{0}", dlcName);
            inlayDDS.RelPathFile = String.Format("{0}.dds", inlayDDS.Name);
            inlayDDS.LogPathFile = inlayDDS.RelPathFile;
            ImageArt.Add(inlayDDS);

            // Inlay Nif
            var nif = new GraphItemLLID();
            nif.Canonical = CANONICAL_INLAY;
            nif.RelPathDirectory = nif.Canonical;
            nif.LogPathDirectory = nif.Canonical;
            nif.Tag = new List<string>();
            nif.Tag.Add(TagValue.Application.GetDescription());
            nif.Tag.Add(TagValue.GamebryoSceneGraph.GetDescription());
            nif.UUID = IdGenerator.Guid();
            nif.LLID = Guid.Parse(IdGenerator.LLID());
            nif.Name = dlcName;
            nif.RelPathFile = String.Format("{0}.nif", dlcName);
            nif.LogPathFile = nif.RelPathFile;
            InlayNif = nif;
        }
예제 #4
0
        private void SongAggregateGraph(DLCPackageData info, DLCPackageType dlcType)
        {
            var dlcName       = info.Name.ToLower();
            var songPartition = new SongPartition();

            // Xblock
            var xbl = new GraphItem();

            xbl.Name             = dlcName;
            xbl.Canonical        = String.Format(CANONICAL_XBLOCK[dlcType], dlcName);
            xbl.RelPathDirectory = xbl.Canonical;
            xbl.Tag = new List <string>();
            xbl.Tag.Add(TagValue.EmergentWorld.GetDescription());
            xbl.Tag.Add(TagValue.XWorld.GetDescription());
            xbl.UUID        = IdGenerator.Guid();
            xbl.RelPathFile = String.Format("{0}.xblock", xbl.Name);
            GameXblock      = xbl;

            JsonDB = new List <GraphItem>();
            if (currentPlatform.IsConsole)
            {
                HsonDB = new List <GraphItem>();
            }

            SongXml       = new List <GraphItemLLID>();
            MusicgameSong = new List <GraphItemLLID>();
            foreach (var arrangement in info.Arrangements)
            {
                var name = String.Format(NAME_ARRANGEMENT, dlcName, songPartition.GetArrangementFileName(arrangement.Name, arrangement.ArrangementType).ToLower());

                // JsonDB
                var json = new GraphItem();
                json.Name             = name;
                json.Canonical        = currentPlatform.IsConsole ? CANONICAL_MANIFEST_CONSOLE : String.Format(CANONICAL_MANIFEST_PC, dlcName);
                json.RelPathDirectory = json.Canonical;
                json.Tag = new List <string>();
                json.Tag.Add(TagValue.Database.GetDescription());
                json.Tag.Add(TagValue.JsonDB.GetDescription());
                json.UUID        = IdGenerator.Guid();
                json.RelPathFile = String.Format("{0}.json", json.Name);
                JsonDB.Add(json);

                //One file for each arrangement (Xbox360 / PS3 only)
                if (currentPlatform.IsConsole)
                {
                    // HsonDB
                    var hson = new GraphItem();
                    hson.Name             = name;
                    hson.Canonical        = CANONICAL_MANIFEST_CONSOLE;
                    hson.RelPathDirectory = hson.Canonical;
                    hson.Tag = new List <string>();
                    hson.Tag.Add(TagValue.Database.GetDescription());
                    hson.Tag.Add(TagValue.HsonDB.GetDescription());
                    hson.UUID        = IdGenerator.Guid();
                    hson.RelPathFile = String.Format("{0}.hson", json.Name);
                    HsonDB.Add(hson);
                }

                // XmlSong
                var xml = new GraphItemLLID();
                xml.Name             = name;
                xml.Canonical        = String.Format(CANONICAL_XMLSONG, dlcName);
                xml.RelPathDirectory = xml.Canonical;
                xml.LogPathDirectory = xml.Canonical;
                xml.Tag = new List <string>();
                xml.Tag.Add(TagValue.Application.GetDescription());
                xml.Tag.Add(TagValue.XML.GetDescription());
                xml.UUID        = arrangement.SongXml.UUID;
                xml.LLID        = Guid.Parse(arrangement.SongXml.LLID);
                xml.RelPathFile = String.Format("{0}.xml", xml.Name);
                xml.LogPathFile = xml.RelPathFile;
                SongXml.Add(xml);

                // Musicgame
                var sng = new GraphItemLLID();
                sng.Name             = name;
                sng.Canonical        = String.Format(CANONICAL_GAMESONG, currentPlatform.GetPathName()[1].ToLower());
                sng.RelPathDirectory = sng.Canonical;
                sng.LogPathDirectory = sng.Canonical;
                sng.Tag = new List <string>();
                sng.Tag.Add(TagValue.Application.GetDescription());
                sng.Tag.Add(TagValue.MusicgameSong.GetDescription());
                if (currentPlatform.IsConsole)
                {
                    sng.Tag.Add(GraphItem.GetPlatformTagDescription(currentPlatform.platform));
                }
                sng.UUID        = arrangement.SongFile.UUID;
                sng.LLID        = Guid.Parse(arrangement.SongFile.LLID);
                sng.RelPathFile = String.Format("{0}.sng", sng.Name);
                sng.LogPathFile = sng.RelPathFile;
                MusicgameSong.Add(sng);
            }

            if (currentPlatform.version == GameVersion.RS2014)
            {
                //One file for all arrangement (PC / Mac only)
                if (!currentPlatform.IsConsole)
                {
                    // HsanDB
                    var hsan = new GraphItem();
                    hsan.Name             = String.Format("songs_dlc_{0}", dlcName);
                    hsan.Canonical        = String.Format(CANONICAL_MANIFEST_PC, dlcName);
                    hsan.RelPathDirectory = hsan.Canonical;
                    hsan.Tag = new List <string>();
                    hsan.Tag.Add(TagValue.Database.GetDescription());
                    hsan.Tag.Add(TagValue.HsanDB.GetDescription());
                    hsan.UUID        = IdGenerator.Guid();
                    hsan.RelPathFile = String.Format("{0}.hsan", hsan.Name);
                    HsanDB           = hsan;
                }

                // Showlight (Xml)
                var xml = new GraphItemLLID();
                xml.Name             = String.Format(NAME_SHOWLIGHT, dlcName);
                xml.Canonical        = String.Format(CANONICAL_XMLSONG, dlcName);
                xml.RelPathDirectory = xml.Canonical;
                xml.LogPathDirectory = xml.Canonical;
                xml.Tag = new List <string>();
                xml.Tag.Add(TagValue.Application.GetDescription());
                xml.Tag.Add(TagValue.XML.GetDescription());
                xml.UUID        = IdGenerator.Guid();
                xml.LLID        = Guid.Parse(IdGenerator.LLID());
                xml.RelPathFile = String.Format("{0}.xml", xml.Name);
                xml.LogPathFile = xml.RelPathFile;
                SongXml.Add(xml);
                ShowlightXml = xml;
            }

            // Image Art (DDS)
            var aArtArray = new string[] { info.AlbumArtPath };

            if (currentPlatform.version == GameVersion.RS2014)
            {
                aArtArray = new string[] {
                    String.Format("album_{0}_256.dds", dlcName),
                    String.Format("album_{0}_128.dds", dlcName),
                    String.Format("album_{0}_64.dds", dlcName)
                }
            }
            ;
            ImageArt = new List <GraphItemLLID>();
            foreach (var album in aArtArray)
            {
                var dds = new GraphItemLLID();
                dds.Canonical        = CANONICAL_IMAGEART[dlcType];
                dds.RelPathDirectory = dds.Canonical;
                dds.LogPathDirectory = dds.Canonical;
                dds.Tag = new List <string>();
                dds.Tag.Add(TagValue.DDS.GetDescription());
                dds.Tag.Add(TagValue.Image.GetDescription());
                dds.UUID        = IdGenerator.Guid();
                dds.LLID        = Guid.Parse(IdGenerator.LLID());
                dds.Name        = Path.GetFileNameWithoutExtension(album);
                dds.RelPathFile = Path.GetFileName(album);
                dds.LogPathFile = dds.RelPathFile;
                ImageArt.Add(dds);
            }

            // Lyrics Font Texture
            if (!String.IsNullOrEmpty(info.LyricsTex))
            {
                LyricsTex = new GraphItemLLID();
                var tex = new GraphItemLLID();
                tex.Canonical        = String.Format(CANONICAL_MANIFEST_PC, dlcName);
                tex.RelPathDirectory = tex.Canonical;
                tex.LogPathDirectory = tex.Canonical;
                tex.Tag = new List <string>();
                tex.Tag.Add(TagValue.DDS.GetDescription());
                tex.Tag.Add(TagValue.Image.GetDescription());
                tex.UUID        = IdGenerator.Guid();
                tex.LLID        = Guid.Parse(IdGenerator.LLID());
                tex.Name        = String.Format("lyrics_{0}", dlcName);
                tex.RelPathFile = tex.Name;
                tex.LogPathFile = tex.RelPathFile;
                LyricsTex       = tex;
            }

            // Soundbank
            Soundbank = new List <GraphItemLLID>();
            var bnk = new GraphItemLLID();

            bnk.Canonical        = String.Format(CANONICAL_SOUNDBANK, currentPlatform.GetPathName()[0].ToLower());
            bnk.RelPathDirectory = bnk.Canonical;
            bnk.LogPathDirectory = LOGPATH_SOUNDBANK;
            bnk.Tag = new List <string>();
            bnk.Tag.Add(TagValue.Audio.GetDescription());
            bnk.Tag.Add(TagValue.WwiseSoundBank.GetDescription());
            bnk.Tag.Add(GraphItem.GetPlatformTagDescription(currentPlatform.platform));
            bnk.UUID        = IdGenerator.Guid();
            bnk.LLID        = Guid.Parse(IdGenerator.LLID());
            bnk.Name        = String.Format("song_{0}", dlcName);
            bnk.RelPathFile = String.Format("{0}.bnk", bnk.Name);
            bnk.LogPathFile = bnk.RelPathFile;
            Soundbank.Add(bnk);

            if (currentPlatform.version == GameVersion.RS2014)
            {
                // Soundbank Preview
                var bnkPreview = new GraphItemLLID();
                bnkPreview.Canonical        = String.Format(CANONICAL_SOUNDBANK, currentPlatform.GetPathName()[0].ToLower());
                bnkPreview.RelPathDirectory = bnkPreview.Canonical;
                bnkPreview.LogPathDirectory = LOGPATH_SOUNDBANK;
                bnkPreview.Tag = new List <string>();
                bnkPreview.Tag.Add(TagValue.Audio.GetDescription());
                bnkPreview.Tag.Add(TagValue.WwiseSoundBank.GetDescription());
                bnkPreview.Tag.Add(GraphItem.GetPlatformTagDescription(currentPlatform.platform));
                bnkPreview.UUID        = IdGenerator.Guid();
                bnkPreview.LLID        = Guid.Parse(IdGenerator.LLID());
                bnkPreview.Name        = String.Format("song_{0}_preview", dlcName);
                bnkPreview.RelPathFile = String.Format("{0}.bnk", bnkPreview.Name);
                bnkPreview.LogPathFile = bnkPreview.RelPathFile;
                Soundbank.Add(bnkPreview);
            }
        }