Files
2026-02-23 22:01:07 +07:00

107 lines
2.8 KiB
C#

using System.IO;
using UnityEditor;
using UnityEngine;
namespace AllIn13DShader
{
public class GradientCreatorDrawer
{
private GradientCreatorTool gradientCreatorTool;
private CommonStyles commonStyles;
private Texture2D GradientTex
{
get
{
return gradientCreatorTool.gradientTex;
}
set
{
gradientCreatorTool.gradientTex = value;
}
}
private Gradient Grad
{
get
{
return gradientCreatorTool.gradient;
}
set
{
gradientCreatorTool.gradient = value;
}
}
private TextureSizes GradientSizes
{
get
{
return gradientCreatorTool.gradientSizes;
}
set
{
gradientCreatorTool.gradientSizes = value;
}
}
private FilterMode GradientFiltering
{
get
{
return gradientCreatorTool.gradientFiltering;
}
set
{
gradientCreatorTool.gradientFiltering = value;
}
}
public GradientCreatorDrawer(GradientCreatorTool gradientCreatorTool, CommonStyles commonStyles)
{
this.gradientCreatorTool = gradientCreatorTool;
this.commonStyles = commonStyles;
}
public void Draw()
{
GUILayout.Label("Color Gradient Creator", commonStyles.bigLabel);
GUILayout.Space(20);
GUILayout.Label("This feature can be used to create textures for the Color Ramp Effect", EditorStyles.boldLabel);
EditorGUI.BeginChangeCheck();
Grad = EditorGUILayout.GradientField("Color Gradient: ", Grad, GUILayout.Height(25), GUILayout.MaxWidth(CommonStyles.BUTTON_WIDTH));
EditorGUILayout.BeginHorizontal();
{
GUILayout.Label("Texture Size:", GUILayout.MaxWidth(145));
GradientSizes = (TextureSizes)EditorGUILayout.EnumPopup(GradientSizes, GUILayout.MaxWidth(200));
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
{
GUILayout.Label("New Textures Filtering: ", GUILayout.MaxWidth(145));
GradientFiltering = (FilterMode)EditorGUILayout.EnumPopup(GradientFiltering, GUILayout.MaxWidth(200));
}
EditorGUILayout.EndHorizontal();
bool gradientChanged = EditorGUI.EndChangeCheck();
if (gradientChanged)
{
gradientCreatorTool.CreateGradientTexture();
}
GUILayout.Space(20);
GUILayout.Label("Select the folder where new Color Gradient Textures will be saved", EditorStyles.boldLabel);
GlobalConfiguration.instance.GradientSavePath = EditorUtils.DrawSelectorFolder(GlobalConfiguration.instance.GradientSavePath, /*AllIn13DShaderConfig.GRADIENT_SAVE_PATH_DEFAULT,*/ "Gradients");
if (Directory.Exists(GlobalConfiguration.instance.GradientSavePath))
{
if (GUILayout.Button("Save Color Gradient Texture", GUILayout.MaxWidth(CommonStyles.BUTTON_WIDTH)))
{
EditorUtils.SaveTextureAsPNG(GlobalConfiguration.instance.GradientSavePath, "ColorGradient", "Gradient", GradientTex, GradientFiltering,
TextureImporterType.Default, TextureWrapMode.Clamp);
}
}
}
}
}