//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(IHoverboardPanelState pPanelState, LayoutState pLayoutState, IItemVisualSettingsProvider pItemVisualSettProv) { Vector2 dir = pLayoutState.ItemLayout.Direction; Vector2 pos = Vector2.zero; Vector2 posMin = Vector2.zero; Vector2 posMax = Vector2.zero; for (int i = 0; i < pLayoutState.FullItems.Length; i++) { BaseItemState itemState = pLayoutState.FullItems[i]; IItemVisualSettings visualSett = pItemVisualSettProv.GetSettings(itemState.Item); GameObject itemObj = (GameObject)itemState.Item.DisplayContainer; UiItem uiItem = itemObj.AddComponent <UiItem>(); uiItem.Build(pPanelState, pLayoutState, itemState, visualSett); uiItem.transform.localPosition = new Vector3(pos.x, 0, pos.y) * UiItem.Size; var itemSize = new Vector2(itemState.Item.Width, itemState.Item.Height); posMin = Vector2.Min(posMin, pos); posMax = Vector2.Max(posMax, pos + itemSize); pos += Vector2.Scale(itemSize, dir); } Vector2 size = posMax - posMin; Bounds = new Rect(posMin.x, posMin.y, size.x, size.y); gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; gameObject.transform.localScale = Vector3.one; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(MenuState pMenuState, IItemVisualSettingsProvider pVisualSettingsProv) { vMenuState = pMenuState; vItemObjList = new List <GameObject>(); ReadOnlyCollection <BaseItemState> itemStates = vMenuState.GetItems(); int itemCount = itemStates.Count; float degree = 170 + DegreeFull / 2f; float sizeSum = 0; for (int i = 0; i < itemCount; i++) { sizeSum += itemStates[i].Item.Height; } for (int i = 0; i < itemCount; i++) { BaseItemState itemState = itemStates[i]; float itemPerc = itemState.Item.Height / sizeSum; float itemAngle = AngleFull * itemPerc; float itemDegHalf = itemAngle * ToDegrees / 2f; IItemVisualSettings visualSett = pVisualSettingsProv.GetSettings(itemState.Item); var itemObj = new GameObject("Item" + vItemObjList.Count); itemObj.transform.SetParent(gameObject.transform, false); vItemObjList.Add(itemObj); UiItem uiItem = itemObj.AddComponent <UiItem>(); uiItem.Build(vMenuState, itemState, itemAngle, visualSett); degree -= itemDegHalf; itemObj.transform.localRotation = Quaternion.AngleAxis(degree, Vector3.up); degree -= itemDegHalf; } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(MenuState pMenu, IItemVisualSettingsProvider pVisualSettingsProv) { vMenuState = pMenu; vVisualSettingsProv = pVisualSettingsProv; vMenuState.OnLevelChange += HandleLevelChange; UpdateAfterSideChange(); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(MenuState pMenuState, IItemVisualSettingsProvider pVisualSettingsProv) { vMenuState = pMenuState; vItemObjList = new List<GameObject>(); ReadOnlyCollection<BaseItemState> itemStates = vMenuState.GetItems(); int itemCount = itemStates.Count; float degree = 170 + DegreeFull/2f; float sizeSum = 0; for ( int i = 0 ; i < itemCount ; i++ ) { sizeSum += itemStates[i].Item.Height; } for ( int i = 0 ; i < itemCount ; i++ ) { BaseItemState itemState = itemStates[i]; float itemPerc = itemState.Item.Height/sizeSum; float itemAngle = AngleFull*itemPerc; float itemDegHalf = itemAngle*ToDegrees/2f; IItemVisualSettings visualSett = pVisualSettingsProv.GetSettings(itemState.Item); var itemObj = new GameObject("Item"+vItemObjList.Count); itemObj.transform.SetParent(gameObject.transform, false); vItemObjList.Add(itemObj); UiItem uiItem = itemObj.AddComponent<UiItem>(); uiItem.Build(vMenuState, itemState, itemAngle, visualSett); degree -= itemDegHalf; itemObj.transform.localRotation = Quaternion.AngleAxis(degree, Vector3.up); degree -= itemDegHalf; } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(IHoverboardPanelState pPanelState, LayoutState pLayoutState, IItemVisualSettingsProvider pItemVisualSettProv) { Vector2 dir = pLayoutState.ItemLayout.Direction; Vector2 pos = Vector2.zero; Vector2 posMin = Vector2.zero; Vector2 posMax = Vector2.zero; for ( int i = 0 ; i < pLayoutState.FullItems.Length ; i++ ) { BaseItemState itemState = pLayoutState.FullItems[i]; IItemVisualSettings visualSett = pItemVisualSettProv.GetSettings(itemState.Item); GameObject itemObj = (GameObject)itemState.Item.DisplayContainer; UiItem uiItem = itemObj.AddComponent<UiItem>(); uiItem.Build(pPanelState, pLayoutState, itemState, visualSett); uiItem.transform.localPosition = new Vector3(pos.x, 0, pos.y)*UiItem.Size; var itemSize = new Vector2(itemState.Item.Width, itemState.Item.Height); posMin = Vector2.Min(posMin, pos); posMax = Vector2.Max(posMax, pos+itemSize); pos += Vector2.Scale(itemSize, dir); } Vector2 size = posMax-posMin; Bounds = new Rect(posMin.x, posMin.y, size.x, size.y); gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; gameObject.transform.localScale = Vector3.one; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(MenuState pMenu, IItemVisualSettingsProvider pVisualSettingsProv) { vMenuState = pMenu; vVisualSettingsProv = pVisualSettingsProv; vMenuState.OnLevelChange += HandleLevelChange; UpdateAfterSideChange(); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(MenuState pMenu, IItemVisualSettingsProvider pVisualSettingsProv) { vMenuState = pMenu; vVisualSettingsProv = pVisualSettingsProv; vRendererHold = new GameObject("RendererHold"); vRendererHold.transform.SetParent(gameObject.transform, false); vRendererHold.transform.localRotation = Quaternion.AngleAxis(170, Vector3.up); vMenuState.OnLevelChange += HandleLevelChange; Rebuild(); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(PanelState pPanelState, IItemVisualSettingsProvider pItemVisualSettProv) { vGridStates = pPanelState.Grids; foreach (GridState gridState in vGridStates) { IItemGrid itemGrid = gridState.ItemGrid; var pos = new Vector3(itemGrid.ColOffset, 0, itemGrid.RowOffset); GameObject gridObj = (GameObject)itemGrid.DisplayContainer; UiGrid uiGrid = gridObj.AddComponent <UiGrid>(); uiGrid.Build(gridState, pItemVisualSettProv); uiGrid.transform.localPosition = pos * UiItem.Size; } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(PanelState pPanelState, IItemVisualSettingsProvider pItemVisualSettProv) { vLayoutStates = pPanelState.FullLayouts; foreach ( LayoutState layoutState in vLayoutStates ) { IItemLayout itemLayout = layoutState.ItemLayout; GameObject layoutObj = (GameObject)itemLayout.DisplayContainer; UiLayout uiLayout = layoutObj.AddComponent<UiLayout>(); uiLayout.Build(pPanelState, layoutState, pItemVisualSettProv); Vector2 pos = itemLayout.Position*UiItem.Size - uiLayout.Bounds.position - Vector2.Scale(itemLayout.Anchor, uiLayout.Bounds.size); uiLayout.transform.localPosition = new Vector3(pos.x, 0, pos.y); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(PanelState pPanelState, IItemVisualSettingsProvider pItemVisualSettProv) { vLayoutStates = pPanelState.FullLayouts; foreach (LayoutState layoutState in vLayoutStates) { IItemLayout itemLayout = layoutState.ItemLayout; GameObject layoutObj = (GameObject)itemLayout.DisplayContainer; UiLayout uiLayout = layoutObj.AddComponent <UiLayout>(); uiLayout.Build(pPanelState, layoutState, pItemVisualSettProv); Vector2 pos = itemLayout.Position * UiItem.Size - uiLayout.Bounds.position - Vector2.Scale(itemLayout.Anchor, uiLayout.Bounds.size); uiLayout.transform.localPosition = new Vector3(pos.x, 0, pos.y); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(HovercastState pState, IItemVisualSettingsProvider pItemVisualSettingsProv){ vState = pState; vLeftRot = Quaternion.identity; vRightRot = Quaternion.AngleAxis(180, Vector3.up); var palmObj = new GameObject("Palm"); palmObj.transform.SetParent(gameObject.transform, false); vUiPalm = palmObj.AddComponent<UiPalm>(); vUiPalm.Build(vState.FullMenu, pItemVisualSettingsProv); var arcObj = new GameObject("Arc"); arcObj.transform.SetParent(gameObject.transform, false); vUiArc = arcObj.AddComponent<UiArc>(); vUiArc.Build(vState.FullMenu, pItemVisualSettingsProv); vState.OnSideChange += HandleSideChange; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(HovercastState pState, IItemVisualSettingsProvider pItemVisualSettingsProv) { vState = pState; vLeftRot = Quaternion.AngleAxis(180, Vector3.up); vRightRot = Quaternion.identity; var palmObj = new GameObject("Palm"); palmObj.transform.SetParent(gameObject.transform, false); vUiPalm = palmObj.AddComponent <UiPalm>(); vUiPalm.Build(vState.FullMenu, pItemVisualSettingsProv); var arcObj = new GameObject("Arc"); arcObj.transform.SetParent(gameObject.transform, false); vUiArc = arcObj.AddComponent <UiArc>(); vUiArc.Build(vState.FullMenu, pItemVisualSettingsProv); vState.OnSideChange += HandleSideChange; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(GridState pGridState, IItemVisualSettingsProvider pItemVisualSettProv) { int cols = pGridState.ItemGrid.Cols; int gi = 0; for (int i = 0; i < pGridState.Items.Length; i++) { BaseItemState itemState = pGridState.Items[i]; IItemVisualSettings visualSett = pItemVisualSettProv.GetSettings(itemState.Item); GameObject itemObj = (GameObject)itemState.Item.DisplayContainer; var pos = new Vector3(gi % cols, 0, (float)Math.Floor((float)gi / cols)); UiItem uiItem = itemObj.AddComponent <UiItem>(); uiItem.Build(itemState, visualSett); uiItem.transform.localPosition = pos * UiItem.Size; gi += (int)itemState.Item.Width; } gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; gameObject.transform.localScale = Vector3.one; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(MenuState pMenu, IItemVisualSettingsProvider pVisualSettingsProv) { vMenuState = pMenu; vVisualSettingsProv = pVisualSettingsProv; vRendererHold = new GameObject("RendererHold"); vRendererHold.transform.SetParent(gameObject.transform, false); vRendererHold.transform.localRotation = Quaternion.AngleAxis(170, Vector3.up); //// BaseItemState itemState = pMenu.GetPalmItem(); IItemVisualSettings visualSett = pVisualSettingsProv.GetSettings(itemState.Item); var itemObj = new GameObject("BackItem"); itemObj.transform.SetParent(vRendererHold.transform, false); UiItem uiItem = itemObj.AddComponent<UiItem>(); uiItem.Build(vMenuState, itemState, (float)Math.PI*2, visualSett); //// vMenuState.OnLevelChange += HandleLevelChange; Rebuild(); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(PanelState pPanelState, IItemVisualSettingsProvider pItemVisualSettProv) { vLayoutStates = pPanelState.FullLayouts; foreach ( LayoutState layoutState in vLayoutStates ) { IItemLayout itemLayout = layoutState.ItemLayout; GameObject layoutObj = (GameObject)itemLayout.DisplayContainer; UiLayout uiLayout = layoutObj.AddComponent<UiLayout>(); uiLayout.Build(pPanelState, layoutState, pItemVisualSettProv); Vector2 pos = itemLayout.Position*UiItem.Size - uiLayout.Bounds.position - Vector2.Scale(itemLayout.Anchor, uiLayout.Bounds.size); if (layoutState.FullItems.Length > 0) { BaseItemState itemState = layoutState.FullItems[0]; IItemVisualSettings visualSett = pItemVisualSettProv.GetSettings(itemState.Item); ItemVisualSettingsStandard vSettings = (ItemVisualSettingsStandard)visualSett; Debug. Log("old pos=" + pos); pos.Scale(new Vector2(vSettings.ExpandSize, vSettings.ExpandSize)); Debug. Log("new pos=" + pos); } uiLayout.transform.localPosition = new Vector3(pos.x, 0, pos.y); } }