/// <summary> /// Callback to be sent to the network to receive more data /// </summary> /// <param name="ar"></param> private void ReceiveData(IAsyncResult ar) { //Get them cubes Preserved_State state = (Preserved_State)ar.AsyncState; string world_json = state.sb.ToString(); ProcessJsonBlock(world_json); //Clear out what was in the last version of the world so it gets a fresh copy state.sb.Clear(); Network.i_want_more_data(ar); }
/// <summary> /// Receive the initial player response /// </summary> /// <param name="ar"></param> private void ReceivePlayer(IAsyncResult ar) { Preserved_State state = (Preserved_State)ar.AsyncState; Console.WriteLine("Welcome " + player_name); //Handle the player cube coming in string player_json = state.sb.ToString(); world.AddPlayerCube(player_json); GameRunning = true; state.GUI_Callback = new AsyncCallback(ReceiveData); Network.i_want_more_data(ar); }
/***************************************CALLBACK DELEGATES*****************************************/ /// <summary> /// Callback for the connection /// </summary> /// <param name="ar"></param> private void ConnectCallback(IAsyncResult ar) { Preserved_State state = (Preserved_State)ar.AsyncState; state.GUI_Callback = new AsyncCallback(ReceivePlayer); if (state.socket.Connected) { //Send the player name ServerConnected = true; Network.Send(socket, player_name + '\n'); } else { ServerConnected = false; Invoke(new Action(ShowReConnectForm)); } }