/// <summary>
        /// Sets up or migrates the initial state of the project
        /// * Includes required modules
        /// * Perfrorms any migration
        /// </summary>
        /// <param name="registry"></param>
        /// <param name="project"></param>
        private static void SetupProject(IRegistry registry, UTinyProject project)
        {
            var module = project.Module.Dereference(registry);

            // Make sure there's a dependency on the core modules
            module.AddExplicitModuleDependency((UTinyModule.Reference)registry.FindByName <UTinyModule>("UTiny.Core"));
            module.AddExplicitModuleDependency((UTinyModule.Reference)registry.FindByName <UTinyModule>("UTiny.Math"));
            module.AddExplicitModuleDependency((UTinyModule.Reference)registry.FindByName <UTinyModule>("UTiny.Core2D"));

            if (project.Configuration.Equals(UTinyEntity.Reference.None))
            {
                var configurationEntity = registry.CreateEntity(UTinyId.New(), "Configuration");
                project.Configuration = (UTinyEntity.Reference)configurationEntity;
            }
        }
Exemple #2
0
        private void TryProcessFileDependenciesAs <TRegistryObject>(IRegistry registry, string path, string expectedExtension, Action <string, IRegistry> loadMethod) where TRegistryObject : class, IRegistryObject
        {
            if (Path.GetExtension(path) != expectedExtension)
            {
                return;
            }
            var filename = Path.GetFileNameWithoutExtension(path);

            var registryObject = registry?.FindByName <TRegistryObject>(filename);

            if (null != registryObject)
            {
                AddRegistryObjectDependency(registryObject);
            }
            else
            {
                path = RelativeToProjectFolder(path);
                // Load
                var projectRegistry = new UTinyRegistry();
                loadMethod(path, projectRegistry);
                AddRegistryObjectDependency(projectRegistry.FindByName <TRegistryObject>(filename));
            }
        }
 /// <summary>
 /// Sets up or migrates the initial state of a standalone module
 /// * Includes required modules
 /// * Perfrorms any migration
 /// </summary>
 /// <param name="registry"></param>
 /// <param name="module"></param>
 private static void SetupModule(IRegistry registry, UTinyModule module)
 {
     // Always include a dependency on core
     module.AddExplicitModuleDependency((UTinyModule.Reference)registry.FindByName <UTinyModule>("UTiny.Core"));
 }