#if GRIFFIN using UnityEngine; namespace Pinwheel.Griffin.GroupTool { [System.Serializable] public struct GFoliageOverride { [SerializeField] private bool overrideTrees; public bool OverrideTrees { get { return overrideTrees; } set { overrideTrees = value; } } [SerializeField] private GTreePrototypeGroup trees; public GTreePrototypeGroup Trees { get { return trees; } set { trees = value; } } [SerializeField] private bool overrideGrasses; public bool OverrideGrasses { get { return overrideGrasses; } set { overrideGrasses = value; } } [SerializeField] private GGrassPrototypeGroup grasses; public GGrassPrototypeGroup Grasses { get { return grasses; } set { grasses = value; } } [SerializeField] private bool overridePatchGridSize; public bool OverridePatchGridSize { get { return overridePatchGridSize; } set { overridePatchGridSize = value; } } [SerializeField] private int patchGridSize; public int PatchGridSize { get { return patchGridSize; } set { patchGridSize = Mathf.Max(1, value); } } [SerializeField] private bool overrideTreeSnapMode; public bool OverrideTreeSnapMode { get { return overrideTreeSnapMode; } set { overrideTreeSnapMode = value; } } [SerializeField] private GSnapMode treeSnapMode; public GSnapMode TreeSnapMode { get { return treeSnapMode; } set { treeSnapMode = value; } } [SerializeField] private bool overrideTreeSnapLayerMask; public bool OverrideTreeSnapLayerMask { get { return overrideTreeSnapLayerMask; } set { overrideTreeSnapLayerMask = value; } } [SerializeField] private LayerMask treeSnapLayerMask; public LayerMask TreeSnapLayerMask { get { return treeSnapLayerMask; } set { treeSnapLayerMask = value; } } [SerializeField] private bool overrideGrassSnapMode; public bool OverrideGrassSnapMode { get { return overrideGrassSnapMode; } set { overrideGrassSnapMode = value; } } [SerializeField] private GSnapMode grassSnapMode; public GSnapMode GrassSnapMode { get { return grassSnapMode; } set { grassSnapMode = value; } } [SerializeField] private bool overrideGrassSnapLayerMask; public bool OverrideGrassSnapLayerMask { get { return overrideGrassSnapLayerMask; } set { overrideGrassSnapLayerMask = value; } } [SerializeField] private LayerMask grassSnapLayerMask; public LayerMask GrassSnapLayerMask { get { return grassSnapLayerMask; } set { grassSnapLayerMask = value; } } [SerializeField] private bool overrideEnableInteractiveGrass; public bool OverrideEnableInteractiveGrass { get { return overrideEnableInteractiveGrass; } set { overrideEnableInteractiveGrass = value; } } [SerializeField] private bool enableInteractiveGrass; public bool EnableInteractiveGrass { get { return enableInteractiveGrass; } set { enableInteractiveGrass = value; } } [SerializeField] private bool overrideVectorFieldMapResolution; public bool OverrideVectorFieldMapResolution { get { return overrideVectorFieldMapResolution; } set { overrideVectorFieldMapResolution = value; } } [SerializeField] private int vectorFieldMapResolution; public int VectorFieldMapResolution { get { return vectorFieldMapResolution; } set { vectorFieldMapResolution = Mathf.Clamp(Mathf.ClosestPowerOfTwo(value), GCommon.TEXTURE_SIZE_MIN, GCommon.TEXTURE_SIZE_MAX); } } [SerializeField] private bool overrideBendSensitive; public bool OverrideBendSensitive { get { return overrideBendSensitive; } set { overrideBendSensitive = value; } } [SerializeField] private float bendSensitive; public float BendSensitive { get { return bendSensitive; } set { bendSensitive = Mathf.Clamp01(value); } } [SerializeField] private bool overrideRestoreSensitive; public bool OverrideRestoreSensitive { get { return overrideRestoreSensitive; } set { overrideRestoreSensitive = value; } } [SerializeField] private float restoreSensitive; public float RestoreSensitive { get { return restoreSensitive; } set { restoreSensitive = Mathf.Clamp01(value); } } public void Reset() { OverrideTrees = false; OverrideTreeSnapMode = false; OverrideTreeSnapLayerMask = false; OverrideGrasses = false; OverrideGrassSnapMode = false; OverrideGrassSnapLayerMask = false; OverridePatchGridSize = false; OverrideEnableInteractiveGrass = false; OverrideVectorFieldMapResolution = false; OverrideBendSensitive = false; OverrideRestoreSensitive = false; Trees = GRuntimeSettings.Instance.foliageDefault.trees; TreeSnapMode = GRuntimeSettings.Instance.foliageDefault.treeSnapMode; TreeSnapLayerMask = GRuntimeSettings.Instance.foliageDefault.treeSnapLayerMask; Grasses = GRuntimeSettings.Instance.foliageDefault.grasses; GrassSnapMode = GRuntimeSettings.Instance.foliageDefault.grassSnapMode; GrassSnapLayerMask = GRuntimeSettings.Instance.foliageDefault.grassSnapLayerMask; PatchGridSize = GRuntimeSettings.Instance.foliageDefault.patchGridSize; EnableInteractiveGrass = GRuntimeSettings.Instance.foliageDefault.enableInteractiveGrass; VectorFieldMapResolution = GRuntimeSettings.Instance.foliageDefault.vectorFieldMapResolution; BendSensitive = GRuntimeSettings.Instance.foliageDefault.bendSensitive; RestoreSensitive = GRuntimeSettings.Instance.foliageDefault.restoreSensitive; } public void Override(GFoliage s) { if (OverrideTrees) s.Trees = Trees; if (OverrideTreeSnapMode) s.TreeSnapMode = TreeSnapMode; if (OverrideTreeSnapLayerMask) s.TreeSnapLayerMask = TreeSnapLayerMask; if (OverrideGrasses) s.Grasses = Grasses; if (OverrideGrassSnapMode) s.GrassSnapMode = GrassSnapMode; if (OverrideGrassSnapLayerMask) s.GrassSnapLayerMask = GrassSnapLayerMask; if (OverridePatchGridSize) s.PatchGridSize = PatchGridSize; if (OverrideEnableInteractiveGrass) s.EnableInteractiveGrass = EnableInteractiveGrass; if (OverrideVectorFieldMapResolution) s.VectorFieldMapResolution = VectorFieldMapResolution; if (OverrideBendSensitive) s.BendSensitive = BendSensitive; if (OverrideRestoreSensitive) s.RestoreSensitive = RestoreSensitive; s.Refresh(); } } } #endif