public override void Start() { base.Start(); backgroundSprite = "GenericPanel"; // Preview m_preview = AddUIComponent<UITextureSprite>(); m_preview.size = size; m_preview.relativePosition = Vector3.zero; m_noPreview = AddUIComponent<UISprite>(); m_noPreview.spriteName = "Niet"; m_noPreview.relativePosition = new Vector3((width - m_noPreview.spriteInfo.width) / 2, (height - m_noPreview.spriteInfo.height) / 2); m_previewRenderer = gameObject.AddComponent<PreviewRenderer>(); m_previewRenderer.size = m_preview.size * 2; // Twice the size for anti-aliasing eventMouseDown += (c, p) => { eventMouseMove += RotateCamera; }; eventMouseUp += (c, p) => { eventMouseMove -= RotateCamera; }; eventMouseWheel += (c, p) => { m_previewRenderer.zoom -= Mathf.Sign(p.wheelDelta) * 0.25f; RenderPreview(); }; // Name m_buildingName = AddUIComponent<UILabel>(); m_buildingName.textScale = 0.9f; m_buildingName.useDropShadow = true; m_buildingName.dropShadowColor = new Color32(80, 80, 80, 255); m_buildingName.dropShadowOffset = new Vector2(2, -2); m_buildingName.text = "Name"; m_buildingName.isVisible = false; m_buildingName.relativePosition = new Vector3(5, 10); // Category icon m_categoryIcon = AddUIComponent<UISprite>(); m_categoryIcon.size = new Vector2(35, 35); m_categoryIcon.isVisible = false; m_categoryIcon.relativePosition = new Vector3(width - 37, 2); // Level m_level = AddUIComponent<UILabel>(); m_level.textScale = 0.9f; m_level.useDropShadow = true; m_level.dropShadowColor = new Color32(80, 80, 80, 255); m_level.dropShadowOffset = new Vector2(2, -2); m_level.text = "Level"; m_level.isVisible = false; m_level.relativePosition = new Vector3(5, height - 20); // Size m_size = AddUIComponent<UILabel>(); m_size.textScale = 0.9f; m_size.useDropShadow = true; m_size.dropShadowColor = new Color32(80, 80, 80, 255); m_size.dropShadowOffset = new Vector2(2, -2); m_size.text = "Size"; m_size.isVisible = false; m_size.relativePosition = new Vector3(width - 50, height - 20); }
public override void Start() { base.Start(); backgroundSprite = "GenericPanel"; // Preview m_preview = AddUIComponent <UITextureSprite>(); m_preview.size = size; m_preview.relativePosition = Vector3.zero; m_noPreview = AddUIComponent <UISprite>(); m_noPreview.spriteName = "Niet"; m_noPreview.relativePosition = new Vector3((width - m_noPreview.spriteInfo.width) / 2, (height - m_noPreview.spriteInfo.height) / 2); m_previewRenderer = gameObject.AddComponent <PreviewRenderer>(); m_previewRenderer.size = m_preview.size * 2; // Twice the size for anti-aliasing eventMouseDown += (c, p) => { eventMouseMove += RotateCamera; }; eventMouseUp += (c, p) => { eventMouseMove -= RotateCamera; }; eventMouseWheel += (c, p) => { m_previewRenderer.zoom -= Mathf.Sign(p.wheelDelta) * 0.25f; RenderPreview(); }; // Name m_buildingName = AddUIComponent <UILabel>(); m_buildingName.textScale = 0.9f; m_buildingName.useDropShadow = true; m_buildingName.dropShadowColor = new Color32(80, 80, 80, 255); m_buildingName.dropShadowOffset = new Vector2(2, -2); m_buildingName.text = "Name"; m_buildingName.isVisible = false; m_buildingName.relativePosition = new Vector3(5, 10); // Category icon m_categoryIcon = AddUIComponent <UISprite>(); m_categoryIcon.size = new Vector2(35, 35); m_categoryIcon.isVisible = false; m_categoryIcon.relativePosition = new Vector3(width - 37, 2); // Level m_level = AddUIComponent <UILabel>(); m_level.textScale = 0.9f; m_level.useDropShadow = true; m_level.dropShadowColor = new Color32(80, 80, 80, 255); m_level.dropShadowOffset = new Vector2(2, -2); m_level.text = "Level"; m_level.isVisible = false; m_level.relativePosition = new Vector3(5, height - 20); // Size m_size = AddUIComponent <UILabel>(); m_size.textScale = 0.9f; m_size.useDropShadow = true; m_size.dropShadowColor = new Color32(80, 80, 80, 255); m_size.dropShadowOffset = new Vector2(2, -2); m_size.text = "Size"; m_size.isVisible = false; m_size.relativePosition = new Vector3(width - 50, height - 20); }
private void SetupControls() { // Title Bar m_title = AddUIComponent<UITitleBar>(); m_title.title = "Theme Manager"; m_title.iconSprite = "ToolbarIconZoomOutCity"; // Filter m_filter = AddUIComponent<UIBuildingFilter>(); m_filter.width = width - SPACING * 2; m_filter.height = 70; m_filter.relativePosition = new Vector3(SPACING, TITLE_HEIGHT); m_filter.eventFilteringChanged += (c, i) => { if (m_themeSelection != null && m_themeSelection.selectedIndex != -1) { m_buildingSelection.selectedIndex = -1; m_buildingSelection.rowsData = Filter(m_themes[m_themeSelection.selectedIndex]); } }; // Panels UIPanel left = AddUIComponent<UIPanel>(); left.width = LEFT_WIDTH; left.height = HEIGHT - m_filter.height; left.relativePosition = new Vector3(SPACING, TITLE_HEIGHT + m_filter.height + SPACING); UIPanel middle = AddUIComponent<UIPanel>(); middle.width = MIDDLE_WIDTH; middle.height = HEIGHT - m_filter.height; middle.relativePosition = new Vector3(LEFT_WIDTH + SPACING * 2, TITLE_HEIGHT + m_filter.height + SPACING); UIPanel right = AddUIComponent<UIPanel>(); right.width = RIGHT_WIDTH; right.height = HEIGHT - m_filter.height; right.relativePosition = new Vector3(LEFT_WIDTH + MIDDLE_WIDTH + SPACING * 3, TITLE_HEIGHT + m_filter.height + SPACING); // Theme selection m_themeSelection = UIFastList.Create<UIThemeItem>(left); m_themeSelection.backgroundSprite = "UnlockingPanel"; m_themeSelection.width = left.width; m_themeSelection.height = left.height - 40; m_themeSelection.canSelect = true; m_themeSelection.rowHeight = 40; m_themeSelection.autoHideScrollbar = true; m_themeSelection.relativePosition = Vector3.zero; m_themeSelection.rowsData.m_buffer = m_allThemes; m_themeSelection.rowsData.m_size = m_allThemes.Length; m_themeSelection.DisplayAt(0); m_themeSelection.eventSelectedIndexChanged += (c, i) => { if (i == -1) return; int listCount = m_buildingSelection.rowsData.m_size; float pos = m_buildingSelection.listPosition; m_buildingSelection.selectedIndex = -1; m_buildingSelection.rowsData = Filter(m_themes[i]); if (m_filter.buildingStatus == UIBuildingFilter.Status.All && m_buildingSelection.rowsData.m_size == listCount) { m_buildingSelection.DisplayAt(pos); } m_themeRemove.isEnabled = !((Configuration.Theme)m_themeSelection.selectedItem).isBuiltIn; }; // Add theme m_themeAdd = UIUtils.CreateButton(left); m_themeAdd.width = (LEFT_WIDTH - SPACING) / 2; m_themeAdd.text = "New Theme"; m_themeAdd.relativePosition = new Vector3(0, m_themeSelection.height + SPACING); m_themeAdd.eventClick += (c, p) => { UIView.PushModal(UINewThemeModal.instance); UINewThemeModal.instance.Show(true); }; // Remove theme m_themeRemove = UIUtils.CreateButton(left); m_themeRemove.width = (LEFT_WIDTH - SPACING) / 2; m_themeRemove.text = "Delete Theme"; m_themeRemove.isEnabled = false; m_themeRemove.relativePosition = new Vector3(LEFT_WIDTH - m_themeRemove.width, m_themeSelection.height + SPACING); m_themeRemove.eventClick += (c, p) => { ConfirmPanel.ShowModal("Delete Theme", "Are you sure you want to delete '" + selectedTheme.name + "' theme ?", (d, i) => { if (i == 1) DeleteTheme(selectedTheme); }); }; // Building selection m_buildingSelection = UIFastList.Create<UIBuildingItem>(middle); m_buildingSelection.backgroundSprite = "UnlockingPanel"; m_buildingSelection.width = middle.width; m_buildingSelection.height = middle.height - 40; m_buildingSelection.canSelect = true; m_buildingSelection.rowHeight = 40; m_buildingSelection.autoHideScrollbar = true; m_buildingSelection.relativePosition = Vector3.zero; m_buildingSelection.rowsData = new FastList<object>(); BuildingItem selectedItem = null; m_buildingSelection.eventSelectedIndexChanged += (c, i) => { selectedItem = m_buildingSelection.selectedItem as BuildingItem; }; m_buildingSelection.eventMouseLeave += (c, p) => { if (selectedItem != null) UpdateBuildingInfo(selectedItem); else UpdateBuildingInfo(null); }; // Include buttons m_includeNone = UIUtils.CreateButton(middle); m_includeNone.width = 55; m_includeNone.text = "None"; m_includeNone.relativePosition = new Vector3(MIDDLE_WIDTH - m_includeNone.width, m_buildingSelection.height + SPACING); m_includeAll = UIUtils.CreateButton(middle); m_includeAll.width = 55; m_includeAll.text = "All"; m_includeAll.relativePosition = new Vector3(m_includeNone.relativePosition.x - m_includeAll.width - SPACING, m_buildingSelection.height + SPACING); UILabel include = middle.AddUIComponent<UILabel>(); include.width = 100; include.padding = new RectOffset(0, 0, 8, 0); include.textScale = 0.8f; include.text = "Include:"; include.relativePosition = new Vector3(m_includeAll.relativePosition.x - include.width - SPACING, m_buildingSelection.height + SPACING); m_includeAll.eventClick += (c, p) => { for (int i = 0; i < m_buildingSelection.rowsData.m_size; i++) { BuildingItem item = m_buildingSelection.rowsData[i] as BuildingItem; if (item != null) ChangeBuildingStatus(item, true); } m_buildingSelection.Refresh(); }; m_includeNone.eventClick += (c, p) => { for (int i = 0; i < m_buildingSelection.rowsData.m_size; i++) { BuildingItem item = m_buildingSelection.rowsData[i] as BuildingItem; if (item != null) ChangeBuildingStatus(item, false); } m_buildingSelection.Refresh(); }; // Preview UIPanel previewPanel = right.AddUIComponent<UIPanel>(); previewPanel.backgroundSprite = "GenericPanel"; previewPanel.width = right.width; previewPanel.height = (right.height - SPACING * 2) / 2; previewPanel.relativePosition = Vector3.zero; m_preview = previewPanel.AddUIComponent<UITextureSprite>(); m_preview.size = previewPanel.size; m_preview.relativePosition = Vector3.zero; m_noPreview = previewPanel.AddUIComponent<UISprite>(); m_noPreview.spriteName = "Niet"; m_noPreview.relativePosition = new Vector3((previewPanel.width - m_noPreview.spriteInfo.width) / 2, (previewPanel.height - m_noPreview.spriteInfo.height) / 2); m_previewRenderer = gameObject.AddComponent<PreviewRenderer>(); m_previewRenderer.size = m_preview.size * 2; // Twice the size for anti-aliasing previewPanel.eventMouseDown += (c, p) => { eventMouseMove += RotateCamera; }; previewPanel.eventMouseUp += (c, p) => { eventMouseMove -= RotateCamera; }; previewPanel.eventMouseWheel += (c, p) => { m_previewRenderer.zoom -= Mathf.Sign(p.wheelDelta) * 0.25f; RenderPreview(); }; // Building Options m_buildingOptions = right.AddUIComponent<UIBuildingInfo>(); m_buildingOptions.width = RIGHT_WIDTH; m_buildingOptions.height = (right.height - SPACING * 2) / 2; m_buildingOptions.relativePosition = new Vector3(0, previewPanel.height + SPACING); }