public void LoadModShapes() { Parallel.ForEach(Directory.GetFiles(PathLookup.Transform(Path.Combine(this.ModFolderPath, "Objects", "Database", "ShapeSets"))), shapeListFilePath => { if (IsValidShapeListPath(shapeListFilePath)) { try { var partListData = JsonConvert.DeserializeObject <PartListData>(File.ReadAllText(shapeListFilePath)); PartLoader.LoadShapes(partListData, this); if (partListData.PartList != null) { foreach (var part in partListData.PartList) { this.partUuids.Add(part.Uuid); } } if (partListData.BlockList != null) { foreach (var block in partListData.BlockList) { this.partUuids.Add(block.Uuid); } } } catch (Exception e) { Debug.LogException(new Exception($"\nAn error occurred when trying to load mod data", e)); } } }); }