#if GRIFFIN using System.Collections.Generic; using UnityEngine; namespace Pinwheel.Griffin.StampTool { [System.Serializable] public class GFoliageStampLayer : GConditionalStampLayer { [SerializeField] private Color visualizeColor; public Color VisualizeColor { get { return visualizeColor; } set { visualizeColor = value; } } [SerializeField] private bool stampTrees; public bool StampTrees { get { return stampTrees; } set { stampTrees = value; } } [SerializeField] private List treeIndices; public List TreeIndices { get { if (treeIndices == null) { treeIndices = new List(); } return treeIndices; } set { treeIndices = value; } } [SerializeField] private bool stampGrass; public bool StampGrasses { get { return stampGrass; } set { stampGrass = value; } } [SerializeField] private List grassIndices; public List GrassIndices { get { if (grassIndices == null) { grassIndices = new List(); } return grassIndices; } set { grassIndices = value; } } [SerializeField] private int treeInstanceCount; public int TreeInstanceCount { get { return treeInstanceCount; } set { treeInstanceCount = Mathf.Max(0, value); } } [SerializeField] private int grassInstanceCount; public int GrassInstanceCount { get { return grassInstanceCount; } set { grassInstanceCount = value; } } [SerializeField] private float minRotation; public float MinRotation { get { return minRotation; } set { minRotation = value; } } [SerializeField] private float maxRotation; public float MaxRotation { get { return maxRotation; } set { maxRotation = value; } } [SerializeField] private Vector3 minScale; public Vector3 MinScale { get { return minScale; } set { minScale = value; } } [SerializeField] private Vector3 maxScale; public Vector3 MaxScale { get { return maxScale; } set { maxScale = value; } } public GFoliageStampLayer() : base() { } public static GFoliageStampLayer Create() { GFoliageStampLayer layer = new GFoliageStampLayer(); layer.StampTrees = true; layer.TreeIndices = null; layer.StampGrasses = false; layer.GrassIndices = null; layer.TreeInstanceCount = 1000; #if UNITY_EDITOR layer.VisualizeColor = GEditorSettings.Instance.stampTools.visualizeColor; layer.MinRotation = GEditorSettings.Instance.stampTools.minRotation; layer.MaxRotation = GEditorSettings.Instance.stampTools.maxRotation; layer.MinScale = GEditorSettings.Instance.stampTools.minScale; layer.MaxScale = GEditorSettings.Instance.stampTools.maxScale; #endif layer.UpdateCurveTextures(); return layer; } } } #endif