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
 |