Instance() public static method

public static Instance ( ) : UnityMainThreadDispatcher,
return UnityMainThreadDispatcher,
    //void ballL

    void runQueueTickBased()
    {
        if (SpawnListQueue.Count > 0)
        {
            Queue <IEnumerator> tempQueue = SpawnListQueue.Dequeue();

            while (tempQueue.Count > 0)
            {
                UnityMainThreadDispatcher.Instance().Enqueue(tempQueue.Dequeue());
            }
        }
        else
        {
            Debug.Log("No item to Run!");
        }

        Debug.Log("tap");
    }
        public void enableCAGCallback(byte ID, object Data)
        {
            byte[] groupIDs = (byte[])Data;
            int    idx;

            for (int i = groupIDs.Length - 1; i >= 0; i--)
            {
                idx = (int)groupIDs[i];
                if (AGXPresent)
                {
                    UnityMainThreadDispatcher.Instance().Enqueue(() => AGXActivateGroupDelayCheck(idx, true));
                }
                else
                {
                    UnityMainThreadDispatcher.Instance().Enqueue(() => FlightGlobals.ActiveVessel.ActionGroups.SetGroup(ActionGroupIDs[idx], true));
                }
            }
        }
        protected override void Client_MatchCreated(Match match)
        {
            base.Client_MatchCreated(match);

            if (TournamentMode && match.Players.Contains(Plugin.client.SelfObject))
            {
                Match = match;

                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                {
                    //Player shouldn't be able to back out of a coordinated match
                    var screenSystem = this.GetField <ScreenSystem>("_screenSystem", typeof(FlowCoordinator));
                    screenSystem.GetField <Button>("_backButton").interactable = false;

                    _splashScreen.StatusText = "Match has been created. Waiting for coordinator to select a song.";
                });
            }
        }
Beispiel #4
0
 public static void NewFile(NetworkFile file)
 {
     file.Start += delegate(NetworkFile thisfile)
     {
         UnityMainThreadDispatcher.Instance().Enqueue(delegate() {
             SocketFile newobject = Instantiate(Preset.objects.SocketFile, Preset.objects.SocketFileGrid.transform);
             newobject.Set(thisfile);
             Preset.objects.SocketFileGrid.repositionNow = true;
         });
     };
     file.End += delegate(NetworkFile thisfile)
     {
         UnityMainThreadDispatcher.Instance().Enqueue(delegate() {
             DestroyImmediate(SocketFile.Items[thisfile].gameObject);
             Preset.objects.SocketFileGrid.repositionNow = true;
         });
     };
 }
        protected override void Client_LoadedSong(IBeatmapLevel level)
        {
            base.Client_LoadedSong(level);

            if (Plugin.IsInMenu())
            {
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                {
                    //If the player is still on the results screen, go ahead and boot them out
                    if (_resultsViewController.isInViewControllerHierarchy)
                    {
                        resultsViewController_continueButtonPressedEvent(null);
                    }

                    songSelection_SongSelected(level.levelID);
                });
            }
        }
 void JobAction(CaptureJob job)
 {
     try
     {
         AssignSlot(job);
         UnityMainThreadDispatcher.Instance().Enqueue(() =>
         {
             var shield = AssetBundlesLoader.GenerateRandomShield(new Vector3(SpawnX, SpawnY + job.slotIndex * SpacingPerCamera, SpawnZ), job.slotIndex);
             //Save shield selection
             File.WriteAllText($"{job.UserId}.shield", JsonUtility.ToJson(shield));
             GifCaptureManagers[job.slotIndex].StartCapturing(job);
         });
     }
     catch (Exception)
     {
         job.Status = CaptureJobStatus.Error;
     }
 }
Beispiel #7
0
        private async void SubmitScoreWhenResolved(string username, ulong userId, LevelCompletionResults results)
        {
            var scores = ((await HostScraper.RequestResponse(EventHost, new Packet(new SubmitScore
            {
                Score = new Score
                {
                    EventId = Event.EventId,
                    Parameters = _currentParameters,
                    UserId = userId,
                    Username = username,
                    FullCombo = results.fullCombo,
                    _Score = results.modifiedScore,
                    Color = "#ffffff"
                }
            }), typeof(ScoreRequestResponse), username, userId)).SpecificPacket as ScoreRequestResponse).Scores.Take(10).ToArray();

            UnityMainThreadDispatcher.Instance().Enqueue(() => SetCustomLeaderboardScores(scores, userId));
        }
    void EmitTelemetry(SocketIOEvent obj)
    {
        UnityMainThreadDispatcher.Instance().Enqueue(() =>        //new thread
        {
            print("Attempting to Send...");
            // send only if it's not being manually driven
            if ((Input.GetKey(KeyCode.W)) || (Input.GetKey(KeyCode.S)))
            {
                _socket.Emit("telemetry", new JSONObject());
            }
            else
            {
                // Collect Data from the Car
                Dictionary <string, string> data = new Dictionary <string, string>();
                data["steering_angle"]           = _carController.CurrentSteerAngle.ToString("N4");
                data["throttle"] = _carController.AccelInput.ToString("N4");
                data["speed"]    = _carController.CurrentSpeed.ToString("N4");
                data["image"]    = Convert.ToBase64String(CameraHelper.CaptureFrame(FrontFacingCamera));
                _socket.Emit("telemetry", new JSONObject(data));
            }
        });

//		    UnityMainThreadDispatcher.Instance().Enqueue(() =>
//		    {
//
//
//
//				// send only if it's not being manually driven
//				if ((Input.GetKey(KeyCode.W)) || (Input.GetKey(KeyCode.S))) {
//					_socket.Emit("telemetry", new JSONObject());
//				}
//				else {
//					// Collect Data from the Car
//					Dictionary<string, string> data = new Dictionary<string, string>();
//					data["steering_angle"] = _carController.CurrentSteerAngle.ToString("N4");
//					data["throttle"] = _carController.AccelInput.ToString("N4");
//					data["speed"] = _carController.CurrentSpeed.ToString("N4");
//					data["image"] = Convert.ToBase64String(CameraHelper.CaptureFrame(FrontFacingCamera));
//					_socket.Emit("telemetry", new JSONObject(data));
//				}
//
//		//
//		    });
    }
Beispiel #9
0
 public void Patient_signup()
 {
     try
     {
         FirebaseController.instance.signup(Email.text, password.text, _name.text, new System.DateTime(getValue(year), getValue(month), getValue(day)), disease.text, getDoctorID(), task => {
             if (task.IsCanceled || task.IsFaulted)
             {
                 UnityMainThreadDispatcher.Instance().Enqueue(() =>
                 {
                     Debug.LogError("sign up Error");
                     ErrorPopup.SetActive(true);
                     return;
                 });
             }
         }, callback =>
         {
             if (callback.IsCanceled || callback.IsFaulted)
             {
                 UnityMainThreadDispatcher.Instance().Enqueue(() =>
                 {
                     Debug.LogError("sign up Error");
                     ErrorPopup.SetActive(true);
                     return;
                 });
             }
             if (callback.IsCompleted)
             {
                 UnityMainThreadDispatcher.Instance().Enqueue(() =>
                 {
                     SceneManager.LoadScene(2);
                 });
             }
         });
     }
     catch
     {
         UnityMainThreadDispatcher.Instance().Enqueue(() =>
         {
             Debug.LogError("sign up Error");
             ErrorPopup.SetActive(true);
             return;
         });
     }
 }
Beispiel #10
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            var audioSource = gameObject.GetComponent <AudioSource>();

            AudioClip clip = null;
            string    link = "http://localhost:64987/files/posted/04d5cd42-2e6c-4e5c-8724-37d92eb40cce.mp3.ogg";
            UnityMainThreadDispatcher.Instance().Enqueue(() =>
            {
                //UnityWebRequest uwr = new UnityWebRequest(link);
                //var data = uwr.downloadHandler.data;
                //AudioClip clip2 = AudioClip.Create( new AudioClip();

                WWW www1 = new WWW(link);
                clip     = www1.GetAudioClip(false, true, AudioType.OGGVORBIS);
                //if (clip.isReadyToPlay)
                {
                    audioSource.clip = clip;
                    audioSource.Play();
                }
            });

            //bool isReadyToPlay = false;


            //while (clip != null && !isReadyToPlay)
            //{
            //    UnityMainThreadDispatcher.Instance().Enqueue(() =>
            //    {
            //        isReadyToPlay = clip.isReadyToPlay;
            //    });

            //    if (isReadyToPlay)
            //    {
            //        UnityMainThreadDispatcher.Instance().Enqueue(() =>
            //        {
            //            audioSource.clip = clip;
            //            audioSource.Play();
            //        });
            //    }
            //}
        }
    }
Beispiel #11
0
    /// <summary>
    /// Trigger a simulation step
    /// </summary>
    void Step()
    {
        UnityMainThreadDispatcher.Instance().Enqueue(() =>
        {
            // Trigger the phyics simulation
            Physics.Simulate(deltaTime);

            // Compute the perceptions for all bodies if they have a perceiver component
            foreach (var agentBody in BodiesRepository.Instance().Bodies)
            {
                var perceiver = agentBody.Value.GetComponent(typeof(Perceiver)) as Perceiver;
                if (perceiver != null)
                {
                    var perceptions = perceiver.PerceivedObjets;
                    this.sarlInterface.EmitPerceptions(new PerceptionList(agentBody.Key, perceptions));
                }
            }
        });
    }
Beispiel #12
0
    public BotConnection(string ip, string puerto, System.Action callback, float vel)
    {
        esperandoJugada = false;
        _velocidad      = vel;
        socket          = new WebSocket("ws://" + ip + ":" + puerto);

        socket.OnMessage += (sender, e) => {
            if (esperandoJugada)
            {
                UnityMainThreadDispatcher.Instance().Enqueue(realizarJugada(JsonUtility.FromJson <Jugada>(e.Data)));
            }
        };

        socket.OnOpen += (sender, e) => {
            callback();
        };

        socket.Connect();
    }
Beispiel #13
0
    /// <summary>
    /// When the server is offline or we can't reach him just quit and notify the player
    /// </summary>
    private void OnServerOffline(NetworkMessage netMsg)
    {
        UnityMainThreadDispatcher.Instance().Enqueue(() =>
        {
            Debug.Log("If we got disconnect here means the server is offline because we have no session ");
            var m = new Modal("Server is offline", "Servers are under maintenance or offline", Modal.Type.Information);
            m.AddCloseListener(delegate
            {
                Destroy(m.GetReference());
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#else
                Application.Quit();
#endif
            });

            m.Render();
        });
    }
Beispiel #14
0
    /// <summary>
    /// Called when the server returns Login Success opcode
    /// </summary>
    /// <param name="netMsg"></param>
    protected void OnLoginSuccess(NetworkMessage netMsg)
    {
        UnityMainThreadDispatcher.Instance().Enqueue(() =>
        {
            LoginPanel.SetActive(false);
            if (GameObject.Find("LoadingBox") != null)
            {
                Destroy(GameObject.Find("LoadingBox"));
            }

            //Create a spinner
            var spin  = Instantiate(Resources.Load <GameObject>("Prefabs/Modals/LoadingBox"), UI.transform) as GameObject;
            spin.name = "LoadingBox";
            spin.transform.Find("Text").GetComponent <Text>().text = "Loading Profile..";

            //Read profileData
            var profileData = netMsg.ReadMessage <ProfileData>();


            //We make observer for WhenData arrives in order to define dynamiclly when loading or loaded is done
            spin.transform.Find("Text").GetComponent <Text>().text = "Loading Cards..";
            SocketController.Send(NetworkInstructions.PLAYER_CARDS_REQUEST, null);

            //Save the username and pwd if the remmeber is set true
            if (PlayerPrefs.GetInt("login_remmeber") == 1)
            {
                PlayerPrefs.SetString("login_username", usrField.text);
                PlayerPrefs.SetString("login_password", pwdField.text);
                Debug.Log("Remmeber saved");
            }

            //Unbind the login handlers since we're going to load the next scene
            SocketController.UnbindEvent(NetworkInstructions.LOGIN_FAIL);
            SocketController.UnbindEvent(NetworkInstructions.LOGIN_REQUEST);
            SocketController.UnbindEvent(NetworkInstructions.LOGIN_SUCCESS);

            //Wipe notifier list if it gives problems trying to notify here
            SocketController.UnbindEvent(NetworkInstructions.ServerOffline);

            //Load next scene
            SceneManager.LoadSceneAsync("MainMenu");
        });
    }
Beispiel #15
0
 public void ListFoodItems()
 {
     FirebaseDatabase.DefaultInstance.GetReference("/restaurants/" + newUser.UserId + "/Menu").GetValueAsync().ContinueWith(task =>
     {
         if (task.IsFaulted)
         {
             // Handle the error...
         }
         else if (task.IsCompleted)
         {
             DataSnapshot snapshot = task.Result;
             foreach (DataSnapshot subInfo in snapshot.Children)
             {
                 UnityMainThreadDispatcher.Instance().Enqueue(InstantiateItemList(subInfo));
             }
             UnityMainThreadDispatcher.Instance().Enqueue(LoadingFinishedForItemList());
         }
     });
 }
        public void ListScenes(string bearer)
        {
            _bearer = bearer;
            ForgeLoader forgeLoader = loader.GetComponent <ForgeLoader> ();
            string      url         = ForgeLoaderConstants._endpoint1 + forgeLoader.URN + "/scenes";
            Hashtable   headers     = new Hashtable();

            headers.Add("Authorization", "Bearer " + _bearer);
            RestClient rest = new RestClient(new System.Uri(url), headers);

            rest.FireRequest(
                (object sender, AsyncCompletedEventArgs args) => {
                if (args == null || args.UserState == null)
                {
                    return;
                }
                if (args.Error != null)
                {
                    UnityMainThreadDispatcher.Instance().Enqueue(() => {
                        Debug.Log(Autodesk.Forge.ARKit.ForgeLoader.GetCurrentMethod() + " " + args.Error.Message);
                    });
                    return;
                }

                DownloadDataCompletedEventArgs args2 = args as DownloadDataCompletedEventArgs;
                string textData = System.Text.Encoding.UTF8.GetString(args2.Result);

                scenesList = JSON.Parse(textData);

                if (scenesList.AsArray.Count > 0)
                {
                    UnityMainThreadDispatcher.Instance().Enqueue(() => {
                        Dropdown dd = combobox.GetComponent <Dropdown> ();
                        foreach (JSONNode child in scenesList.AsArray)
                        {
                            dd.options.Add(new Dropdown.OptionData(child.Value));
                        }
                        combobox.SetActive(true);
                    });
                }
            }
                );
        }
Beispiel #17
0
    public virtual void RewardOnClose()
    {
#if UNITY_IPHONE
        if (rewardEvent == AdEvent.Success)
        {
            UnityMainThreadDispatcher.Instance().Enqueue(() =>
            {
                onRewardShowSuccess?.Invoke(AdEvent.Success);
                onRewardShowSuccess = null;
            });
        }
#else
        //Android --> onRewardShowSuccess onSuccess Event
#endif

        PauseApp(false);
        rewardEvent = AdEvent.Load;
        RewardLoad();
    }
    void OnMessageHandler(object sender, MessageEventArgs e)
    {
        string message = "Court WebSocket server said: " + e.Data;

        Debug.Log(message);

        string       jsonString = System.Text.Encoding.UTF8.GetString(e.RawData);
        SocketEntity entity     = JsonUtility.FromJson <SocketEntity>(jsonString);

        if (entity.data.bid > 0)
        {
            if (OnBallPositionChanged != null)
            {
                string bid = entity.data.bid + "";
                int    x   = entity.data.y;
                int    y   = entity.data.x;
                int    z   = entity.data.z;
                UnityMainThreadDispatcher.Instance().Enqueue(
                    () => OnBallPositionChanged(bid, x, y, z)
                    );
            }
        }
        else if (entity.data.pid > 0)
        {
            if (OnPlayerPositionChanged != null)
            {
                string pid = entity.data.pid + "";
                int    x   = entity.data.y;
                int    y   = entity.data.x;
                int    z   = entity.data.z;
                UnityMainThreadDispatcher.Instance().Enqueue(
                    () => OnPlayerPositionChanged(pid, x, y, z)
                    );
            }
            if (entity.data.shot != null && entity.data.shot.hid != null && OnShotMade != null)
            {
                Debug.LogWarning("============== " + entity.data.shot.hid + "........" + entity.data.shot.st);
                UnityMainThreadDispatcher.Instance().Enqueue(
                    () => OnShotMade(entity.data.shot.hid, entity.data.shot.st)
                    );
            }
        }
    }
Beispiel #19
0
    public virtual void OnLobbyStateChange(LobbyState state)
    {
        UnityMainThreadDispatcher.Instance().Enqueue(() =>
        {
            UpdateStartGameButton();
            UpdateReadyButton();
            UpdatePlayButton();
            UpdateControls();
            UpdatePlayerStates();

            // Emulate clicking a play button
            if (state == LobbyState.GameInProgress &&
                AutoJoinGameWhenReady &&
                !_wasGameRunningWhenOpened)
            {
                OnPlayClick();
            }
        });
    }
        public async Task PostSave(IHttpContext context, PostSavePayload body)
        {
            Authenticator.VerifyAuth(context);

            if (body == null)
            {
                throw new BadRequestException("A body with a fileName must be specified.");
            }

            if (body.fileName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0)
            {
                throw new BadRequestException("Filename contains invalid characters.");
            }

            string worldDirectory = Path.Combine(XmlSaveLoad.CheckFiles(), "saves/" + body.fileName);

            UnityMainThreadDispatcher.Instance().Enqueue(XmlSaveLoad.Instance.ForceWriteWorld(worldDirectory));
            await context.SendResponse(HttpStatusCode.OK, body);
        }
Beispiel #21
0
        void OnCamConfig(JSONObject json)
        {
            float  fov        = float.Parse(json.GetField("fov").str, CultureInfo.InvariantCulture.NumberFormat);
            float  offset_x   = float.Parse(json.GetField("offset_x").str, CultureInfo.InvariantCulture.NumberFormat);
            float  offset_y   = float.Parse(json.GetField("offset_y").str, CultureInfo.InvariantCulture.NumberFormat);
            float  offset_z   = float.Parse(json.GetField("offset_z").str, CultureInfo.InvariantCulture.NumberFormat);
            float  rot_x      = float.Parse(json.GetField("rot_x").str, CultureInfo.InvariantCulture.NumberFormat);
            float  fish_eye_x = float.Parse(json.GetField("fish_eye_x").str, CultureInfo.InvariantCulture.NumberFormat);
            float  fish_eye_y = float.Parse(json.GetField("fish_eye_y").str, CultureInfo.InvariantCulture.NumberFormat);
            int    img_w      = int.Parse(json.GetField("img_w").str);
            int    img_h      = int.Parse(json.GetField("img_h").str);
            int    img_d      = int.Parse(json.GetField("img_d").str);
            string img_enc    = json.GetField("img_enc").str;

            if (carObj != null)
            {
                UnityMainThreadDispatcher.Instance().Enqueue(SetCamConfig(fov, offset_x, offset_y, offset_z, rot_x, img_w, img_h, img_d, img_enc, fish_eye_x, fish_eye_y));
            }
        }
Beispiel #22
0
        public override IRtmChannel JoinChannel(string channelName)
        {
            channelMessageCallback = new RtmWrapperDll.ChannelMessageReceivedHandler(ChannelMessageHandler);
            leaveCallback          = new RtmWrapperDll.LeaveHandler(LeaveChannelHandler);
            getMembersCallback     = new RtmWrapperDll.GetMembersHandler(GetChannelMembersHandler);

            var channel = RtmWrapperDll.createChannel(channelName,
                                                      (mid, status) => { Debug.Log("message " + mid + " sent with status: " + status); },
                                                      () => { UnityMainThreadDispatcher.Instance().Enqueue(() => { channels.Add(channelName); Debug.Log("joined: " + channelName);  OnJoinSuccessCallback(); }); },
                                                      (errorCode) => { Debug.Log("error joining channel: " + errorCode); },
                                                      channelMessageCallback,
                                                      leaveCallback,
                                                      getMembersCallback
                                                      );

            channel.Join();

            return(channel);
        }
        protected virtual void Client_ConnectedToServer(ConnectResponse response)
        {
            //In case this coordiator is reused, re-set the dismiss-on-disconnect flag
            ShouldDismissOnReturnToMenu = false;

            //When we're connected to the server, we should update our self to show our mod list
            (Plugin.client.Self as Player).ModList = IPA.Loader.PluginManager.EnabledPlugins.Select(x => x.Id).ToArray();
            Plugin.client.UpdatePlayer(Plugin.client.Self as Player);

            //Needs to run on main thread
            UnityMainThreadDispatcher.Instance().Enqueue(() =>
            {
                _gameplaySetupViewController.Setup(false, true, true, false, PlayerSettingsPanelController.PlayerSettingsPanelLayout.Singleplayer);
                SetLeftScreenViewController(_gameplaySetupViewController, ViewController.AnimationType.In);
                SetRightScreenViewController(_ongoingGameList, ViewController.AnimationType.In);
                _ongoingGameList.ClearMatches();
                _ongoingGameList.AddMatches(Plugin.client.State.Matches);
            });
        }
Beispiel #24
0
 void OnLogMessageReceived(object sender, LogMessageReceivedEventArgs args)
 {
     UnityMainThreadDispatcher.Instance().Enqueue((() =>
     {
         //if ((args.MessageType & (LogMessageType.None | LogMessageType.Trace | LogMessageType.Debug | LogMessageType.Info)) != 0)
         //{
         //    Debug.Log(args.Message);
         //}
         //else
         if ((args.MessageType & (LogMessageType.Warning)) != 0)
         {
             Debug.LogWarning(args.Message);
         }
         else if ((args.MessageType & (LogMessageType.Error | LogMessageType.Fatal)) != 0)
         {
             Debug.LogError(args.Message);
         }
     }));
 }
Beispiel #25
0
        void ChannelMemberCountHandler(long requestId, IntPtr channelMember, int channelMemberCount, int errorCode)
        {
            Debug.Log(channelMemberCount);
            int offset = 0;
            List <ChannelMemberCount> channelMembers = new List <ChannelMemberCount>();

            for (var i = 0; i < channelMemberCount; i++)
            {
                var ptr = new IntPtr(channelMember.ToInt64() + offset);
                var cmc = (ChannelMemberCount)Marshal.PtrToStructure(ptr, typeof(ChannelMemberCount));
                channelMembers.Add(cmc);
                Debug.Log(cmc.channelId + ": " + cmc.count);
            }

            UnityMainThreadDispatcher.Instance().Enqueue(() =>
            {
                OnChannelMemberCountReceivedCallback(requestId, channelMembers);
            });
        }
Beispiel #26
0
    //------------------------------------------------------------->

    /// <summary>
    /// Aplicar una corrección al personaje (local) del jugador si es necesario
    /// </summary>
    /// <param name="tick"></param>
    /// <param name="serverPosition"></param>
    public void CorrectPlayer(int tick, Vector2 serverPosition)
    {
        //Distancia de diferencia entre el jugador local y su representacion en servidor
        float diffX = bufferPosition[TickToIndex(tick)].x - serverPosition.x;
        float diffY = bufferPosition[TickToIndex(tick)].y - serverPosition.y;

        diff = new Vector2(diffX, diffY);

        //Corregir la posicion
        if (Mathf.Abs(diffX) > 2 || Mathf.Abs(diffY) > 3)
        {
            UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                         player.transform.position = serverPosition
                                                         );
        }

        //Enviar info para la interfaz grafica
        debugInfoScreen.SetDiff(new Vector2(diffX, diffY));
    }
Beispiel #27
0
    private void ReceivedMessage(string v)
    {
        if (logging)
        {
            Debug.Log($"Received Message: { v}");
        }
        if (v.StartsWith("Pressed"))
        {
            v = v.Split('_')[1];
            int buttonIndex = 0;
            int.TryParse(v, out buttonIndex);

            if (buttonIndex >= 0)
            {
                UnityMainThreadDispatcher.Instance().Enqueue(() => ButtonPressed.Invoke(buttonIndex));
            }
            // TEST
            SendMessageToServer($"Sie haben Knopf {buttonIndex} geklickt!");
        }
        else if (v.StartsWith("pong"))
        {
        }
        else if (v.StartsWith("QR"))
        {
            var rgx  = new System.Text.RegularExpressions.Regex(@"^[\w]{2}_[\w]{2}_\d{2}_\d{4}$");
            var code = v.Substring(3);

            if (rgx.IsMatch(code))
            {
                SendMessageToServer($"Teilnehmer ID {code} gescannt!");
                UnityMainThreadDispatcher.Instance().Enqueue(() => QRCodeEntered.Invoke(code));
            }
            else
            {
                SendMessageToServer($"QR Code {v} gescannt! Keine Teilnehmerkennung erkannt!");
            }
        }
        else
        {
            Debug.LogWarning($"RemoteControl received unhandled Message: { v}");
        }
    }
        private async void SubmitScoreWhenResolved(string username, ulong userId, LevelCompletionResults results)
        {
            var submitScorePkt = new Packet(new SubmitScore
            {
                Score = new Score
                {
                    EventId    = Event.EventId,
                    Parameters = _currentParameters,
                    UserId     = userId.ToString(CultureInfo.InvariantCulture),
                    Username   = username,
                    FullCombo  = results.fullCombo,
                    Score_     = results.modifiedScore,
                    Color      = "#ffffff"
                }
            });

            const string backupPath = "backup_score_submission_packets";

            // We would like to cache the submit score packet to disk in the event of a score submission failure.
            // This should be written as binary and ideally also in an HR form.
            try
            {
                if (!Directory.Exists(backupPath))
                {
                    Directory.CreateDirectory(backupPath);
                }
                System.IO.File.WriteAllBytes(Path.Combine(backupPath, submitScorePkt.Id.ToString() + ".dat"), submitScorePkt.ToBytes());
            }
            catch (Exception ex)
            {
                TournamentAssistantShared.Logger.Error(ex.ToString());
            }

            var submitScoreResponse = (await HostScraper.RequestResponse(EventHost, submitScorePkt, typeof(ScoreRequestResponse), username, userId)).SpecificPacket as ScoreRequestResponse;

            if (submitScoreResponse != null)
            {
                var scores = submitScoreResponse.Scores.Take(10).ToArray();

                UnityMainThreadDispatcher.Instance().Enqueue(() => SetCustomLeaderboardScores(scores, userId));
            }
        }
Beispiel #29
0
    public void createUserClicked()
    {
        if (createEmail.text.Length == 0 || createPassword.text.Length == 0 || createUsername.text.Length == 0)
        {
            MNPopup mNPopup = new MNPopup("Error", "Please Input Correct!");
            mNPopup.AddAction("Ok", () => { Debug.Log("Ok action callback"); });
            mNPopup.Show();
        }
        else
        {
            var user = new ParseUser();
            user.Username = createUsername.text;
            user.Password = createPassword.text;
            user.Email    = createEmail.text;


            // other fields can be set just like with ParseObject
            user["nickName"] = createUsername.text;
            //MNP.ShowPreloader("", "Creating...");
            user.SignUpAsync().ContinueWith(t => {
                MNP.HidePreloader();
                if (t.IsFaulted)
                {
                    // Errors from Parse Cloud and network interactions
                    using (IEnumerator <System.Exception> enumerator = t.Exception.InnerExceptions.GetEnumerator())
                    {
                        if (enumerator.MoveNext())
                        {
                            ParseException error = (ParseException)enumerator.Current;
                            // error.Message will contain an error message
                            // error.Code will return "OtherCause"
                            UnityMainThreadDispatcher.Instance().Enqueue(showErrorWithMessage(error.Message));
                        }
                    }
                }
                else
                {
                    UnityMainThreadDispatcher.Instance().Enqueue(createSuccess());
                }
            });
        }
    }
    void SendRequest()
    {
        byte[] commandIDBytesToSend = ASCIIEncoding.ASCII.GetBytes(commandID);

        UnityMainThreadDispatcher.Instance().Enqueue(() =>
        {
            GUIManager.Instance.videoPlayerPanelController.videoStreamingLogText.text += "Sending request...\n";
        });

        byte[] frameNoBytesToSend = new byte[FRAME_NO_BYTE_NUM];

        Array.Clear(frameNoBytesToSend, 0, frameNoBytesToSend.Length);
        byte[] frameNoBytes = BitConverter.GetBytes(requestedFrameNo);
        frameNoBytes.CopyTo(frameNoBytesToSend, 0);

        //byte[] videoNameBytesToSend = Encoding.UTF8.GetBytes(requestedVideoName);
        byte[] videoNameBytesToSend = ASCIIEncoding.ASCII.GetBytes(requestedVideoName);

        NetworkStream serverStream = client.GetStream();

        bool requestSent = false;

        (new Thread(() =>
        {
            serverStream.Write(commandIDBytesToSend, 0, commandIDBytesToSend.Length);
            serverStream.Write(frameNoBytesToSend, 0, frameNoBytesToSend.Length);
            serverStream.Write(videoNameBytesToSend, 0, videoNameBytesToSend.Length);

            requestSent = true;
            requestingBeginTime = DateTime.Now;
        })).Start();

        while (!requestSent)
        {
            System.Threading.Thread.Sleep(1);
        }

        UnityMainThreadDispatcher.Instance().Enqueue(() =>
        {
            GUIManager.Instance.videoPlayerPanelController.videoStreamingLogText.text += "Request sent!\n";
        });
    }