//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public HovercastState(IItemHierarchy pItemHierarchy, HovercursorSetup pHovercusorSetup, InteractionSettings pInterSett, IInput pInput, Transform pBaseTx) { vInteractSettings = pInterSett; vHovercursorSetup = pHovercusorSetup; vInput = pInput; BaseTransform = pBaseTx; FullMenu = new MenuState(pItemHierarchy, vInteractSettings); ActiveCursorTypes = new CursorType[0]; vCursorMap = new Dictionary <CursorType, ICursorState>(); vLeftCursorConvertMap = new Dictionary <HovercastCursorType, CursorType> { { HovercastCursorType.Palm, CursorType.LeftPalm }, { HovercastCursorType.Thumb, CursorType.LeftThumb }, { HovercastCursorType.Index, CursorType.LeftIndex }, { HovercastCursorType.Middle, CursorType.LeftMiddle }, { HovercastCursorType.Ring, CursorType.LeftRing }, { HovercastCursorType.Pinky, CursorType.LeftPinky }, { HovercastCursorType.Look, CursorType.Look } }; vRightCursorConvertMap = new Dictionary <HovercastCursorType, CursorType> { { HovercastCursorType.Palm, CursorType.RightPalm }, { HovercastCursorType.Thumb, CursorType.RightThumb }, { HovercastCursorType.Index, CursorType.RightIndex }, { HovercastCursorType.Middle, CursorType.RightMiddle }, { HovercastCursorType.Ring, CursorType.RightRing }, { HovercastCursorType.Pinky, CursorType.RightPinky }, { HovercastCursorType.Look, CursorType.Look } }; OnSideChange += (() => {}); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void Awake() { vSetup = gameObject.GetComponent <HovercursorSetup>(); vFakeItem = new FakeItemState(); vFakeItem.ItemAutoId = 123; ActiveCursorTypes = new CursorType[0]; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void Awake() { vSetup = gameObject.GetComponent <HovercursorSetup>(); vFakeItem = new FakeItemState(); vFakeItem.ItemAutoId = 123; vActiveCursorTypes = new ReadList <CursorType>(); ActiveCursorTypes = vActiveCursorTypes.ReadOnly; vFakeInteractions = new ReadOnlyCollection <IBaseItemInteractionState>( new List <IBaseItemInteractionState>()); vFakePlanes = new ReadOnlyCollection <PlaneData>(new List <PlaneData>()); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public HoverboardState(ItemPanel[] pItemPanels, HovercursorSetup pHovercusorSetup, InteractionSettings pInterSett, Transform pBaseTx) { vInteractSett = pInterSett; vHovercusorSetup = pHovercusorSetup; vBaseTx = pBaseTx; vProjectionMap = new ListMap <CursorType, ProjectionState>(EnumIntKeyComparer.CursorType); //// var panels = new List <PanelState>(); var allItems = new List <ItemTree>(); foreach (ItemPanel itemPanel in pItemPanels) { var panel = new PanelState(itemPanel, vInteractSett); panel.InteractionPlane = new PlaneData("Hoverboard.Panel-" + panels.Count, ((GameObject)panel.ItemPanel.DisplayContainer).transform, Vector3.up); panels.Add(panel); foreach (LayoutState layout in panel.FullLayouts) { layout.ItemLayout.SetRadioSiblingsFunc(GetRadioSiblings); foreach (BaseItemState item in layout.FullItems) { var tree = new ItemTree { Panel = panel, Layout = layout, Item = item }; allItems.Add(tree); } } } vAllItems = allItems.ToArray(); vActiveItems = new List <ItemTree>(); vActiveCursorInteractions = new ReadList <IBaseItemInteractionState>(); vActiveCursorPlanes = new ReadList <PlaneData>(); FullPanels = panels.ToArray(); Panels = new ReadOnlyCollection <IHoverboardPanelState>(FullPanels); ActiveCursorTypes = new ReadOnlyCollection <CursorType>(vInteractSett.Cursors); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void Awake() { ItemHierarchy = UnityUtil.FindComponentOrFail(ItemHierarchy, Domain); Hovercursor = UnityUtil.FindComponentOrFail(Hovercursor, Domain); DefaultItemVisualSettings = UnityUtil.CreateComponent <HovercastItemVisualSettings, HovercastItemVisualSettingsStandard>(DefaultItemVisualSettings, gameObject, Domain); DefaultItemVisualSettings.IsDefaultSettingsComponent = true; InteractionSettings = UnityUtil.FindComponentOrCreate <HovercastInteractionSettings, HovercastInteractionSettings>(InteractionSettings, gameObject, Domain); Input = UnityUtil.FindComponentOrFail(Input, Domain); vState = new HovercastState(ItemHierarchy.GetRoot(), Hovercursor, InteractionSettings.GetSettings(), Input, gameObject.transform); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void Awake() { Panels = UnityUtil.FindComponentsOrFail(Panels, Domain); Hovercursor = UnityUtil.FindComponentOrFail(Hovercursor, Domain); DefaultItemVisualSettings = UnityUtil.CreateComponent <HoverboardItemVisualSettings, HoverboardItemVisualSettingsStandard>(DefaultItemVisualSettings, gameObject, Domain); DefaultItemVisualSettings.IsDefaultSettingsComponent = true; ProjectionVisualSettings = UnityUtil.FindComponentOrCreate < HoverboardProjectionVisualSettings, HoverboardProjectionVisualSettingsStandard>( ProjectionVisualSettings, gameObject, Domain); InteractionSettings = UnityUtil.FindComponentOrCreate <HoverboardInteractionSettings, HoverboardInteractionSettings>(InteractionSettings, gameObject, Domain); vState = new HoverboardState(Panels.Select(x => x.GetPanel()).ToArray(), Hovercursor, InteractionSettings.GetSettings(), gameObject.transform); vPrevActiveCursorTypes = new CursorType[0]; vProjMap = new Dictionary <CursorType, UiProjection>(); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public HoverboardState(ItemPanel[] pItemPanels, HovercursorSetup pHovercusorSetup, InteractionSettings pInterSett, Transform pBaseTx) { vInteractSett = pInterSett; vHovercusorSetup = pHovercusorSetup; vBaseTx = pBaseTx; vProjectionMap = new Dictionary <CursorType, ProjectionState>(); //// var panels = new List <PanelState>(); var allItems = new List <ItemTree>(); foreach (ItemPanel itemPanel in pItemPanels) { var panel = new PanelState(itemPanel, vInteractSett); panel.InteractionPlane = new PlaneData("Hoverboard.Panel-" + panels.Count, ((GameObject)panel.ItemPanel.DisplayContainer).transform, Vector3.up); panels.Add(panel); foreach (GridState grid in panel.Grids) { foreach (BaseItemState item in grid.Items) { var tree = new ItemTree { Panel = panel, Grid = grid, Item = item }; allItems.Add(tree); } } } Panels = panels.ToArray(); vAllItems = allItems.ToArray(); ActiveCursorTypes = new CursorType[0]; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public HovercastState(IItemHierarchy pItemHierarchy, HovercursorSetup pHovercusorSetup, InteractionSettings pInterSett, IInput pInput, Transform pBaseTx) { vInteractSettings = pInterSett; vHovercursorSetup = pHovercusorSetup; vInput = pInput; BaseTransform = pBaseTx; FullMenu = new MenuState(pItemHierarchy, vInteractSettings); vActiveCursorInteractions = new ReadList<IBaseItemInteractionState>(); vMenuPlanes = new ReadList<PlaneData>(); vActiveCursorTypes = new ReadList<CursorType>(); ActiveCursorTypes = vActiveCursorTypes.ReadOnly; vLeftCursorConvertMap = new Dictionary<HovercastCursorType, CursorType>(HovercastCursorTypeComparer); vLeftCursorConvertMap.Add(HovercastCursorType.Palm, CursorType.LeftPalm); vLeftCursorConvertMap.Add(HovercastCursorType.Thumb, CursorType.LeftThumb); vLeftCursorConvertMap.Add(HovercastCursorType.Index, CursorType.LeftIndex); vLeftCursorConvertMap.Add(HovercastCursorType.Middle, CursorType.LeftMiddle); vLeftCursorConvertMap.Add(HovercastCursorType.Ring, CursorType.LeftRing); vLeftCursorConvertMap.Add(HovercastCursorType.Pinky, CursorType.LeftPinky); vLeftCursorConvertMap.Add(HovercastCursorType.Look, CursorType.Look); vRightCursorConvertMap = new Dictionary<HovercastCursorType, CursorType>(HovercastCursorTypeComparer); vRightCursorConvertMap.Add(HovercastCursorType.Palm, CursorType.RightPalm); vRightCursorConvertMap.Add(HovercastCursorType.Thumb, CursorType.RightThumb); vRightCursorConvertMap.Add(HovercastCursorType.Index, CursorType.RightIndex); vRightCursorConvertMap.Add(HovercastCursorType.Middle, CursorType.RightMiddle); vRightCursorConvertMap.Add(HovercastCursorType.Ring, CursorType.RightRing); vRightCursorConvertMap.Add(HovercastCursorType.Pinky, CursorType.RightPinky); vRightCursorConvertMap.Add(HovercastCursorType.Look, CursorType.Look); OnSideChange += (() => {}); }