public void SetAddMode(ModuleWaterfallFX fxModule)
        {
            showWindow        = true;
            module            = fxModule;
            windowMode        = ModifierPopupMode.Add;
            parentErrorString = "";

            workflowOptions = Enum.GetNames(typeof(AssetWorkflow)).ToArray();
            workflowFlag    = 0;
            var modelOpts = new List <string>();

            models = WaterfallAssets.GetModels((AssetWorkflow)Enum.Parse(typeof(AssetWorkflow), workflowOptions[workflowFlag]));
            foreach (var w in models)
            {
                modelOpts.Add($"<b>{w.Name}</b>\n{w.Description}\n{w.Path}");
            }

            modelOptions = modelOpts.ToArray();

            var shaderOpts = new List <string>();

            shaders = WaterfallAssets.GetShaders((AssetWorkflow)Enum.Parse(typeof(AssetWorkflow), workflowOptions[workflowFlag]));
            foreach (var w in shaders)
            {
                shaderOpts.Add($"<b>{w.Name}</b>\n{w.Description}");
            }

            shaderOptions  = shaderOpts.ToArray();
            WindowPosition = new(Screen.width / 2, Screen.height / 2f, 750, 400);
        }
        protected void DrawAdd()
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label("Effect Name", GUILayout.Width(160f));
            newEffectName = GUILayout.TextArea(newEffectName, GUILayout.Width(200f));
            GUILayout.Space(250f);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Effect Parent [required]", GUILayout.Width(160f));
            parentName = GUILayout.TextArea(parentName, GUILayout.Width(200f));
            if (parentErrorString != "")
            {
                GUILayout.Label($"<color=#FF0000>{parentErrorString}</color>", GUILayout.Width(250f));
            }
            else
            {
                GUILayout.Space(250f);
            }
            GUILayout.EndHorizontal();



            GUILayout.Label("<b>SELECT WORKFLOW</b>", GUILayout.Width(120f));
            int newFlag = GUILayout.SelectionGrid(workflowFlag,
                                                  workflowOptions,
                                                  Mathf.Min(workflowOptions.Length, 4),
                                                  UIResources.GetStyle("radio_text_button"));


            if (newFlag != workflowFlag)
            {
                workflowFlag = newFlag;

                var modelOpts = new List <string>();
                models = WaterfallAssets.GetModels((AssetWorkflow)Enum.Parse(typeof(AssetWorkflow), workflowOptions[workflowFlag]));
                foreach (var w in models)
                {
                    modelOpts.Add($"<b>{w.Name}</b>\n{w.Description}\n{w.Path}");
                }

                modelOptions = modelOpts.ToArray();

                var shaderOpts = new List <string>();
                shaders = WaterfallAssets.GetShaders((AssetWorkflow)Enum.Parse(typeof(AssetWorkflow), workflowOptions[workflowFlag]));
                foreach (var w in shaders)
                {
                    shaderOpts.Add($"<b>{w.Name}</b>\n{w.Description}");
                }

                shaderOptions = shaderOpts.ToArray();

                modelFlag  = 0;
                shaderFlag = 0;
            }

            GUILayout.BeginVertical(GUI.skin.textArea);

            GUILayout.BeginHorizontal();
            GUILayout.Label("<b>Model</b>", GUILayout.Width(120f));
            modelFlag = GUILayout.SelectionGrid(modelFlag,
                                                modelOptions,
                                                Mathf.Min(modelOptions.Length, 2),
                                                UIResources.GetStyle("radio_text_button"));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("<b>Shader</b>", GUILayout.Width(120f));
            shaderFlag = GUILayout.SelectionGrid(shaderFlag,
                                                 shaderOptions,
                                                 Mathf.Min(shaderOptions.Length, 2),
                                                 UIResources.GetStyle("radio_text_button"));
            GUILayout.EndHorizontal();

            GUILayout.EndVertical();
            GUILayout.BeginHorizontal();

            randomizeSeed = GUILayout.Toggle(randomizeSeed, "Randomize Effect Seed");

            GUILayout.EndHorizontal();

            if (GUILayout.Button("Add"))
            {
                var modelXforms = module.GetComponentsInChildren <Transform>();
                if (parentName == "")
                {
                    parentErrorString = "Please specify a valid Transform name";
                }
                else if (modelXforms.ToList().FindAll(x => x.name == parentName).Any())
                {
                    module.AddEffect(CreateNewEffect());
                    WaterfallUI.Instance.RefreshEffectList();
                    showWindow = false;
                }
                else
                {
                    parentErrorString = $"{parentName} is not a valid Transform on this part";
                }
            }

            if (GUILayout.Button("Cancel"))
            {
                showWindow = false;
            }
        }