示例#1
0
        public override Behaviac.Design.FileManagers.SaveResult Export(List <BehaviorNode> behaviors, bool exportUnifiedFile, bool generateCustomizedTypes)
        {
            string behaviorFilename = "behaviors/generated_behaviors.cs";
            string agentFolder      = string.Empty;

            Behaviac.Design.FileManagers.SaveResult result = VerifyFilename(ref behaviorFilename, ref agentFolder);
            if (Behaviac.Design.FileManagers.SaveResult.Succeeded == result)
            {
                string behaviorFolder = Path.GetDirectoryName(behaviorFilename);
                clearFolder(behaviorFolder);
                //clearFolder(agentFolder);

                ExportBehaviors(behaviors, behaviorFilename, exportUnifiedFile);

                ExportCustomizedMembers(agentFolder);

                if (generateCustomizedTypes)
                {
                    ExportAgents(agentFolder);

                    ExportCustomizedTypes(agentFolder);
                }
            }

            return(result);
        }
示例#2
0
        private void ExportBehaviors(List <BehaviorNode> behaviors, string filename, bool exportUnifiedFile)
        {
            using (StreamWriter file = new StreamWriter(filename))
            {
                ExportHead(file, filename);

                ExportMemberDeclaration(file);

                if (exportUnifiedFile)
                {
                    foreach (BehaviorNode behavior in behaviors)
                    {
                        ExportBody(file, behavior);
                    }
                }
                else
                {
                    foreach (BehaviorNode behavior in behaviors)
                    {
                        string behaviorFilename = behavior.RelativePath;
                        behaviorFilename = behaviorFilename.Replace("\\", "/");
                        behaviorFilename = Path.ChangeExtension(behaviorFilename, "cs");
                        behaviorFilename = Path.Combine("behaviors", behaviorFilename);

                        string agentFolder = string.Empty;

                        Behaviac.Design.FileManagers.SaveResult result = VerifyFilename(ref behaviorFilename, ref agentFolder);
                        if (Behaviac.Design.FileManagers.SaveResult.Succeeded == result)
                        {
                            using (StreamWriter behaviorFile = new StreamWriter(behaviorFilename))
                            {
                                ExportHead(behaviorFile, behaviorFilename);

                                ExportBody(behaviorFile, behavior);

                                ExportTail(behaviorFile);

                                behaviorFile.Close();
                            }
                        }
                    }
                }

                ExportTail(file);

                file.Close();
            }
        }
示例#3
0
        public override Behaviac.Design.FileManagers.SaveResult Export(List <BehaviorNode> behaviors)
        {
            string filename = string.Empty;

            Behaviac.Design.FileManagers.SaveResult result = VerifyFilename(out filename);
            if (Behaviac.Design.FileManagers.SaveResult.Succeeded == result)
            {
                using (StreamWriter file = new StreamWriter(filename))
                {
                    ExportBehaviors(file, behaviors, filename);
                    file.Close();
                }
            }

            return(result);
        }
示例#4
0
        public override Behaviac.Design.FileManagers.SaveResult Export()
        {
            string filename = string.Empty;

            Behaviac.Design.FileManagers.SaveResult result = VerifyFilename(out filename);
            if (Behaviac.Design.FileManagers.SaveResult.Succeeded == result)
            {
                // export to the file
                using (StreamWriter file = new StreamWriter(filename))
                {
                    ExportBehavior(file, _node, filename);
                    file.Close();
                }
            }

            return(result);
        }
示例#5
0
        private Behaviac.Design.FileManagers.SaveResult VerifyFilename(ref string behaviorFilename, ref string agentFolder)
        {
            behaviorFilename = Path.Combine(_outputFolder, behaviorFilename);
            agentFolder      = Path.Combine(_outputFolder, "types");

            // get the abolute folder of the file we want to export
            string folder = Path.GetDirectoryName(behaviorFilename);

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

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

            // verify it can be writable
            Behaviac.Design.FileManagers.SaveResult result = Behaviac.Design.FileManagers.FileManager.MakeWritable(behaviorFilename, Resources.ExportFileWarning);
            return(result);
        }