public static void AddValueChangeListener(string propertyName, Action callback) { if (PropertiesManager.cachedProperties != null) { ManagedProperty managedProperty = null; if (PropertiesManager.cachedProperties.TryGetValue(propertyName, out managedProperty)) { managedProperty.Initialize(); managedProperty.AddValueChangeListener(callback); } else { Debug.LogError("[PropertiesManager] Property not defined: " + propertyName); } } }
/// <summary> Returns reference to a ManagedProperty. This reference should not be used to write values to the property if the value must be persisted. Rather use PropertiesManager.SetValue() </summary> public static ManagedProperty GetProperty(string name) { if (PropertiesManager.cachedProperties == null) { Debug.LogError("PropertiesManager not ready for use."); return(null); } ManagedProperty managedProperty = null; if (PropertiesManager.cachedProperties.TryGetValue(name, out managedProperty)) { managedProperty.Initialize(); return(managedProperty); } Debug.LogError("[PropertiesManager.GetProperty] Property not defined: " + name); return(null); }
public static void SetValue(string name, object value) { if (PropertiesManager.cachedProperties == null) { Debug.LogError("PropertiesManager not ready for use."); } else { ManagedProperty managedProperty = null; if (PropertiesManager.cachedProperties.TryGetValue(name, out managedProperty)) { if (managedProperty.setter == null) { Debug.LogError("[PropertiesManager.SetValue] Property does not have a setter bind: " + name); } else { managedProperty.Initialize(); managedProperty.setter.Execute(value); if (managedProperty.runDuringBoot) { string value2 = BloxStringSerializer.Serialize(value); if (string.IsNullOrEmpty(value2)) { PlayerPrefs.DeleteKey("PropertiesManager." + name); } else { PlayerPrefs.SetString("PropertiesManager." + name, value2); } } } } else { Debug.LogError("[PropertiesManager.SetValue] Property not defined: " + name); } } }
public static object GetValue(string name) { if (PropertiesManager.cachedProperties == null) { Debug.LogError("PropertiesManager not ready for use."); return(null); } ManagedProperty managedProperty = null; if (PropertiesManager.cachedProperties.TryGetValue(name, out managedProperty)) { if (managedProperty.getter == null) { Debug.LogError("[PropertiesManager.GetValue] Property does not have a getter bind: " + name); return(null); } managedProperty.Initialize(); return(managedProperty.getter.GetValue()); } Debug.LogError("[PropertiesManager.GetValue] Property not defined: " + name); return(null); }