示例#1
0
        private void commonShowScene(AnomalyController anomalyController)
        {
            if (!shown)
            {
                if (editInterface != null)
                {
                    editInterface.IconReferenceTag = AnomalyIcons.ProjectBuilt;
                }

                shown = true;

                anomalyController.ResourceController.addResources(resourceFileInterface.getFileObject());

                instanceGroup.showInstances(anomalyController.SimObjectController);

                foreach (ProjectReference reference in projectData.ProjectReferences.ReferencedProjectNames)
                {
                    Project subProject = solution.getProject(reference.ProjectName);
                    if (subProject != null)
                    {
                        subProject.commonShowScene(anomalyController);
                    }
                    else
                    {
                        Log.Error("Could not find referenced project {0} for project {1}. Project could not be shown.", reference.ProjectName, Name);
                    }
                }
            }
        }
示例#2
0
        public void loadExternalFiles(AnomalyController controller)
        {
            if (File.Exists(solutionFile))
            {
                try
                {
                    using (var stream = File.Open(solutionFile, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
                    {
                        solutionData = saver.restoreObject <SolutionData>(stream);
                    }
                }
                catch (Exception e)
                {
                    Log.Error("Could not load solution data file {0} because:\n{1}", solutionFile, e.Message);
                }
            }
            if (solutionData == null)
            {
                solutionData = new SolutionData();
            }

            this.anomalyController = controller;
            String globalResourcesFile = Path.Combine(workingDirectory, "Resources.xml");

            if (!File.Exists(globalResourcesFile))
            {
                ResourceManager globalResources = controller.PluginManager.createScratchResourceManager();
                using (var stream = File.Open(globalResourcesFile, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
                {
                    saver.saveObject(globalResources, stream);
                }
            }

            resourceFileInterface = new ResourceManagerFileInterface("Global Resources", EngineIcons.Resource, globalResourcesFile, anomalyController.ResourceController.GlobalResources);
            anomalyController.ResourceController.GlobalResources.addResources(resourceFileInterface.getFileObject());
            anomalyController.ResourceController.GlobalResources.initializeResources();

            foreach (String projectFile in Directory.GetFiles(workingDirectory, "*.prj", SearchOption.AllDirectories))
            {
                Project project = new Project(this, Path.GetFileNameWithoutExtension(projectFile), Path.GetDirectoryName(projectFile));
                addProject(project);
                if (currentProject == null)
                {
                    currentProject = project;
                }
            }
        }
示例#3
0
 public void refreshGlobalResources()
 {
     if (currentProject != null)
     {
         currentProject.unloadScene(anomalyController);
         anomalyController.ResourceController.clearResources();
         anomalyController.ResourceController.applyToScene();
     }
     anomalyController.ResourceController.GlobalResources.changeResourcesToMatch(resourceFileInterface.getFileObject());
     anomalyController.ResourceController.GlobalResources.initializeResources();
     createCurrentProject();
 }