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); }
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); } }
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); } } }
// 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); } } } }