Advertisement
Guest User

OpponentMotionReceiver

a guest
Dec 10th, 2015
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.01 KB | None | 0 0
  1. using JetBrains.Annotations;
  2. using Scripts.Enums;
  3. using Scripts.MonoBehaviours.Controllers;
  4. using System;
  5. using UnityEngine;
  6.  
  7. namespace Scripts.MonoBehaviours
  8. {
  9.     public class OpponentMotionReceiver : MonoBehaviour
  10.     {
  11.         private SceneController sceneController;
  12.         private MultiplayerController multiplayerController;
  13.  
  14.         public event EventHandler<BlockReleasedEventArgs> Released;
  15.  
  16.         [UsedImplicitly]
  17.         private void Start()
  18.         {
  19.             Debug.Log("Start OpponentMotionReceiver");
  20.             gameObject.AddComponent<DontDestroyOnLoad>();
  21.             sceneController = FindObjectOfType<SceneController>();
  22.             multiplayerController = FindObjectOfType<MultiplayerController>();
  23.  
  24.             sceneController.LoadingScene += LoadingSceneHandler;
  25.             multiplayerController.RealTimeMsgReceived += MsgReceived;
  26.         }
  27.  
  28.         private void LoadingSceneHandler(object sender, SceneLoadEventArgs args)
  29.         {
  30.             switch (args.Scene)
  31.             {
  32.                 case Scene.Game:
  33.                 case Scene.Home:
  34.                     {
  35.                         Debug.Log("destroy");
  36.                         Destroy(gameObject);
  37.                         break;
  38.                     }
  39.             }
  40.         }
  41.  
  42.         private void OnDisable()
  43.         {
  44.             Debug.Log("OnDisable OpponentMotionReceiver");
  45.         }
  46.  
  47.         [UsedImplicitly]
  48.         private void OnDestroy()
  49.         {
  50.             Debug.Log("OnDestroy OpponentMotionReceiver");
  51.             multiplayerController.RealTimeMsgReceived -= MsgReceived;
  52.             sceneController.LoadingScene -= LoadingSceneHandler;
  53.         }
  54.  
  55.         private void MsgReceived(object sender, RealTimeMsgReceivedEventArgs args)
  56.         {
  57.             if(args.MsgType != MsgType.PlayerMotion) return;
  58.  
  59.             var correct = args.Data[0] == 1;
  60.             var motionArgs = new BlockReleasedEventArgs(correct);
  61.             if (Released != null) Released(this, motionArgs);
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement