#if GRIFFIN using UnityEngine; using System.Collections; using System.Collections.Generic; namespace Pinwheel.Griffin.ErosionTool { [System.Serializable] public class GHydraulicErosionConfigs { [SerializeField] private float waterSourceAmount; public float WaterSourceAmount { get { return waterSourceAmount; } set { waterSourceAmount = Mathf.Max(0, value); } } [SerializeField] private AnimationCurve waterSourceOverTime; public AnimationCurve WaterSourceOverTime { get { if (waterSourceOverTime == null) { waterSourceOverTime = AnimationCurve.Linear(0, 1, 1, 1); } return waterSourceOverTime; } set { waterSourceOverTime = value; } } [SerializeField] private float waterSourceMultiplier; public float WaterSourceMultiplier { get { return waterSourceMultiplier; } set { waterSourceMultiplier = Mathf.Max(0, value); } } [SerializeField] private float rainRate; public float RainRate { get { return rainRate; } set { rainRate = Mathf.Max(0, value); } } [SerializeField] private AnimationCurve rainOverTime; public AnimationCurve RainOverTime { get { if (rainOverTime == null) { rainOverTime = AnimationCurve.Linear(0, 1, 1, 1); } return rainOverTime; } set { rainOverTime = value; } } [SerializeField] private float rainMultiplier; public float RainMultiplier { get { return rainMultiplier; } set { rainMultiplier = Mathf.Max(0, value); } } [SerializeField] private float flowRate; public float FlowRate { get { return flowRate; } set { flowRate = Mathf.Max(0, value); } } [SerializeField] private AnimationCurve flowOverTime; public AnimationCurve FlowOverTime { get { if (flowOverTime == null) { flowOverTime = AnimationCurve.Linear(0, 1, 1, 1); } return flowOverTime; } set { flowOverTime = value; } } [SerializeField] private float flowMultiplier; public float FlowMultiplier { get { return flowMultiplier; } set { flowMultiplier = Mathf.Max(0, value); } } [SerializeField] private float erosionRate; public float ErosionRate { get { return erosionRate; } set { erosionRate = Mathf.Max(0, value); } } [SerializeField] private AnimationCurve erosionOverTime; public AnimationCurve ErosionOverTime { get { if (erosionOverTime == null) { erosionOverTime = AnimationCurve.Linear(0, 1, 1, 1); } return erosionOverTime; } set { erosionOverTime = value; } } [SerializeField] private float erosionMultiplier; public float ErosionMultiplier { get { return erosionMultiplier; } set { erosionMultiplier = Mathf.Max(0, value); } } [SerializeField] private float depositionRate; public float DepositionRate { get { return depositionRate; } set { depositionRate = Mathf.Max(0, value); } } [SerializeField] private AnimationCurve depositionOverTime; public AnimationCurve DepositionOverTime { get { if (depositionOverTime == null) { depositionOverTime = AnimationCurve.Linear(0, 1, 1, 1); } return depositionOverTime; } set { depositionOverTime = value; } } [SerializeField] private float depositionMultiplier; public float DepositionMultiplier { get { return depositionMultiplier; } set { depositionMultiplier = Mathf.Max(0, value); } } [SerializeField] private float evaporationRate; public float EvaporationRate { get { return evaporationRate; } set { evaporationRate = Mathf.Max(0, value); } } [SerializeField] private AnimationCurve evaporationOverTime; public AnimationCurve EvaporationOverTime { get { if (evaporationOverTime == null) { evaporationOverTime = AnimationCurve.Linear(0, 1, 1, 1); } return evaporationOverTime; } set { evaporationOverTime = value; } } [SerializeField] private float evaporationMultiplier; public float EvaporationMultiplier { get { return evaporationMultiplier; } set { evaporationMultiplier = Mathf.Max(0, value); } } [SerializeField] private int iterationCount; public int IterationCount { get { return iterationCount; } set { iterationCount = Mathf.Max(0, value); } } public GHydraulicErosionConfigs() { waterSourceAmount = 0; waterSourceOverTime = AnimationCurve.Linear(0, 1, 1, 1); waterSourceMultiplier = 1; rainRate = 0.075f; rainOverTime = AnimationCurve.Linear(0, 1, 1, 1); rainMultiplier = 1; flowRate = 1; flowOverTime = AnimationCurve.Linear(0, 1, 1, 1); flowMultiplier = 1; erosionRate = 0.3f; erosionOverTime = AnimationCurve.Linear(0, 1, 1, 1); erosionMultiplier = 1; depositionRate = 0.075f; depositionOverTime = AnimationCurve.Linear(0, 1, 1, 1); depositionMultiplier = 1; evaporationRate = 0.03f; evaporationOverTime = AnimationCurve.Linear(0, 1, 1, 1); evaporationMultiplier = 1; iterationCount = 500; } } } #endif