530 lines
13 KiB
C#
530 lines
13 KiB
C#
|
#if GRIFFIN
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace Pinwheel.Griffin.GroupTool
|
||
|
{
|
||
|
[System.Serializable]
|
||
|
public struct GGeometryOverride
|
||
|
{
|
||
|
[SerializeField]
|
||
|
private bool overrideWidth;
|
||
|
public bool OverrideWidth
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideWidth;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideWidth = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float width;
|
||
|
public float Width
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return width;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
width = Mathf.Max(1, value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideHeight;
|
||
|
public bool OverrideHeight
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideHeight;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideHeight = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float height;
|
||
|
public float Height
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return height;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
height = Mathf.Max(0, value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideLength;
|
||
|
public bool OverrideLength
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideLength;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideLength = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float length;
|
||
|
public float Length
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return length;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
length = Mathf.Max(1, value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideHeightMapResolution;
|
||
|
public bool OverrideHeightMapResolution
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideHeightMapResolution;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideHeightMapResolution = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private int heightMapResolution;
|
||
|
public int HeightMapResolution
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return heightMapResolution;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
heightMapResolution = Mathf.Clamp(Mathf.ClosestPowerOfTwo(value), GCommon.TEXTURE_SIZE_MIN, GCommon.TEXTURE_SIZE_MAX);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideMeshBaseResolution;
|
||
|
public bool OverrideMeshBaseResolution
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideMeshBaseResolution;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideMeshBaseResolution = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private int meshBaseResolution;
|
||
|
public int MeshBaseResolution
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return meshBaseResolution;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
meshBaseResolution = Mathf.Clamp(value, 0, 10);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideMeshResolution;
|
||
|
public bool OverrideMeshResolution
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideMeshResolution;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideMeshResolution = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private int meshResolution;
|
||
|
public int MeshResolution
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return meshResolution;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
meshResolution = Mathf.Clamp(value, 0, 15);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideChunkGridSize;
|
||
|
public bool OverrideChunkGridSize
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideChunkGridSize;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideChunkGridSize = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private int chunkGridSize;
|
||
|
public int ChunkGridSize
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return chunkGridSize;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
chunkGridSize = Mathf.Max(1, value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideLodCount;
|
||
|
public bool OverrideLodCount
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideLodCount;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideLodCount = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private int lodCount;
|
||
|
public int LODCount
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return lodCount;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
lodCount = Mathf.Clamp(value, 1, GCommon.MAX_LOD_COUNT);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideDisplacementSeed;
|
||
|
public bool OverrideDisplacementSeed
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideDisplacementSeed;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideDisplacementSeed = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private int displacementSeed;
|
||
|
public int DisplacementSeed
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return displacementSeed;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
displacementSeed = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideDisplacementStrength;
|
||
|
public bool OverrideDisplacementStrength
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideDisplacementStrength;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideDisplacementStrength = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float displacementStrength;
|
||
|
public float DisplacementStrength
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return displacementStrength;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
displacementStrength = Mathf.Clamp01(value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideAlbedoToVertexColorMode;
|
||
|
public bool OverrideAlbedoToVertexColorMode
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideAlbedoToVertexColorMode;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideAlbedoToVertexColorMode = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private GAlbedoToVertexColorMode albedoToVertexColorMode;
|
||
|
public GAlbedoToVertexColorMode AlbedoToVertexColorMode
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return albedoToVertexColorMode;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
albedoToVertexColorMode = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideStorageMode;
|
||
|
public bool OverrideStorageMode
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideStorageMode;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideStorageMode = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private GGeometry.GStorageMode storageMode;
|
||
|
public GGeometry.GStorageMode StorageMode
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return storageMode;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
storageMode = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideAllowTimeSlicedGeneration;
|
||
|
public bool OverrideAllowTimeSlicedGeneration
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideAllowTimeSlicedGeneration;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideAllowTimeSlicedGeneration = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool allowTimeSlicedGeneration;
|
||
|
public bool AllowTimeSlicedGeneration
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return allowTimeSlicedGeneration;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
allowTimeSlicedGeneration = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideSmoothNormal;
|
||
|
public bool OverrideSmoothNormal
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideSmoothNormal;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideSmoothNormal = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool smoothNormal;
|
||
|
public bool SmoothNormal
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return smoothNormal;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
smoothNormal = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideUseSmoothNormalMask;
|
||
|
public bool OverrideUseSmoothNormalMask
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideUseSmoothNormalMask;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideUseSmoothNormalMask = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool useSmoothNormalMask;
|
||
|
public bool UseSmoothNormalMask
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return useSmoothNormalMask;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
useSmoothNormalMask = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool overrideMergeUv;
|
||
|
public bool OverrideMergeUv
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return overrideMergeUv;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
overrideMergeUv = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool mergeUv;
|
||
|
public bool MergeUv
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return mergeUv;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
mergeUv = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void Reset()
|
||
|
{
|
||
|
OverrideWidth = false;
|
||
|
OverrideHeight = false;
|
||
|
OverrideLength = false;
|
||
|
OverrideHeightMapResolution = false;
|
||
|
OverrideMeshBaseResolution = false;
|
||
|
OverrideMeshResolution = false;
|
||
|
OverrideChunkGridSize = false;
|
||
|
overrideLodCount = false;
|
||
|
OverrideDisplacementSeed = false;
|
||
|
OverrideDisplacementStrength = false;
|
||
|
OverrideAlbedoToVertexColorMode = false;
|
||
|
OverrideStorageMode = false;
|
||
|
OverrideAllowTimeSlicedGeneration = false;
|
||
|
OverrideSmoothNormal = false;
|
||
|
OverrideUseSmoothNormalMask = false;
|
||
|
|
||
|
Width = GRuntimeSettings.Instance.geometryDefault.width;
|
||
|
Height = GRuntimeSettings.Instance.geometryDefault.height;
|
||
|
Length = GRuntimeSettings.Instance.geometryDefault.length;
|
||
|
HeightMapResolution = GRuntimeSettings.Instance.geometryDefault.heightMapResolution;
|
||
|
MeshBaseResolution = GRuntimeSettings.Instance.geometryDefault.meshBaseResolution;
|
||
|
MeshResolution = GRuntimeSettings.Instance.geometryDefault.meshResolution;
|
||
|
ChunkGridSize = GRuntimeSettings.Instance.geometryDefault.chunkGridSize;
|
||
|
LODCount = GRuntimeSettings.Instance.geometryDefault.lodCount;
|
||
|
DisplacementSeed = GRuntimeSettings.Instance.geometryDefault.displacementSeed;
|
||
|
DisplacementStrength = GRuntimeSettings.Instance.geometryDefault.displacementStrength;
|
||
|
AlbedoToVertexColorMode = GRuntimeSettings.Instance.geometryDefault.albedoToVertexColorMode;
|
||
|
StorageMode = GRuntimeSettings.Instance.geometryDefault.storageMode;
|
||
|
AllowTimeSlicedGeneration = GRuntimeSettings.Instance.geometryDefault.allowTimeSlicedGeneration;
|
||
|
SmoothNormal = GRuntimeSettings.Instance.geometryDefault.smoothNormal;
|
||
|
UseSmoothNormalMask = GRuntimeSettings.Instance.geometryDefault.useSmoothNormalMask;
|
||
|
}
|
||
|
|
||
|
public void Override(GGeometry g)
|
||
|
{
|
||
|
if (OverrideWidth)
|
||
|
g.Width = Width;
|
||
|
if (OverrideHeight)
|
||
|
g.Height = Height;
|
||
|
if (OverrideLength)
|
||
|
g.Length = Length;
|
||
|
if (OverrideHeightMapResolution)
|
||
|
g.HeightMapResolution = HeightMapResolution;
|
||
|
if (OverrideMeshBaseResolution)
|
||
|
g.MeshBaseResolution = MeshBaseResolution;
|
||
|
if (OverrideMeshResolution)
|
||
|
g.MeshResolution = MeshResolution;
|
||
|
if (OverrideChunkGridSize)
|
||
|
g.ChunkGridSize = ChunkGridSize;
|
||
|
if (OverrideLodCount)
|
||
|
g.LODCount = LODCount;
|
||
|
if (OverrideDisplacementSeed)
|
||
|
g.DisplacementSeed = DisplacementSeed;
|
||
|
if (OverrideDisplacementStrength)
|
||
|
g.DisplacementStrength = DisplacementStrength;
|
||
|
if (OverrideAlbedoToVertexColorMode)
|
||
|
g.AlbedoToVertexColorMode = AlbedoToVertexColorMode;
|
||
|
if (OverrideStorageMode)
|
||
|
g.StorageMode = StorageMode;
|
||
|
if (OverrideAllowTimeSlicedGeneration)
|
||
|
g.AllowTimeSlicedGeneration = AllowTimeSlicedGeneration;
|
||
|
if (OverrideSmoothNormal)
|
||
|
g.SmoothNormal = SmoothNormal;
|
||
|
if (OverrideUseSmoothNormalMask)
|
||
|
g.UseSmoothNormalMask = UseSmoothNormalMask;
|
||
|
if (OverrideMergeUv)
|
||
|
g.MergeUv = MergeUv;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#endif
|