Beispiel #1
0
        void ToggleCurrentColorAsOperative(SteamVR_TrackedController sender)
        {
            if (SelectorManager.Instance.CurrentControlMode != SelectorManager.ControlMode.SelectionMode)
            {
                return;
            }

            SelectorManager sm = SelectorManager.Instance;

            if (sm.operatingColors.Contains(sm.CurrentColor))
            {
                sm.operatingColors.Remove(sm.CurrentColor);

                Logger.Instance?.LogEvent("CHOPCOL,-" + Logger.colorString[(int)sm.CurrentColor]);
                SteamVR_ControllerManager.LeftController.Vibrate();
                StartCoroutine(SteamVR_ControllerManager.LeftController.VibrateAfter(0.1f));
            }
            else
            {
                sm.operatingColors.Add(sm.CurrentColor);

                Logger.Instance?.LogEvent("CHOPCOL,+" + Logger.colorString[(int)sm.CurrentColor]);
                SteamVR_ControllerManager.LeftController.Vibrate();
            }

            SetFullOrEmptySprites(sender);
        }
Beispiel #2
0
        void SetFullOrEmptySprites(SteamVR_TrackedController sender)
        {
            SelectorManager sm = SelectorManager.Instance;

            if (sm.InverseMode)
            {
                creationPad.SetActive(false);
                creationReset.SetActive(true);
                return;
            }
            else
            {
                creationPad.SetActive(true);
                creationReset.SetActive(false);
            }
        }
Beispiel #3
0
        void SetFullOrEmptySprites(SteamVR_TrackedController sender)
        {
            if (SelectorManager.Instance.CurrentControlMode != SelectorManager.ControlMode.SelectionMode)
            {
                return;
            }

            SelectorManager sm = SelectorManager.Instance;

            if (sm.InverseMode)
            {
                invert.SetActive(true);
                resetPullup.GetComponent <Image>().SetSprite(hardReset);
                return;
            }
            else
            {
                invert.SetActive(false);
                resetPullup.GetComponent <Image>().SetSprite(reset);
            }

            if (sm.operationMode == SelectorManager.LogicMode.OR)
            {
                centerpiece.GetComponent <Image>().SetSprite(orSign);
            }
            else
            {
                centerpiece.GetComponent <Image>().SetSprite(andSign);
            }

            Image[] squareImages = squares.GetComponentsInChildren <Image>(false);
            for (int i = 0; i < System.Math.Min(SelectorManager.colors.Length, squareImages.Length); i++)
            {
                if (sm.operatingColors.Contains((SelectorManager.ColorGroup)i))
                {
                    squareImages[i].SetSprite(fullSquare);
                }
                else
                {
                    squareImages[i].SetSprite(emptySquare);
                }
            }
        }
Beispiel #4
0
        // Update is called once per frame
        void Update()
        {
            SelectorManager sm = SelectorManager.Instance;
            Selector        hs = sm.handSelectors[(int)sm.CurrentColor];

            if (hs != null && hs.isActiveAndEnabled)
            {
                foreach (SelectorPart p in hs.GetComponents <SelectorPart>())
                {
                    if (!sm.InverseMode)  //this works only if there is one primitive per selector
                    {
                        creationPad.SetActive(true);
                    }
                    else
                    {
                        creationPad.SetActive(false);
                    }
                }
            }
        }