SEToolbox.Models.ExplorerModel.LoadEntities C# (CSharp) Method

LoadEntities() public method

public LoadEntities ( string filenames ) : List
filenames string
return List
        public List<string> LoadEntities(string[] filenames)
        {
            IsBusy = true;
            var idReplacementTable = new Dictionary<long, long>();
            var badfiles = new List<string>();

            foreach (var filename in filenames)
            {
                bool isCompressed;
                MyObjectBuilder_CubeGrid cubeEntity;
                MyObjectBuilder_FloatingObject floatingEntity;
                MyObjectBuilder_Meteor meteorEntity;
                MyObjectBuilder_Character characterEntity;
                MyObjectBuilder_Definitions prefabDefinitions;

                if (SpaceEngineersApi.TryReadSpaceEngineersFile(filename, out cubeEntity, out isCompressed))
                {
                    MergeData(cubeEntity, ref idReplacementTable);
                }
                else if (SpaceEngineersApi.TryReadSpaceEngineersFile(filename, out prefabDefinitions, out isCompressed))
                {
                    if (prefabDefinitions.Prefabs != null)
                    {
                        foreach (var prefab in prefabDefinitions.Prefabs)
                        {
                            if (prefab.CubeGrid != null)
                                MergeData(prefab.CubeGrid, ref idReplacementTable);
                            if (prefab.CubeGrids != null)
                            {
                                foreach (var cubeGrid in prefab.CubeGrids)
                                {
                                    MergeData(cubeGrid, ref idReplacementTable);
                                }
                            }
                        }
                    }
                }
                else if (SpaceEngineersApi.TryReadSpaceEngineersFile(filename, out floatingEntity, out isCompressed))
                {
                    var newEntity = AddEntity(floatingEntity);
                    newEntity.EntityId = MergeId(floatingEntity.EntityId, ref idReplacementTable);
                }
                else if (SpaceEngineersApi.TryReadSpaceEngineersFile(filename, out meteorEntity, out isCompressed))
                {
                    var newEntity = AddEntity(meteorEntity);
                    newEntity.EntityId = MergeId(meteorEntity.EntityId, ref idReplacementTable);
                }
                else if (SpaceEngineersApi.TryReadSpaceEngineersFile(filename, out characterEntity, out isCompressed))
                {
                    var newEntity = AddEntity(characterEntity);
                    newEntity.EntityId = MergeId(characterEntity.EntityId, ref idReplacementTable);
                }
                else
                {
                    badfiles.Add(filename);
                }
            }

            IsBusy = false;
            return badfiles;
        }