/*--------------------------------------------------------------------------------------------*/ public void UpdateAfterInput() { var isMenuOnLeft = vInteractSettings.IsMenuOnLeftSide; IInputMenu inputMenu = vInput.GetMenu(isMenuOnLeft); IDictionary <HovercastCursorType, CursorType> convertMap = (vInteractSettings.IsMenuOnLeftSide ? vRightCursorConvertMap : vLeftCursorConvertMap); ActiveCursorTypes = vInteractSettings.Cursors .Select(x => convertMap[x]) .ToArray(); vActiveCursorInteractions = FullMenu.GetItems() .Cast <IBaseItemInteractionState>() .ToArray(); ICursorState[] cursors = ActiveCursorTypes .Select(x => vHovercursorSetup.State.GetCursorState(x)) .ToArray(); FullMenu.UpdateAfterInput(inputMenu, cursors); if (isMenuOnLeft != vCurrIsMenuOnLeftSide) { vCurrIsMenuOnLeftSide = isMenuOnLeft; FullMenu.ResetAllItemCursorInteractions(); OnSideChange(); } }
/*--------------------------------------------------------------------------------------------*/ private void TryInitCursor(CursorType pType) { if (vCursorMap.ContainsKey(pType)) { return; } var cursor = new CursorState(Input.GetCursor(pType), VisualSettings.GetSettings(), vBaseTx); vCursorMap.Add(pType, cursor); ActiveCursorTypes = ActiveCursorTypes .Concat(new[] { pType }) .ToArray(); }