using System; using System.Collections.Generic; using AwesomeTechnologies.VegetationSystem; using UnityEngine; namespace AwesomeTechnologies.Common { [Serializable] public class BaseControllerSettings { [SerializeField] public List ControlerPropertyList = new List(); public void AddFloatProperty(string id, string description, string info, float defaultValue, float minValue, float maxValue) { SerializedControllerProperty serializedControllerProperty = new SerializedControllerProperty { SerializedControlerPropertyType = SerializedControlerPropertyType.Float, FloatValue = defaultValue, FloatMinValue = minValue, FloatMaxValue = maxValue, PropertyName = id, PropertyDescription = description, PropertyInfo = info }; ControlerPropertyList.Add(serializedControllerProperty); } public void AddLabelProperty(string text) { SerializedControllerProperty labelSerializedControllerProperty = new SerializedControllerProperty { SerializedControlerPropertyType = SerializedControlerPropertyType.Label, PropertyName = text, PropertyDescription = text }; ControlerPropertyList.Add(labelSerializedControllerProperty); } public void AddTextureProperty(string id, string description,string info, Texture2D defaultValue) { SerializedControllerProperty serializedControllerProperty = new SerializedControllerProperty { SerializedControlerPropertyType = SerializedControlerPropertyType.Texture2D, TextureValue = defaultValue, PropertyName = id, PropertyDescription = description, PropertyInfo = info }; ControlerPropertyList.Add(serializedControllerProperty); } public void AddRgbaSelectorProperty(string id, string description, string info, int defaultValue) { SerializedControllerProperty serializedControllerProperty = new SerializedControllerProperty { SerializedControlerPropertyType = SerializedControlerPropertyType.RgbaSelector, IntValue = defaultValue, PropertyName = id, PropertyDescription = description, PropertyInfo = info }; ControlerPropertyList.Add(serializedControllerProperty); } public void AddColorProperty(string id, string description, string info, Color defaultValue) { SerializedControllerProperty serializedControllerProperty = new SerializedControllerProperty { SerializedControlerPropertyType = SerializedControlerPropertyType.ColorSelector, ColorValue = defaultValue, PropertyName = id, PropertyInfo = "", PropertyDescription = description }; ControlerPropertyList.Add(serializedControllerProperty); } public void AddBooleanProperty(string id, string description, string info, bool defaultValue) { SerializedControllerProperty serializedControllerProperty = new SerializedControllerProperty { SerializedControlerPropertyType = SerializedControlerPropertyType.Boolean, BoolValue = defaultValue, PropertyName = id, PropertyInfo = info, PropertyDescription = description }; ControlerPropertyList.Add(serializedControllerProperty); } public int GetIntPropertyValue(string propertyName) { for (int i = 0; i <= ControlerPropertyList.Count - 1; i++) { if (ControlerPropertyList[i].PropertyName == propertyName) { return ControlerPropertyList[i].IntValue; } } return 0; } public float GetFloatPropertyValue(string propertyName) { for (int i = 0; i <= ControlerPropertyList.Count - 1; i++) { if (ControlerPropertyList[i].PropertyName == propertyName) { return ControlerPropertyList[i].FloatValue; } } return 0; } public Color GetColorPropertyValue(string propertyName) { for (int i = 0; i <= ControlerPropertyList.Count - 1; i++) { if (ControlerPropertyList[i].PropertyName == propertyName) { return ControlerPropertyList[i].ColorValue; } } return Color.white; } public bool GetBooleanPropertyValue(string propertyName) { for (int i = 0; i <= ControlerPropertyList.Count - 1; i++) { if (ControlerPropertyList[i].PropertyName == propertyName) { return ControlerPropertyList[i].BoolValue; } } return false; } public Texture2D GetTexturePropertyValue(string propertyName) { for (int i = 0; i <= ControlerPropertyList.Count - 1; i++) { if (ControlerPropertyList[i].PropertyName == propertyName) { return ControlerPropertyList[i].TextureValue; } } return null; } } }