Example #1
0
 private void On_DZ_BallDroneReleased(BEHandle <EPlayerID> handle)
 {
     if (IS_NOT_NULL(ballDroneCatchIndicator))
     {
         ballDroneCatchIndicator.HideUIElement();
     }
 }
Example #2
0
        /* On Clients */
        private void On_NETWORK_PlayerJoined(BEHandle <EPlayerID, EControllerID> handle)
        {
            if (ARE_NOT_EQUAL(localNetworkID, handle.InvokingNetworkID) &&
                ARE_NOT_EQUAL(localNetworkID, ENetworkID.HOST) &&
                InputManager.Instance.IsControllerConnected(handle.Arg2) == false)
            {
                // Connect Controller
                InputManager.Instance.ConnectController(handle.Arg2);

                // Update Party Map
                if (IS_KEY_NOT_CONTAINED(partyMap, handle.Arg2))
                {
                    partyMap.Add(handle.Arg2, handle.Arg1);
                }

                // Join Player
                IS_TRUE(PlayerManager.Instance.JoinPlayer(handle.Arg1, handle.Arg2));

                // Spawn Player
                ENetworkID        networkID = BUtils.GetNetworkIDFrom(handle.Arg2);
                AbstractNetPlayer newPlayer = (AbstractNetPlayer)PlayerManager.Instance.SpawnPlayer(handle.Arg1);
                if (IS_NOT_NULL(newPlayer) &&
                    IS_NOT_NONE(networkID))
                {
                    newPlayer.SetOwner(networkID);
                }
            }
        }
Example #3
0
        private void On_INPUT_ControllerDisconnected(BEHandle <EControllerID> eventHandle)
        {
            EControllerID controllerID = eventHandle.Arg1;

            if (IS_KEY_CONTAINED(ControllersMap, controllerID))
            {
                EPlayerID playerID = ControllersMap[controllerID];

                // Was a joined controller?
                if (playerID != EPlayerID.SPECTATOR &&
                    IS_KEY_CONTAINED(partyStatusMap, playerID))
                {
                    partyStatusMap[playerID].Flush();
                }

                // Destroy Player
                if (ActivePlayers.ContainsKey(playerID))
                {
                    DestroyPlayer(playerID);
                }

                ControllersMap.Remove(controllerID);

                BEventsCollection.PLAYERS_PlayerLeft.Invoke(new BEHandle <EPlayerID, EControllerID>(playerID, controllerID));
            }
        }
Example #4
0
        private void On_NETWORK_CalculateRTT(BEHandle <ENetworkID, int> handle)
        {
            ENetworkID requestingNetworkID = handle.Arg1;
            int        startTime           = handle.Arg2;

            // Half-way
            if (BEventManager.Instance.LocalNetworkID != requestingNetworkID)
            {
                BEventsCollection.NETWORK_CalculateRTT.Invoke(new BEHandle <ENetworkID, int>(requestingNetworkID, startTime), BEventReplicationType.TO_TARGET, false, requestingNetworkID);
            }
            // Round Trip
            else
            {
                CurrentPing = BUtils.GetTimeAsInt() - startTime;

                if (CurrentPing < pingDropTreshold)
                {
                    CalculateAvgPing(CurrentPing);
                }
                else
                {
                    LogConsole("Ping dropped : " + CurrentPing);
                }
            }
        }
Example #5
0
 private void On_NETWORK_RequestPing(BEHandle handle)
 {
     if (ARE_NOT_EQUAL(BEventManager.Instance.LocalNetworkID, handle.InvokingNetworkID))
     {
         int myPing = BEventManager.Instance.GetPing();
         BEventsCollection.NETWORK_SharePing.Invoke(new BEHandle <int>(myPing), BEventReplicationType.TO_TARGET, true, handle.InvokingNetworkID);
     }
 }
Example #6
0
 private void On_DZ_BallDroneCaught(BEHandle <EPlayerID> handle)
 {
     if (BEventManager.Instance.LocalNetworkID == handle.InvokingNetworkID &&
         IS_NOT_NULL(ballDroneCatchIndicator))
     {
         ballDroneCatchIndicator.ShowUIElement();
     }
 }
Example #7
0
 private void On_BI_PlayVideo(BEHandle handle)
 {
     if (handle.InvokingNetworkID != BEventManager.Instance.LocalNetworkID &&
         IS_NOT_NULL(videoPlayer))
     {
         StopVideo();
         PlayVideo();
     }
 }
Example #8
0
        private void On_NETWORK_SharePing(BEHandle <int> handle)
        {
            ENetworkID invokingNetworkID = handle.InvokingNetworkID;

            if (ARE_NOT_EQUAL(BEventManager.Instance.LocalNetworkID, invokingNetworkID) &&
                IS_KEY_CONTAINED(pingMap, invokingNetworkID))
            {
                pingMap[invokingNetworkID] = handle.Arg1;
            }
        }
Example #9
0
        protected virtual void On_AR_TrackerUpdated(BEHandle <string, Vector3, Quaternion> eHandle)
        {
            string trackerName = eHandle.Arg1;

            if (eHandle.Arg1 == BindWithTrackerName)
            {
                transform.position = eHandle.Arg2;
                transform.rotation = eHandle.Arg3;
                InvokeTrackerEvent();
            }
        }
Example #10
0
 private void On_AR_PlayAreaStateUpdated(BEHandle <EPlayAreaState, AbstractPlayArea> handle)
 {
     if (handle.Arg1 == EPlayAreaState.READY)
     {
         RectanglePlayArea rectanglePlayArea = (RectanglePlayArea)handle.Arg2;
         if (rectanglePlayArea)
         {
             playAreaUpVector = rectanglePlayArea.UpVector;
         }
     }
 }
Example #11
0
        private void On_INPUT_ControllerConnected(BEHandle <EControllerID> eventHandle)
        {
            EControllerID controllerID = eventHandle.Arg1;

            // Add connected controller as a spectator
            if (IS_KEY_NOT_CONTAINED(ControllersMap, controllerID))
            {
                ControllersMap.Add(controllerID, EPlayerID.SPECTATOR);

                BEventsCollection.PLAYERS_PlayerJoined.Invoke(new BEHandle <EPlayerID, EControllerID>(EPlayerID.SPECTATOR, controllerID));
            }
        }
Example #12
0
 private void On_NETWORK_NewNetworkIDConnected(BEHandle <ENetworkID> handle)
 {
     if (BEventManager.Instance.LocalNetworkID == ENetworkID.HOST)
     {
         EControllerID newControllerID = BUtils.GetControllerIDFrom(handle.Arg1);
         if (IS_NOT_NONE(newControllerID) &&
             InputManager.Instance.IsControllerConnected(newControllerID) == false)
         {
             StartCoroutine(JoinConnectedPlayerCoroutine(handle, newControllerID));
         }
     }
 }
Example #13
0
        private void On_UI_FocusedFrameUpdated(BEHandle <BFrame> bEHandle)
        {
            BFrame bFrame = bEHandle.Arg1;

            if (cameraTransforms.ContainsKey(bFrame))
            {
                BFrameCameraTransform newCameraTransform = cameraTransforms[bFrame];
                cameraTransformLerp.StartValue   = lastCameraTransform.transform;
                cameraTransformLerp.EndValue     = newCameraTransform.transform;
                cameraTransformLerp.PlayDuration = newCameraTransform.TransitionTime;
                cameraTransformLerp.StartAnimation();

                lastCameraTransform = newCameraTransform;
            }
        }
Example #14
0
        public bool DisconnectController(EControllerID controllerID)
        {
            if (connectedControllers.Contains(controllerID) == false)
            {
                LogConsoleError("Trying to disconnect a controller that is not connected.");
                return(false);
            }

            connectedControllers.Remove(controllerID);

            // Invoke event
            BEHandle <EControllerID> controllerDisconnected = new BEHandle <EControllerID>(controllerID);

            BEventsCollection.INPUT_ControllerDisconnected.Invoke(controllerDisconnected);
            return(true);
        }
Example #15
0
        private void On_NETWORK_PlayerLeft(BEHandle <EPlayerID, EControllerID> handle)
        {
            if (ARE_NOT_EQUAL(localNetworkID, handle.InvokingNetworkID) &&
                ARE_NOT_EQUAL(localNetworkID, ENetworkID.HOST) &&
                InputManager.Instance.IsControllerConnected(handle.Arg2) == true)
            {
                // Connect Controller
                InputManager.Instance.DisconnectController(handle.Arg2);

                // Update Party Map
                if (IS_KEY_CONTAINED(partyMap, handle.Arg2))
                {
                    partyMap.Remove(handle.Arg2);
                }
            }
        }
Example #16
0
        private void On_INPUT_ButtonReleased(BEHandle <EControllerID, EInputButton> eventHandle)
        {
            EInputButton inputButton = eventHandle.Arg2;

            if (CurrentBButtonHighlighted)
            {
                switch (inputButton)
                {
                case EInputButton.CONFIRM:
                    if (canPressButton == true)
                    {
                        CurrentBButtonHighlighted.OnReleased(true);
                    }
                    break;
                }
            }
        }
Example #17
0
        private void On_DZ_BallDroneReleased(BEHandle <EPlayerID> handle)
        {
            // On not locally owned instances
            if (handle.Arg1 == playerID &&
                ARE_NOT_EQUAL(handle.InvokingNetworkID, BEventManager.Instance.LocalNetworkID) &&
                IS_NOT_NULL(caughtBallDrone))
            {
                caughtBallDrone.Release(transform.position, Vector3.zero, 0.0f);

                caughtBallDrone = null;

                if (myRenderer)
                {
                    myRenderer.material.color = Color.white;
                }
            }
        }
Example #18
0
        protected override void On_AR_TrackerUpdated(BEHandle <string, Vector3, Quaternion> eHandle)
        {
            if (ARManager.Instance.FixWorldRoot == false)
            {
                string trackerName = eHandle.Arg1;
                if (eHandle.Arg1 == BindWithTrackerName)
                {
                    transform.position = eHandle.Arg2;

                    // Keep rotation on x axis (pitch) the same
                    Vector3 newRotation = eHandle.Arg3.eulerAngles;
                    transform.rotation = Quaternion.Euler(new Vector3(transform.rotation.eulerAngles.x, newRotation.y, transform.rotation.eulerAngles.z));

                    InvokeTrackerEvent();
                }
            }
        }
Example #19
0
        //protected override void Start()
        //{
        //    base.Start();

        //    StartNewCoroutine(ref pingEnumerator, PingCoroutine());
        //}

        #endregion

        #region Events Callbacks
        private void On_NETWORK_NetworkStateUpdated(BEHandle <ENetworkState> handle)
        {
            if (handle.Arg1 == ENetworkState.NOT_CONNECTED)
            {
                StopCoroutine(pingEnumerator);
                AveragePing = 0;
            }
            else
            {
                if (pingStartCalculationDelay > 0.0f)
                {
                    StartNewCoroutine(ref pingDelayedStartEnumerator, PingDelayedStartCortouine());
                }
                else
                {
                    StartNewCoroutine(ref pingEnumerator, PingCoroutine());
                }
            }
        }
Example #20
0
        private void On_PLAYERS_PlayerSpawned(BEHandle <EPlayerID, IPlayer> bHandle)
        {
            // Add an AIPlayerController on the spawned player if he's an AI
            EPlayerID     playerID     = bHandle.Arg1;
            EControllerID controllerID = PlayerManager.Instance.GetAssignedControllerID(playerID);

            if ((controllerID.ContainedIn(BConsts.AI_CONTROLLERS)) &&
                (IS_KEY_CONTAINED(PlayerManager.Instance.ActivePlayers, playerID)) &&
                (IS_NOT_NULL(PlayerManager.Instance.ActivePlayers[playerID])))
            {
                AbstractPlayer             player             = PlayerManager.Instance.ActivePlayers[playerID];
                AbstractAIPlayerController aIPlayerController = player.gameObject.AddComponent <AbstractAIPlayerController>();
                aIPlayerController.AxisUpdated      += On_AIPlayerController_JoystickMoved;
                aIPlayerController.ButtonPressed    += On_AIPlayerController_ButtonPressed;
                aIPlayerController.ButtonReleased   += On_AIPlayerController_ButtonReleased;
                aIPlayerController.WillGetDestroyed += On_AIPlayerController_WillGetDestroyed;
                aIPlayerController.InitializeAIController(this);
                activeAIControllers.Add(aIPlayerController);
            }
        }
Example #21
0
        private void On_DZ_DroneBallSpawned(BEHandle <BAnchorInformation> handle)
        {
            if (BEventManager.Instance.LocalNetworkID != handle.InvokingNetworkID &&
                IS_NOT_NULL(ballDronePrefab))
            {
                // Destroy exsiting Ball Drone
                BallDroneBAnchor existingBallDrone = FindObjectOfType <BallDroneBAnchor>();
                if (existingBallDrone)
                {
                    Destroy(existingBallDrone.gameObject);
                }

                // Spawn new
                BAnchorInformation bAnchorInformation = handle.Arg1;
                BallDroneBAnchor   ballDrone          = Instantiate(ballDronePrefab);
                ballDrone.Owner = handle.InvokingNetworkID;
                ballDrone.SetTransformedPosition(bAnchorInformation.TransformedPosition);
                ballDrone.SetTransformedRotation(bAnchorInformation.TransformedRotation);
            }
        }
Example #22
0
        private void On_INPUT_ButtonPressed(BEHandle <EControllerID, EInputButton> eventHandle)
        {
            EInputButton inputButton = eventHandle.Arg2;

            if (CurrentBButtonHighlighted)
            {
                BButton nextButton = null;
                switch (inputButton)
                {
                case EInputButton.CONFIRM:
                    CurrentBButtonHighlighted.OnPressed();
                    canPressButton = true;
                    break;

                case EInputButton.LEFT:
                    nextButton = CurrentBButtonHighlighted.GetNextButton(EButtonDirection.LEFT);
                    break;

                case EInputButton.RIGHT:
                    nextButton = CurrentBButtonHighlighted.GetNextButton(EButtonDirection.RIGHT);
                    break;

                case EInputButton.UP:
                    nextButton = CurrentBButtonHighlighted.GetNextButton(EButtonDirection.UP);
                    break;

                case EInputButton.DOWN:
                    nextButton = CurrentBButtonHighlighted.GetNextButton(EButtonDirection.DOWN);
                    break;
                }

                // Update highlighted button
                if (nextButton != null)
                {
                    CurrentBButtonHighlighted.OnUnhighlighted();
                    CurrentBButtonHighlighted = nextButton;
                    nextButton.OnHighlighted();
                    canPressButton = false;
                }
            }
        }
Example #23
0
        private void On_DZ_BallDroneCaught(BEHandle <EPlayerID> handle)
        {
            // TODO : Feels like a hack
            BallDroneBAnchor ballDrone = FindObjectOfType <BallDroneBAnchor>();

            // On not locally owned instances
            if (handle.Arg1 == playerID &&
                ARE_NOT_EQUAL(handle.InvokingNetworkID, BEventManager.Instance.LocalNetworkID) &&
                IS_NOT_NULL(ballDrone))
            {
                caughtBallDrone       = ballDrone;
                caughtBallDrone.Owner = handle.InvokingNetworkID;

                IS_TRUE(caughtBallDrone.OnCatch(playerID));

                if (myRenderer)
                {
                    myRenderer.material.color = Color.red;
                }
            }
        }
Example #24
0
        private void On_BI_SynchFrame(BEHandle <int> handle)
        {
            if (BEventManager.Instance.LocalNetworkID != handle.InvokingNetworkID &&
                videoPlayer &&
                Mathf.Abs(videoPlayer.frame - handle.Arg1) > syncThreshold)
            {
                float transferTime = (PingCalculator.Instance.AveragePing / 2.0f) / 1000.0f;
                int   extraFrames  = (int)(transferTime / currentFrameTime);
                LogConsole("extre frames : " + extraFrames + " = halfPing " + transferTime + " + " + " currentFrameTime " + currentFrameTime);

                videoPlayer.frame = handle.Arg1 + extraFrames;

                lastFrame     = videoPlayer.frame;
                lastFrameTime = Time.time;

                if (videoPlayer.isPlaying == false)
                {
                    videoPlayer.Play();
                }
            }
        }
Example #25
0
        private void On_NETWORK_NetworkIDDisconnected(BEHandle <ENetworkID> handle)
        {
            if (BEventManager.Instance.LocalNetworkID == ENetworkID.HOST)
            {
                EControllerID controllerID = BUtils.GetControllerIDFrom(handle.Arg1);
                if (IS_NOT_NONE(controllerID) &&
                    IS_TRUE(InputManager.Instance.IsControllerConnected(controllerID)) &&
                    IS_KEY_CONTAINED(partyMap, controllerID))
                {
                    EPlayerID playerID = partyMap[controllerID];
                    if (IS_NOT_NONE(playerID))
                    {
                        partyMap.Remove(controllerID);

                        // Disconnect Controller (-> Remove from party)
                        InputManager.Instance.DisconnectController(controllerID);

                        BEventsCollection.NETWORK_PlayerLeft.Invoke(new BEHandle <EPlayerID, EControllerID>(playerID, controllerID), BEventReplicationType.TO_ALL_OTHERS, true);
                    }
                }
            }
        }
Example #26
0
        public bool ConnectController(EControllerID controllerID)
        {
            if (controllerID == EControllerID.NONE)
            {
                LogConsoleError("Trying to connect a controller that is NONE.");
                return(false);
            }
            if (connectedControllers.Contains(controllerID))
            {
                LogConsoleError("Trying to connect a controller that is already connected.");
                return(false);
            }

            connectedControllers.Add(controllerID);

            // Invoke event
            BEHandle <EControllerID> controllerConnected = new BEHandle <EControllerID>(controllerID);

            BEventsCollection.INPUT_ControllerConnected.Invoke(controllerConnected);

            return(true);
        }
Example #27
0
        private void On_AR_BAnchorReplicateTransform(BEHandle <BAnchorInformation, string> handle)
        {
            ENetworkID callingNetworkID = handle.InvokingNetworkID;

            if (bAnchorID == handle.Arg2 &&
                callingNetworkID == bAnchor.Owner &&
                ARE_NOT_EQUAL(callingNetworkID, BEventManager.Instance.LocalNetworkID) &&
                IS_NOT_NULL(bAnchor))
            {
                BAnchorInformation bAnchorInformation = handle.Arg1;
                if (interpolateReplication == false)
                {
                    bAnchor.SetTransformedPosition(bAnchorInformation.TransformedPosition);
                    bAnchor.SetTransformedRotation(bAnchorInformation.TransformedRotation);
                }
                else
                {
                    inverseRepTransformedPosition = ARManager.Instance.GetInverseTransformedPosition(bAnchorInformation.TransformedPosition);
                    inverseRepTransformedRotation = ARManager.Instance.GetInverseTransformedRotation(bAnchorInformation.TransformedRotation);
                }
            }
        }
Example #28
0
        private void On_NETWORK_NetworkStateUpdated(BEHandle <ENetworkState> handle)
        {
            // Connected ?
            if (handle.Arg1 == ENetworkState.CLIENT ||
                handle.Arg1 == ENetworkState.HOST)
            {
                localNetworkID = BEventManager.Instance.LocalNetworkID;

                //EControllerID controllerID = BUtils.GetControllerIDFrom(localNetworkID);

                //if (localNetworkID == ENetworkID.HOST)
                //{
                //    // Connect Controller
                //    InputManager.Instance.ConnectController(controllerID);

                //    // Join Player
                //    localPlayerID = PlayerManager.Instance.OnNextFreePlayerJoinRequest(controllerID); // TODO : Move to OnButtonPressed

                //    if (IS_NOT_NONE(localPlayerID))
                //    {
                //        partyMap.Add(controllerID, localPlayerID);
                //    }
                //}
            }
            else // Disconnected
            {
                // Disconnect all connected net controllers
                foreach (EControllerID controllerID in partyMap.Keys)
                {
                    InputManager.Instance.DisconnectController(controllerID);
                }

                // Reinitialize
                localNetworkID = ENetworkID.NONE;
                //localPlayerID = EPlayerID.NONE;
                partyMap.Clear();
            }
        }
Example #29
0
        private IEnumerator JoinConnectedPlayerCoroutine(BEHandle <ENetworkID> handle, EControllerID newControllerID)
        {
            // Wait a delay
            yield return(new WaitForSeconds(1.0f));

            // Connect Controller
            InputManager.Instance.ConnectController(newControllerID);

            // Join Player
            EPlayerID newPlayerID = PlayerManager.Instance.JoinPlayer(newControllerID); // TODO : Move to OnButtonPressed

            if (IS_NOT_NONE(newPlayerID))
            {
                // Spawn Player
                AbstractNetPlayer newPlayer = (AbstractNetPlayer)PlayerManager.Instance.SpawnPlayer(newPlayerID);
                if (IS_NOT_NULL(newPlayer))
                {
                    newPlayer.SetOwner(handle.Arg1);
                }

                // Update map
                partyMap.Add(newControllerID, newPlayerID);

                // Replicate all connected net controllers to all other clients (Refresh)
                foreach (ENetworkID networkIDitr in BEventManager.Instance.GetConnectedNetworkIDs())
                {
                    if (networkIDitr != localNetworkID) // != Host
                    {
                        foreach (KeyValuePair <EControllerID, EPlayerID> pair in partyMap)
                        {
                            BEventsCollection.NETWORK_PlayerJoined.Invoke(new BEHandle <EPlayerID, EControllerID>(pair.Value, pair.Key), BEventReplicationType.TO_TARGET, true, networkIDitr);
                        }
                    }
                }
            }
        }
Example #30
0
 private void On_DZ_BallDroneReleased(BEHandle <EPlayerID> handle)
 {
     AudioManager.Instance.SpawnSoundObject(ballReleasedSound);
 }