#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