49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System.ComponentModel; | |||
|  | using SRDebugger.Internal; | |||
|  | using SRF.Service; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | public delegate void SROptionsPropertyChanged(object sender, string propertyName); | |||
|  | 
 | |||
|  | public partial class SROptions : INotifyPropertyChanged | |||
|  | { | |||
|  |     private static readonly SROptions _current = new SROptions(); | |||
|  | 
 | |||
|  |     public static SROptions Current | |||
|  |     { | |||
|  |         get { return _current; } | |||
|  |     } | |||
|  | 
 | |||
|  |     [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] | |||
|  |     public static void OnStartup() | |||
|  |     { | |||
|  |         SRServiceManager.GetService<InternalOptionsRegistry>().AddOptionContainer(Current); | |||
|  |     } | |||
|  | 
 | |||
|  |     public event SROptionsPropertyChanged PropertyChanged; | |||
|  |      | |||
|  | #if UNITY_EDITOR | |||
|  |     [JetBrains.Annotations.NotifyPropertyChangedInvocator] | |||
|  | #endif | |||
|  |     public void OnPropertyChanged(string propertyName) | |||
|  |     { | |||
|  |         if (PropertyChanged != null) | |||
|  |         { | |||
|  |             PropertyChanged(this, propertyName); | |||
|  |         } | |||
|  | 
 | |||
|  |         if (InterfacePropertyChangedEventHandler != null) | |||
|  |         { | |||
|  |             InterfacePropertyChangedEventHandler(this, new PropertyChangedEventArgs(propertyName)); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     private event PropertyChangedEventHandler InterfacePropertyChangedEventHandler; | |||
|  | 
 | |||
|  |     event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged | |||
|  |     { | |||
|  |         add { InterfacePropertyChangedEventHandler += value; } | |||
|  |         remove { InterfacePropertyChangedEventHandler -= value; } | |||
|  |     } | |||
|  | } |