Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Runtime/Scripts/GroupTool/GFoliageOverride.cs

375 lines
9.4 KiB
C#
Raw Normal View History

#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