Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using UnityEngine;
- using System.Collections.Generic; its a thing obviously jeez
- using System.IO;
- using System.Linq;
- using System.Runtime.Serialization.Formatters.Binary;
- public class MessageHandler
- {
- List<byte> _message = new List<byte>();
- public MessageHandler()
- {
- }
- public void HandleMessage(byte[] message)
- {
- Debug.Assert(message != null);
- char messageType = (char)message[0];
- Debug.Log("Handling Message:" + messageType);
- if (messageType == 'U')
- {
- HandleUpdateMessage(message);
- }
- else if(messageType == 'C')
- {
- HandleCollisionMessage(message);
- }
- else if(messageType == 'S')
- {
- HandleSetupMessage(message);
- }
- else if (messageType == 'R')
- {
- HandleRequestSetupMessage();
- }
- else if(messageType == 'G')
- {
- HandleGameStartedMessage();
- }
- }//end HandleMessage()
- public void HandleUpdateMessage(byte[] message)
- {
- if (GameObject.Find("Net").GetComponent<net_script>().otherPlayerInGame)
- {
- float posX = System.BitConverter.ToSingle(message, 1);//float.Parse(message[1]);
- float posY = System.BitConverter.ToSingle(message, 5);
- if (GameObject.Find("Net").GetComponent<net_script>().IsHost())
- {
- if (GameObject.Find("OtherPlayer"))
- {
- GameObject.Find("OtherPlayer").GetComponent<OtherPlayer>().Puppeteer(posX, posY);
- }
- }
- else
- {
- if (GameObject.Find("Player"))
- {
- GameObject.Find("Player").GetComponent<Player>().Puppeteer(posX, posY);
- }
- }
- }
- }//end HandleUpdateMessage()
- private void HandleCollisionMessage(byte[] message)
- {
- GameObject.Find("Main Camera").GetComponent<Main>().Catch();
- }
- private void HandleRequestSetupMessage()
- {
- net_script net = GameObject.Find("Net").GetComponent<net_script>();
- Main main = GameObject.Find("Main Camera").GetComponent<Main>();
- Vector2 playerPos = GameObject.Find("Player").transform.position;
- Vector2 otherPlayerPos = GameObject.Find("OtherPlayer").transform.position;
- _message.Clear();
- _message.Add((byte)'S');
- _message.AddRange(BitConverter.GetBytes(main.roleConfig));
- //serialize the player
- _message.AddRange(BitConverter.GetBytes(playerPos.x));
- _message.AddRange(BitConverter.GetBytes(playerPos.y));
- _message.AddRange(BitConverter.GetBytes(otherPlayerPos.x));
- _message.AddRange(BitConverter.GetBytes(otherPlayerPos.y));
- byte[] messageToSend = _message.ToArray();
- byte[] buffer = new byte[1024];
- Stream stream = new MemoryStream(buffer);
- BinaryFormatter formatter = new BinaryFormatter();
- formatter.Serialize(stream, messageToSend);
- net.SendSerializedMessage(buffer);
- }
- private void HandleSetupMessage(byte[] message)
- {
- Main main = GameObject.Find("Main Camera").GetComponent<Main>();
- Vector2 playerPos = new Vector2();
- Vector2 otherPlayerPos = new Vector2();
- main.PickRoles((int)System.BitConverter.ToSingle(message, 1));
- playerPos.x = System.BitConverter.ToSingle(message, 5);
- playerPos.y = System.BitConverter.ToSingle(message, 9);
- GameObject.Find("Player").transform.position = playerPos;
- otherPlayerPos.x = System.BitConverter.ToSingle(message, 13);
- otherPlayerPos.y = System.BitConverter.ToSingle(message, 17);
- GameObject.Find("OtherPlayer").transform.position = otherPlayerPos;
- GameObject.Find("Net").GetComponent<net_script>().otherPlayerInGame = true;
- GameObject.Find("Net").GetComponent<net_script>().SendSocketMessage("GameStarted");
- }
- private void HandleGameStartedMessage()
- {
- GameObject.Find("Net").GetComponent<net_script>().otherPlayerInGame = true;
- }
- }//end class MessageHandler
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement