You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

254 lines
14 KiB

// Amplify Shader Editor - Visual Shader Editing Tool
// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
using UnityEditor;
using System;
using UnityEngine;
namespace AmplifyShaderEditor
{
public class EditorVariable<T>
{
protected string m_labelName;
protected string m_name;
protected T m_value;
protected T m_defaultValue;
public EditorVariable( string name, string labelName, T defaultValue ) { m_name = name; m_labelName = labelName; m_defaultValue = defaultValue; m_value = defaultValue; }
public string Name { get { return m_name; } }
public virtual T Value
{
get { return m_value; }
set
{
m_value = value;
}
}
public string LabelName { get { return m_labelName; } }
}
public sealed class EditorVariableFloat : EditorVariable<float>
{
public EditorVariableFloat( string name, string labelName, float defaultValue ) : base( name, labelName, defaultValue )
{
m_value = EditorPrefs.GetFloat( name, m_defaultValue );
}
public override float Value
{
get { return m_value; }
set
{
if( m_value != value )
{
m_value = value;
EditorPrefs.SetFloat( m_name, m_value );
}
}
}
}
public sealed class EditorVariableBool : EditorVariable<bool>
{
public EditorVariableBool( string name, string labelName, bool defaultValue ) : base( name, labelName, defaultValue )
{
m_value = EditorPrefs.GetBool( name, m_defaultValue );
}
public override bool Value
{
get { return m_value; }
set
{
if( m_value != value )
{
m_value = value;
EditorPrefs.SetBool( m_name, m_value );
}
}
}
}
public sealed class EditorVariableInt : EditorVariable<int>
{
public EditorVariableInt( string name, string labelName, int defaultValue ) : base( name, labelName, defaultValue )
{
m_value = EditorPrefs.GetInt( name, m_defaultValue );
}
public override int Value
{
get { return m_value; }
set
{
if( m_value != value )
{
m_value = value;
EditorPrefs.SetInt( m_name, m_value );
}
}
}
}
public sealed class EditorVariableString : EditorVariable<string>
{
public EditorVariableString( string name, string labelName, string defaultValue ) : base( name, labelName, defaultValue )
{
m_value = EditorPrefs.GetString( name, m_defaultValue );
}
public override string Value
{
get { return m_value; }
set
{
if( !m_value.Equals( value ) )
{
m_value = value;
EditorPrefs.SetString( m_name, m_value );
}
}
}
}
public class EditorVariablesManager
{
public static EditorVariableBool LiveMode = new EditorVariableBool( "ASELiveMode", "LiveMode", false );
public static EditorVariableBool OutlineActiveMode = new EditorVariableBool( "ASEOutlineActiveMode", " Outline", false );
public static EditorVariableBool NodeParametersMaximized = new EditorVariableBool( "ASENodeParametersVisible", " NodeParameters", true );
public static EditorVariableBool NodePaletteMaximized = new EditorVariableBool( "ASENodePaletteVisible", " NodePalette", true );
public static EditorVariableBool ExpandedRenderingPlatforms = new EditorVariableBool( "ASEExpandedRenderingPlatforms", " ExpandedRenderingPlatforms", false );
public static EditorVariableBool ExpandedRenderingOptions = new EditorVariableBool( "ASEExpandedRenderingOptions", " ExpandedRenderingPlatforms", false );
public static EditorVariableBool ExpandedGeneralShaderOptions = new EditorVariableBool( "ASEExpandedGeneralShaderOptions", " ExpandedGeneralShaderOptions", false );
public static EditorVariableBool ExpandedBlendOptions = new EditorVariableBool( "ASEExpandedBlendOptions", " ExpandedBlendOptions", false );
public static EditorVariableBool ExpandedStencilOptions = new EditorVariableBool( "ASEExpandedStencilOptions", " ExpandedStencilOptions", false );
public static EditorVariableBool ExpandedVertexOptions = new EditorVariableBool( "ASEExpandedVertexOptions", " ExpandedVertexOptions", false );
public static EditorVariableBool ExpandedFunctionInputs = new EditorVariableBool( "ASEExpandedFunctionInputs", " ExpandedFunctionInputs", false );
public static EditorVariableBool ExpandedFunctionSwitches = new EditorVariableBool( "ASEExpandedFunctionSwitches", " ExpandedFunctionSwitches", false );
public static EditorVariableBool ExpandedFunctionOutputs = new EditorVariableBool( "ASEExpandedFunctionOutputs", " ExpandedFunctionOutputs", false );
public static EditorVariableBool ExpandedAdditionalIncludes = new EditorVariableBool( "ASEExpandedAdditionalIncludes", " ExpandedAdditionalIncludes", false );
public static EditorVariableBool ExpandedAdditionalDefines = new EditorVariableBool( "ASEExpandedAdditionalDefines", " ExpandedAdditionalDefines", false );
public static EditorVariableBool ExpandedAdditionalDirectives = new EditorVariableBool( "ASEExpandedAdditionalDirectives", " ExpandedAdditionalDirectives", false );
public static EditorVariableBool ExpandedCustomTags = new EditorVariableBool( "ASEExpandedCustomTags", " ExpandedCustomTags", false );
public static EditorVariableBool ExpandedAdditionalSurfaceOptions = new EditorVariableBool( "ASEExpandedAdditionalSurfaceOptions", " ExpandedAdditionalSurfaceOptions", false );
public static EditorVariableBool ExpandedAdditionalPragmas = new EditorVariableBool( "ASEExpandedAdditionalPragmas", " ExpandedAdditionalPragmas", false );
public static EditorVariableBool ExpandedDependencies = new EditorVariableBool( "ASEExpandedDependencies", " ExpandedDependencies", false );
public static EditorVariableBool ExpandedDepth = new EditorVariableBool( "ASEExpandedDepth", " ExpandedDepth", false );
public static EditorVariableBool ExpandedTesselation = new EditorVariableBool( "ASEExpandedTesselation", " ExpandedTesselation", false );
public static EditorVariableBool ExpandedProperties = new EditorVariableBool( "ASEExpandedProperties", " ExpandedProperties", false );
public static EditorVariableBool ExpandedUsePass = new EditorVariableBool( "ASEUsePass", " UsePass", false );
//Templates
public static EditorVariableBool ExpandedBlendModeModule = new EditorVariableBool( "ASEExpandedBlendModeModule", " ExpandedBlendModeModule", false );
}
[Serializable]
public class InnerWindowEditorVariables
{
[SerializeField]
private bool m_liveMode = false;
[SerializeField]
private bool m_outlineActiveMode = false;
[SerializeField]
private bool m_nodeParametersMaximized = false;
[SerializeField]
private bool m_nodePaletteMaximized = false;
[SerializeField]
private bool m_expandedRenderingPlatforms = false;
[SerializeField]
private bool m_expandedRenderingOptions = false;
[SerializeField]
private bool m_expandedGeneralShaderOptions = false;
[SerializeField]
private bool m_expandedBlendOptions = false;
[SerializeField]
private bool m_expandedStencilOptions = false;
[SerializeField]
private bool m_expandedVertexOptions = false;
[SerializeField]
private bool m_expandedFunctionInputs = false;
[SerializeField]
private bool m_expandedFunctionSwitches = false;
[SerializeField]
private bool m_expandedFunctionOutputs = false;
[SerializeField]
private bool m_expandedAdditionalIncludes = false;
[SerializeField]
private bool m_expandedAdditionalDefines = false;
[SerializeField]
private bool m_expandedAdditionalDirectives = false;
[SerializeField]
private bool m_expandedCustomTags = false;
[SerializeField]
private bool m_expandedAdditionalSurfaceOptions = false;
[SerializeField]
private bool m_expandedAdditionalPragmas = false;
[SerializeField]
private bool m_expandedDependencies = false;
[SerializeField]
private bool m_expandedBlendModeModule = false;
[SerializeField]
private bool m_expandedDepth = false;
[SerializeField]
private bool m_expandedTesselation = false;
[SerializeField]
private bool m_expandedProperties = false;
[SerializeField]
private bool m_expandedUsePass = false;
public void Initialize()
{
m_liveMode = EditorVariablesManager.LiveMode.Value;
m_outlineActiveMode = EditorVariablesManager.OutlineActiveMode.Value;
m_nodeParametersMaximized = EditorVariablesManager.NodeParametersMaximized.Value;
m_nodePaletteMaximized = EditorVariablesManager.NodePaletteMaximized.Value;
m_expandedRenderingPlatforms = EditorVariablesManager.ExpandedRenderingPlatforms.Value;
m_expandedRenderingOptions = EditorVariablesManager.ExpandedRenderingOptions.Value;
m_expandedGeneralShaderOptions = EditorVariablesManager.ExpandedGeneralShaderOptions.Value;
m_expandedBlendOptions = EditorVariablesManager.ExpandedBlendOptions.Value;
m_expandedStencilOptions = EditorVariablesManager.ExpandedStencilOptions.Value;
m_expandedVertexOptions = EditorVariablesManager.ExpandedVertexOptions.Value;
m_expandedFunctionInputs = EditorVariablesManager.ExpandedFunctionInputs.Value;
m_expandedFunctionSwitches = EditorVariablesManager.ExpandedFunctionSwitches.Value;
m_expandedFunctionOutputs = EditorVariablesManager.ExpandedFunctionOutputs.Value;
m_expandedAdditionalIncludes = EditorVariablesManager.ExpandedAdditionalIncludes.Value;
m_expandedAdditionalDefines = EditorVariablesManager.ExpandedAdditionalDefines.Value;
m_expandedAdditionalDirectives = EditorVariablesManager.ExpandedAdditionalDirectives.Value;
m_expandedCustomTags = EditorVariablesManager.ExpandedCustomTags.Value;
m_expandedAdditionalSurfaceOptions = EditorVariablesManager.ExpandedAdditionalSurfaceOptions.Value;
m_expandedAdditionalPragmas = EditorVariablesManager.ExpandedAdditionalPragmas.Value;
m_expandedDependencies = EditorVariablesManager.ExpandedDependencies.Value;
m_expandedBlendModeModule = EditorVariablesManager.ExpandedBlendModeModule.Value;
m_expandedDepth = EditorVariablesManager.ExpandedDepth.Value;
m_expandedTesselation = EditorVariablesManager.ExpandedTesselation.Value;
m_expandedProperties = EditorVariablesManager.ExpandedProperties.Value;
m_expandedUsePass = EditorVariablesManager.ExpandedUsePass.Value;
}
public bool LiveMode{ get { return m_liveMode; } set { m_liveMode = value; EditorVariablesManager.LiveMode.Value = value; } }
public bool OutlineActiveMode { get { return m_outlineActiveMode; } set { m_outlineActiveMode = value; EditorVariablesManager.OutlineActiveMode.Value = value; } }
public bool NodeParametersMaximized { get { return m_nodeParametersMaximized; } set { m_nodeParametersMaximized = value; EditorVariablesManager.NodeParametersMaximized.Value = value; } }
public bool NodePaletteMaximized { get { return m_nodePaletteMaximized; } set { m_nodePaletteMaximized = value; EditorVariablesManager.NodePaletteMaximized.Value = value; } }
public bool ExpandedRenderingPlatforms { get { return m_expandedRenderingPlatforms; } set { m_expandedRenderingPlatforms = value; EditorVariablesManager.ExpandedRenderingPlatforms.Value = value; } }
public bool ExpandedRenderingOptions { get { return m_expandedRenderingOptions; } set { m_expandedRenderingOptions = value; EditorVariablesManager.ExpandedRenderingOptions.Value = value; } }
public bool ExpandedGeneralShaderOptions { get { return m_expandedGeneralShaderOptions; } set { m_expandedGeneralShaderOptions = value; EditorVariablesManager.ExpandedGeneralShaderOptions.Value = value; } }
public bool ExpandedBlendOptions { get { return m_expandedBlendOptions; } set { m_expandedBlendOptions = value; EditorVariablesManager.ExpandedBlendOptions.Value = value; } }
public bool ExpandedStencilOptions { get { return m_expandedStencilOptions; } set { m_expandedStencilOptions = value; EditorVariablesManager.ExpandedStencilOptions.Value = value; } }
public bool ExpandedVertexOptions { get { return m_expandedVertexOptions; } set { m_expandedVertexOptions = value; EditorVariablesManager.ExpandedVertexOptions.Value = value; } }
public bool ExpandedFunctionInputs { get { return m_expandedFunctionInputs; } set { m_expandedFunctionInputs = value; EditorVariablesManager.ExpandedFunctionInputs.Value = value; } }
public bool ExpandedFunctionSwitches { get { return m_expandedFunctionSwitches; } set { m_expandedFunctionSwitches = value; EditorVariablesManager.ExpandedFunctionSwitches.Value = value; } }
public bool ExpandedFunctionOutputs { get { return m_expandedFunctionOutputs; } set { m_expandedFunctionOutputs = value; EditorVariablesManager.ExpandedFunctionOutputs.Value = value; } }
public bool ExpandedAdditionalIncludes { get { return m_expandedAdditionalIncludes; } set { m_expandedAdditionalIncludes = value; EditorVariablesManager.ExpandedAdditionalIncludes.Value = value; } }
public bool ExpandedAdditionalDefines { get { return m_expandedAdditionalDefines; } set { m_expandedAdditionalDefines = value; EditorVariablesManager.ExpandedAdditionalDefines.Value = value; } }
public bool ExpandedAdditionalDirectives { get { return m_expandedAdditionalDirectives; } set { m_expandedAdditionalDirectives = value; EditorVariablesManager.ExpandedAdditionalDirectives.Value = value; } }
public bool ExpandedCustomTags { get { return m_expandedCustomTags; } set { m_expandedCustomTags = value; EditorVariablesManager.ExpandedCustomTags.Value = value; } }
public bool ExpandedAdditionalSurfaceOptions { get { return m_expandedAdditionalSurfaceOptions; } set { m_expandedAdditionalSurfaceOptions = value; EditorVariablesManager.ExpandedAdditionalSurfaceOptions.Value = value; } }
public bool ExpandedAdditionalPragmas { get { return m_expandedAdditionalPragmas; } set { m_expandedAdditionalPragmas = value; EditorVariablesManager.ExpandedAdditionalPragmas.Value = value; } }
public bool ExpandedDependencies { get { return m_expandedDependencies; } set { m_expandedDependencies = value; EditorVariablesManager.ExpandedDependencies.Value = value; } }
public bool ExpandedBlendModeModule { get { return m_expandedBlendModeModule; } set { m_expandedBlendModeModule = value; EditorVariablesManager.ExpandedBlendModeModule.Value = value; } }
public bool ExpandedDepth { get { return m_expandedDepth; } set { m_expandedDepth = value; EditorVariablesManager.ExpandedDepth.Value = value; } }
public bool ExpandedTesselation { get { return m_expandedTesselation; } set { m_expandedTesselation = value; EditorVariablesManager.ExpandedTesselation.Value = value; } }
public bool ExpandedProperties { get { return m_expandedProperties; } set { m_expandedProperties = value; EditorVariablesManager.ExpandedProperties.Value = value; } }
public bool ExpandedUsePass { get { return m_expandedUsePass; } set { m_expandedUsePass = value; EditorVariablesManager.ExpandedUsePass.Value = value; } }
}
}