Advertisement
Guest User

Yoba

a guest
Aug 3rd, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.73 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. public class Yoba : MonoBehaviour
  4. {
  5.     IYoba m_YobaStateController;
  6.  
  7.     void Awake()
  8.     {
  9.         m_YobaStateController = new YobaStateController ();
  10.     }
  11.  
  12.     public void GetYobaAction()
  13.     {
  14.         m_YobaStateController.DooSomething ();
  15.     }
  16.  
  17.     public void SetNextState()
  18.     {
  19.         m_YobaStateController.SetNextState ();
  20.     }
  21. }
  22.  
  23. public interface IYoba
  24. {
  25.     void DooSomething ();
  26.     void SetNextState();
  27. }
  28.  
  29. public interface IYobaStatable
  30. {
  31.     void SetMaliYobaState ();
  32.     void SetBolshoYobaState ();
  33. }
  34.  
  35. public class YobaStateController : IYoba, IYobaStatable
  36. {
  37.     IYobaState m_MaliYobaState;
  38.     IYobaState m_BolshoYobaState;
  39.  
  40.     IYobaState m_CurrentYobaState;
  41.  
  42.     public YobaStateController()
  43.     {
  44.         m_MaliYobaState = new MaliYobaState ();
  45.         m_BolshoYobaState = new BolshoYobaState ();
  46.  
  47.         SetMaliYobaState ();
  48.     }
  49.  
  50.     public void DooSomething ()
  51.     {
  52.         m_CurrentYobaState.DooSomething ();
  53.     }
  54.  
  55.     public void SetNextState()
  56.     {
  57.         m_CurrentYobaState.SetNextState (this);
  58.     }
  59.  
  60.     public void SetMaliYobaState()
  61.     {
  62.         m_CurrentYobaState = m_MaliYobaState;
  63.     }
  64.  
  65.     public void SetBolshoYobaState()
  66.     {
  67.         m_CurrentYobaState = m_BolshoYobaState;
  68.     }
  69. }
  70.  
  71. public interface IYobaState
  72. {
  73.     void DooSomething ();
  74.     void SetNextState (IYobaStatable statable);
  75.  
  76. }
  77.  
  78. public class MaliYobaState : IYobaState
  79. {
  80.     public void DooSomething ()
  81.     {
  82.         Debug.Log ("pssss... mali yoba turn to bolsho yoba");
  83.     }
  84.     public void SetNextState (IYobaStatable statable)
  85.     {
  86.         statable.SetBolshoYobaState ();
  87.     }
  88. }
  89.  
  90. public class BolshoYobaState : IYobaState
  91. {
  92.     public void DooSomething (IYobaStatable statable)
  93.     {
  94.         Debug.Log ("pssss... bolsho yoba turn to mali yoba");
  95.     }
  96.  
  97.     public void SetNextState (IYobaStatable statable)
  98.     {
  99.         statable.SetMaliYobaState ();
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement