示例#1
0
        private void ExportFamilies(string path)
        {
            foreach (Family fam in loader.families)
            {
                string familyDirectory = Path.Combine(path, fam.name);

                if (!Directory.Exists(familyDirectory))
                {
                    Directory.CreateDirectory(familyDirectory);
                }

                string filePath = Path.Combine(familyDirectory, "Family_" + fam.name + ".json");
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }

                using (StreamWriter aiModelFileStream = File.CreateText(filePath)) {
                    aiModelFileStream.Write(fam.ToJSON());
                    aiModelFileStream.Flush();
                    aiModelFileStream.Close();
                }

                foreach (State state in fam.states)
                {
                    ExportState exportState = ExportState.CreateFromState(state);

                    string stateFilePath = Path.Combine(familyDirectory, "State_" + state.index + ".json");
                    if (File.Exists(stateFilePath))
                    {
                        File.Delete(stateFilePath);
                    }

                    using (StreamWriter stateFileStream = File.CreateText(stateFilePath)) {
                        stateFileStream.Write(exportState.ToJSON());
                        stateFileStream.Flush();
                        stateFileStream.Close();
                    }
                }

                foreach (ObjectList objectList in fam.objectLists)
                {
                    if (objectList == null)
                    {
                        continue;
                    }
                    string objectListJSON = objectList.ToJSON();
                    string objectListHash = HashUtils.MD5Hash(objectListJSON);

                    string objectListFilePath = Path.Combine(familyDirectory, "ObjectList_" + objectListHash + ".json");
                    if (File.Exists(objectListFilePath))
                    {
                        File.Delete(objectListFilePath);
                    }

                    using (StreamWriter aiModelFileStream = File.CreateText(objectListFilePath)) {
                        aiModelFileStream.Write(objectListJSON);
                        aiModelFileStream.Flush();
                        aiModelFileStream.Close();
                    }
                }
            }
        }