Exemple #1
0
        protected void LoadContent()
        {
            Wait.Message = "Extracting Archive";
            SimPe.StringArrayList files = ExtractArchive();

            Wait.SubStart(files.Count);

            files = SortFilesByType(files);
            LoadFiles(files);

            Wait.SubStop();
        }
Exemple #2
0
        private SimPe.StringArrayList SortFilesByType(SimPe.StringArrayList files)
        {
            SimPe.StringArrayList objects = new StringArrayList();
            SimPe.StringArrayList other   = new StringArrayList();
            foreach (string file in files)
            {
                SimPe.Cache.PackageType type = PackageInfo.ClassifyPackage(file);
                SimPe.Plugin.DownloadsToolFactory.TeleportFileIndex.AddIndexFromPackage(file);

                if (type == SimPe.Cache.PackageType.Object || type == SimPe.Cache.PackageType.MaxisObject || type == SimPe.Cache.PackageType.Sim)
                {
                    objects.Add(file);
                }
                else
                {
                    other.Add(file);
                }
            }
            objects.AddRange(other);
            other.Clear(); other = null;
            files.Clear(); files = null;

            return(objects);
        }
Exemple #3
0
        private void LoadFiles(SimPe.StringArrayList files)
        {
            int nr = 0;

            foreach (string file in files)
            {
                Wait.Progress = nr++;
                Wait.Message  = System.IO.Path.GetFileName(file);

                if (!FileTable.FileIndex.Contains(file))
                {
                    SimPe.Plugin.DownloadsToolFactory.TeleportFileIndex.AddIndexFromPackage(file);
                }

                Downloads.IPackageHandler hnd = HandlerRegistry.Global.LoadFileHandler(file);
                if (hnd != null)
                {
                    nfos.AddRange(hnd.Objects);
                }


                SimPe.Packages.StreamFactory.CloseStream(file);
            }
        }