Advertisement
apieceoffruit

CodeExample - Activity

Feb 8th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.23 KB | None | 0 0
  1.     public class ActivityManager
  2.     {
  3.         public void Tick(float deltaTime) => Current.Tick(deltaTime);
  4.        
  5.         public void Change(IActivity activity)
  6.         {
  7.             Current.Exit();
  8.             _activity = activity;
  9.             Current.Enter();
  10.         }
  11.        
  12.         public void SetContext(object context) => Current.SetContext(context);
  13.        
  14.         public void Destroy()
  15.         {
  16.             Current.Teardown();
  17.             _activity = null;
  18.         }
  19.        
  20.         IActivity Current => _activity ?? NoActivity.Instance;
  21.         IActivity _activity;
  22.     }
  23.  
  24.     public interface IActivity
  25.     {
  26.         void SetContext(object context);
  27.         void Setup();
  28.         void Enter();
  29.         void Tick(float deltaTime);
  30.         void Exit();
  31.        
  32.         void Teardown();
  33.        
  34.     }
  35.    
  36.     class NoActivity : IActivity
  37.     {
  38.         public void SetContext(object context) { }
  39.         public void Setup() { }
  40.         public void Enter() { }
  41.         public void Tick(float deltaTime) { }
  42.         public void Exit() { }
  43.         public void Teardown() { }
  44.         public static NoActivity Instance => _instance ??= new NoActivity();
  45.         static NoActivity _instance;
  46.     }
  47.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement