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

308 lines
7.5 KiB
C#

#if GRIFFIN
using UnityEngine;
namespace Pinwheel.Griffin.GroupTool
{
[System.Serializable]
public struct GRenderingOverride
{
[SerializeField]
private bool overrideCastShadow;
public bool OverrideCastShadow
{
get
{
return overrideCastShadow;
}
set
{
overrideCastShadow = value;
}
}
[SerializeField]
private bool castShadow;
public bool CastShadow
{
get
{
return castShadow;
}
set
{
castShadow = value;
}
}
[SerializeField]
private bool overrideReceiveShadow;
public bool OverrideReceiveShadow
{
get
{
return overrideReceiveShadow;
}
set
{
overrideReceiveShadow = value;
}
}
[SerializeField]
private bool receiveShadow;
public bool ReceiveShadow
{
get
{
return receiveShadow;
}
set
{
receiveShadow = value;
}
}
[SerializeField]
private bool overrideDrawTrees;
public bool OverrideDrawTrees
{
get
{
return overrideDrawTrees;
}
set
{
overrideDrawTrees = value;
}
}
[SerializeField]
private bool drawTrees;
public bool DrawTrees
{
get
{
return drawTrees;
}
set
{
drawTrees = value;
}
}
[SerializeField]
private bool overrideEnableInstancing;
public bool OverrideEnableInstancing
{
get
{
return overrideEnableInstancing;
}
set
{
overrideEnableInstancing = value;
}
}
[SerializeField]
private bool enableInstancing;
public bool EnableInstancing
{
get
{
return enableInstancing;
}
set
{
enableInstancing = value;
}
}
[SerializeField]
private bool overrideBillboardStart;
public bool OverrideBillboardStart
{
get
{
return overrideBillboardStart;
}
set
{
overrideBillboardStart = value;
}
}
[SerializeField]
private float billboardStart;
public float BillboardStart
{
get
{
return billboardStart;
}
set
{
billboardStart = Mathf.Clamp(value, 0, GCommon.MAX_TREE_DISTANCE);
}
}
[SerializeField]
private bool overrideTreeDistance;
public bool OverrideTreeDistance
{
get
{
return overrideTreeDistance;
}
set
{
overrideTreeDistance = value;
}
}
[SerializeField]
private float treeDistance;
public float TreeDistance
{
get
{
return treeDistance;
}
set
{
treeDistance = Mathf.Clamp(value, 0, GCommon.MAX_TREE_DISTANCE);
}
}
[SerializeField]
private bool overrideDrawGrasses;
public bool OverrideDrawGrasses
{
get
{
return overrideDrawGrasses;
}
set
{
overrideDrawGrasses = value;
}
}
[SerializeField]
private bool drawGrasses;
public bool DrawGrasses
{
get
{
return drawGrasses;
}
set
{
drawGrasses = value;
}
}
[SerializeField]
private bool overrideGrassDistance;
public bool OverrideGrassDistance
{
get
{
return overrideGrassDistance;
}
set
{
overrideGrassDistance = value;
}
}
[SerializeField]
private float grassDistance;
public float GrassDistance
{
get
{
return grassDistance;
}
set
{
grassDistance = Mathf.Clamp(value, 0, GCommon.MAX_GRASS_DISTANCE);
}
}
[SerializeField]
private bool overrideGrassFadeStart;
public bool OverrideGrassFadeStart
{
get
{
return overrideGrassFadeStart;
}
set
{
overrideGrassFadeStart = value;
}
}
[SerializeField]
private float grassFadeStart;
public float GrassFadeStart
{
get
{
return grassFadeStart;
}
set
{
grassFadeStart = Mathf.Clamp(value, 0f, 1f);
}
}
public void Reset()
{
OverrideCastShadow = false;
OverrideReceiveShadow = false;
OverrideDrawTrees = false;
OverrideEnableInstancing = false;
OverrideBillboardStart = false;
OverrideTreeDistance = false;
OverrideDrawGrasses = false;
OverrideGrassDistance = false;
OverrideGrassFadeStart = false;
CastShadow = GRuntimeSettings.Instance.renderingDefault.terrainCastShadow;
ReceiveShadow = GRuntimeSettings.Instance.renderingDefault.terrainReceiveShadow;
DrawTrees = GRuntimeSettings.Instance.renderingDefault.drawTrees;
EnableInstancing = GRuntimeSettings.Instance.renderingDefault.enableInstancing;
BillboardStart = GRuntimeSettings.Instance.renderingDefault.billboardStart;
TreeDistance = GRuntimeSettings.Instance.renderingDefault.treeDistance;
DrawGrasses = GRuntimeSettings.Instance.renderingDefault.drawGrasses;
GrassDistance = GRuntimeSettings.Instance.renderingDefault.grassDistance;
GrassFadeStart = GRuntimeSettings.Instance.renderingDefault.grassFadeStart;
}
public void Override(GRendering r)
{
if (OverrideCastShadow)
r.CastShadow = CastShadow;
if (OverrideReceiveShadow)
r.ReceiveShadow = ReceiveShadow;
if (OverrideDrawTrees)
r.DrawTrees = DrawTrees;
if (OverrideEnableInstancing)
r.EnableInstancing = EnableInstancing;
if (OverrideBillboardStart)
r.BillboardStart = BillboardStart;
if (OverrideTreeDistance)
r.TreeDistance = TreeDistance;
if (OverrideDrawGrasses)
r.DrawGrasses = DrawGrasses;
if (OverrideGrassDistance)
r.GrassDistance = GrassDistance;
if (OverrideGrassFadeStart)
r.GrassFadeStart = GrassFadeStart;
}
}
}
#endif