192 lines
4.7 KiB
C#
192 lines
4.7 KiB
C#
|
#if GRIFFIN
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.Serialization;
|
||
|
|
||
|
namespace Pinwheel.Griffin
|
||
|
{
|
||
|
public class GRendering : ScriptableObject
|
||
|
{
|
||
|
[SerializeField]
|
||
|
private GTerrainData terrainData;
|
||
|
public GTerrainData TerrainData
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return terrainData;
|
||
|
}
|
||
|
internal set
|
||
|
{
|
||
|
terrainData = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool castShadow;
|
||
|
public bool CastShadow
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return castShadow;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
castShadow = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool receiveShadow;
|
||
|
public bool ReceiveShadow
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return receiveShadow;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
receiveShadow = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[FormerlySerializedAs("drawFoliage")]
|
||
|
[SerializeField]
|
||
|
private bool drawTrees;
|
||
|
public bool DrawTrees
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return drawTrees;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
drawTrees = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool drawGrasses = true;
|
||
|
public bool DrawGrasses
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return drawGrasses;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
drawGrasses = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private bool enableInstancing;
|
||
|
public bool EnableInstancing
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (!SystemInfo.supportsInstancing)
|
||
|
enableInstancing = false;
|
||
|
return enableInstancing;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
if (SystemInfo.supportsInstancing)
|
||
|
{
|
||
|
enableInstancing = value;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
enableInstancing = false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float billboardStart;
|
||
|
public float BillboardStart
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return billboardStart;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
billboardStart = Mathf.Clamp(value, 0, GCommon.MAX_TREE_DISTANCE);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float treeDistance;
|
||
|
public float TreeDistance
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return treeDistance;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
treeDistance = Mathf.Clamp(value, 0, GCommon.MAX_TREE_DISTANCE);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float grassDistance;
|
||
|
public float GrassDistance
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return grassDistance;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
grassDistance = Mathf.Clamp(value, 0, GCommon.MAX_GRASS_DISTANCE);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
private float grassFadeStart;
|
||
|
public float GrassFadeStart
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return grassFadeStart;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
grassFadeStart = Mathf.Clamp01(value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void Reset()
|
||
|
{
|
||
|
name = "Rendering";
|
||
|
CastShadow = GRuntimeSettings.Instance.renderingDefault.terrainCastShadow;
|
||
|
ReceiveShadow = GRuntimeSettings.Instance.renderingDefault.terrainReceiveShadow;
|
||
|
DrawTrees = GRuntimeSettings.Instance.renderingDefault.drawTrees;
|
||
|
DrawGrasses = GRuntimeSettings.Instance.renderingDefault.drawGrasses;
|
||
|
EnableInstancing = GRuntimeSettings.Instance.renderingDefault.enableInstancing;
|
||
|
BillboardStart = GRuntimeSettings.Instance.renderingDefault.billboardStart;
|
||
|
TreeDistance = GRuntimeSettings.Instance.renderingDefault.treeDistance;
|
||
|
GrassDistance = GRuntimeSettings.Instance.renderingDefault.grassDistance;
|
||
|
GrassFadeStart = GRuntimeSettings.Instance.renderingDefault.grassFadeStart;
|
||
|
}
|
||
|
|
||
|
public void ResetFull()
|
||
|
{
|
||
|
Reset();
|
||
|
}
|
||
|
|
||
|
public void CopyTo(GRendering des)
|
||
|
{
|
||
|
des.CastShadow = CastShadow;
|
||
|
des.ReceiveShadow = ReceiveShadow;
|
||
|
des.DrawTrees = DrawTrees;
|
||
|
des.EnableInstancing = EnableInstancing;
|
||
|
des.BillboardStart = BillboardStart;
|
||
|
des.TreeDistance = TreeDistance;
|
||
|
des.GrassDistance = GrassDistance;
|
||
|
des.GrassFadeStart = GrassFadeStart;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#endif
|