namespace SingularityGroup.HotReload.Editor.ProjectGeneration { /// /// Allows to post process Hot Reload's project generation. /// This should only be needed if you tinker with Unity's project generation as well. /// Types that inherit from this interface will get created automatically whenever Hot Reload generates project files. /// Types that implement this interface need to have a public parameterless default constructor. /// public interface IHotReloadProjectGenerationPostProcessor { /// /// Specifies the ordering of the post processor. /// Post processors with lower callback order get executed first. /// int CallbackOrder { get; } /// /// Use this method to set up state you need for the project generation. /// Calls to unity API need to happen here and it's values need to be cached. /// This is the only method that will get executed on the main thread. /// void InitializeOnMainThread(); /// /// Gets called whenever Hot Reload generated a project file. /// The destination file path for the .csproj file /// The file contents of the .csproj file /// string OnGeneratedCSProjectThreaded(string path, string contents); /// /// Gets called whenever Hot Reload generated a solution file. /// The destination file path for the .sln file /// The file contents of the .sln file /// string OnGeneratedSlnSolutionThreaded(string path, string contents); /// /// Gets called after Hot Reload project generation is finished. /// void OnGeneratedCSProjectFilesThreaded(); } }