void Install(BoltPackage package)
    {
        string       packageName = package.name;
        PackageFlags flags       = package.packageFlags;

        if ((flags & PackageFlags.WarnForProjectOverwrite) == PackageFlags.WarnForProjectOverwrite)
        {
            if (ProjectExists())
            {
                if (EditorUtility.DisplayDialog("Warning",
                                                "Importing this package will overwrite the existing bolt project file that contains all your states, events, etc. Are you sure?",
                                                "Yes", "No") == false)
                {
                    return;
                }
            }
        }

        if ((flags & PackageFlags.RunInitialSetup) == PackageFlags.RunInitialSetup)
        {
            InitialSetup();
        }

        AssetDatabase.ImportPackage(PackagePath(packageName), false);

        currentStage = BoltSetupStage.Bolt;
    }
 void BackStep()
 {
     currentStage -= (int)currentStage > 1 ? 1 : 0;
 }
 void NextStep()
 {
     currentStage += (int)currentStage < Enum.GetValues(typeof(BoltSetupStage)).Length ? 1 : 0;
 }