Init
This commit is contained in:
@ -0,0 +1,102 @@
|
||||
// Amplify Shader Editor - Visual Shader Editing Tool
|
||||
// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
|
||||
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AmplifyShaderEditor
|
||||
{
|
||||
public enum TemplateCodeSnippetType
|
||||
{
|
||||
Toggle
|
||||
};
|
||||
|
||||
|
||||
public enum TemplateCodeSnippetInfoIdx
|
||||
{
|
||||
Name = 0,
|
||||
Type
|
||||
};
|
||||
|
||||
[Serializable]
|
||||
public class TemplateCodeSnippetElement
|
||||
{
|
||||
public string Id;
|
||||
public string Snippet;
|
||||
public TemplateCodeSnippetElement( string id, string snippet )
|
||||
{
|
||||
Id = id;
|
||||
Snippet = snippet;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class TemplateCodeSnippetBase : ScriptableObject
|
||||
{
|
||||
[SerializeField]
|
||||
private string m_nameId;
|
||||
|
||||
[SerializeField]
|
||||
private TemplateCodeSnippetType m_type;
|
||||
|
||||
[SerializeField]
|
||||
private List<TemplateCodeSnippetElement> m_elements = new List<TemplateCodeSnippetElement>();
|
||||
|
||||
public void Init( string nameId, TemplateCodeSnippetType type )
|
||||
{
|
||||
m_nameId = nameId;
|
||||
m_type = type;
|
||||
}
|
||||
|
||||
public void AddSnippet( TemplateCodeSnippetElement element )
|
||||
{
|
||||
m_elements.Add( element );
|
||||
}
|
||||
|
||||
public void Destroy()
|
||||
{
|
||||
for ( int i = 0; i < m_elements.Count; i++ )
|
||||
{
|
||||
m_elements[ i ].Snippet = null;
|
||||
}
|
||||
m_elements.Clear();
|
||||
m_elements = null;
|
||||
}
|
||||
|
||||
public virtual void DrawProperties( ParentNode owner ) { }
|
||||
public virtual bool CheckSnippet() { return true; }
|
||||
|
||||
public void InsertSnippet( ref string shaderBody )
|
||||
{
|
||||
bool insertSnippet = CheckSnippet();
|
||||
for ( int i = 0; i < m_elements.Count; i++ )
|
||||
{
|
||||
shaderBody = shaderBody.Replace( m_elements[ i ].Id, ( insertSnippet ? m_elements[ i ].Snippet : string.Empty ) );
|
||||
}
|
||||
}
|
||||
public string NameId { get { return m_nameId; } }
|
||||
public TemplateCodeSnippetType Type { get { return m_type; } }
|
||||
public List<TemplateCodeSnippetElement> Elements { get { return m_elements; } }
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class TemplateCodeSnippetToggle : TemplateCodeSnippetBase
|
||||
{
|
||||
private const string Label = "Activate";
|
||||
[SerializeField]
|
||||
private bool m_value = false;
|
||||
|
||||
|
||||
public override bool CheckSnippet()
|
||||
{
|
||||
return m_value;
|
||||
}
|
||||
|
||||
public override void DrawProperties( ParentNode owner )
|
||||
{
|
||||
m_value = owner.EditorGUILayoutToggle( Label, m_value );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user