protected override void Setup() { // Load native texture nativeTexture = DaggerfallUI.GetTextureFromImg(nativeImgName); if (!nativeTexture) throw new Exception("CreateCharReflexSelect: Could not load native texture."); // Setup native panel background NativePanel.BackgroundTexture = nativeTexture; // Setup info panel Panel infoPanel = new Panel(); DaggerfallUI.Instance.SetDaggerfallPopupStyle(DaggerfallUI.PopupStyle.Parchment, infoPanel); NativePanel.Components.Add(infoPanel); infoPanel.HorizontalAlignment = HorizontalAlignment.Center; infoPanel.Position = new Vector2(0, 15); // Setup info text MultiFormatTextLabel infoText = new MultiFormatTextLabel(); infoPanel.Components.Add(infoText); infoText.SetText(DaggerfallUnity.Instance.TextProvider.GetRSCTokens(strPlayerReflexesDetermine)); infoText.HorizontalAlignment = HorizontalAlignment.Center; infoText.VerticalAlignment = VerticalAlignment.Middle; infoPanel.Size = infoText.Size; // Setup button picker reflexPicker = new ReflexPicker(); NativePanel.Components.Add(reflexPicker); reflexPicker.Position = new Vector2(127, 148f); // Add "OK" button Button okButton = DaggerfallUI.AddButton(new Rect(263, 172, 39, 22), NativePanel); okButton.OnMouseClick += OkButton_OnMouseClick; }
protected override void Setup() { // Save panel savePanel.HorizontalAlignment = HorizontalAlignment.Center; savePanel.VerticalAlignment = VerticalAlignment.Middle; savePanel.Size = new Vector2(300, 160); DaggerfallUI.Instance.SetDaggerfallPopupStyle(DaggerfallUI.PopupStyle.Parchment, savePanel); NativePanel.Components.Add(savePanel); // Title TextLabel titleLabel = new TextLabel(); titleLabel.HorizontalAlignment = HorizontalAlignment.Center; titleLabel.VerticalAlignment = VerticalAlignment.Top; titleLabel.Text = HardStrings.saveGame; titleLabel.Font = DaggerfallUI.TitleFont; savePanel.Components.Add(titleLabel); // Child panels int top = 16; saveListPanel = DaggerfallUI.AddPanel(new Rect(0, top, 110, savePanel.Size.y - top), savePanel); saveListPanel.HorizontalAlignment = HorizontalAlignment.Left; saveListPanel.BackgroundColor = panelBackgroundColor; detailsPanel = DaggerfallUI.AddPanel(new Rect(110, top, 180, savePanel.Size.y - top), savePanel); detailsPanel.HorizontalAlignment = HorizontalAlignment.Right; detailsPanel.BackgroundColor = panelBackgroundColor; // Outlines DaggerfallUI.AddOutline(new Rect(0, 0, saveListPanel.Size.x, saveListPanel.Size.y), outlineColor, saveListPanel); DaggerfallUI.AddOutline(new Rect(0, 0, detailsPanel.Size.x, detailsPanel.Size.y), outlineColor, detailsPanel); }
public void SetDaggerfallPopupStyle(PopupStyle style, Panel panel) { // Do nothing if DaggerfallUnity path not valid if (!DaggerfallUnity.Instance.IsPathValidated) return; panel.BackgroundTexture = null; panel.BackgroundColor = Color.clear; if (style == PopupStyle.Parchment) { LoadDaggerfallParchmentTextures(); panel.SetBorderTextures( daggerfallParchmentTextures[0], daggerfallParchmentTextures[1], daggerfallParchmentTextures[2], daggerfallParchmentTextures[3], daggerfallParchmentTextures[4], daggerfallParchmentTextures[5], daggerfallParchmentTextures[6], daggerfallParchmentTextures[7], daggerfallParchmentTextures[8], globalFilterMode); } panel.SetMargins(Margins.All, 16); }
public static TextLabel AddTextLabel(PixelFont font, Vector2 position, string text, Panel panel = null, int glyphSpacing = 1) { TextLabel textLabel = new TextLabel(); textLabel.ScalingMode = Scaling.None; textLabel.Font = font; textLabel.Position = position; textLabel.Text = text; if (panel != null) panel.Components.Add(textLabel); return textLabel; }
public static Panel AddPanel(Rect rect, Panel panel = null) { Panel newPanel = new Panel(); newPanel.ScalingMode = Scaling.None; newPanel.Position = new Vector2(rect.x, rect.y); newPanel.Size = new Vector2(rect.width, rect.height); if (panel != null) panel.Components.Add(newPanel); return newPanel; }
public static Outline AddOutline(Rect rect, Color color, Panel panel = null) { Outline outline = new Outline(); outline.ScalingMode = Scaling.None; outline.Color = color; outline.Position = new Vector2(rect.x, rect.y); outline.Size = new Vector2(rect.width, rect.height); if (panel != null) panel.Components.Add(outline); return outline; }
public static TextLabel AddDefaultShadowedTextLabel(Vector2 position, Panel panel = null, int glyphSpacing = 1) { TextLabel textLabel = AddTextLabel(DefaultFont, position, string.Empty, panel, glyphSpacing); textLabel.TextColor = DaggerfallDefaultTextColor; textLabel.ShadowColor = DaggerfallAlternateShadowColor1; textLabel.ShadowPosition = DaggerfallDefaultShadowPos; return textLabel; }
// Animate region identification & location crosshair void AnimateRegionIdentify(Panel atPanel) { if(!atPanel.BackgroundTexture) { StopRegionIdentify(); return; } // Check if enough time has elapsed since last flash and toggle state bool lastIdentifyState = identifyState; float time = Time.realtimeSinceStartup; if (time > identifyLastChangeTime + identifyFlashInterval) { identifyState = !identifyState; identifyLastChangeTime = time; } // Set panel visibility based on state atPanel.Enabled = identifyState; //identifyRegionPanel.Enabled = identifyState; // Turn off flash after specified number of on states if (!lastIdentifyState && identifyState) { if (++identifyChanges > identifyFlashCount) { StopRegionIdentify(); } } }
void SetupAccessoryElements() { // Starting layout Vector2 col0Pos = new Vector2(1, 11); Vector2 col1Pos = new Vector2(24, 11); Vector2 buttonSize = new Vector2(21, 20); int rowOffset = 31; bool col0 = true; // Follow same order as equip slots int minSlot = (int)EquipSlots.Amulet0; int maxSlot = (int)EquipSlots.Crystal1; for (int i = minSlot; i <= maxSlot; i++) { // Current button rect Rect rect; if (col0) rect = new Rect(col0Pos.x, col0Pos.y, buttonSize.x, buttonSize.y); else rect = new Rect(col1Pos.x, col1Pos.y, buttonSize.x, buttonSize.y); // Create item button Button button = DaggerfallUI.AddButton(rect, NativePanel); button.SetMargins(Margins.All, accessoryButtonMarginSize); button.ToolTip = defaultToolTip; button.Tag = i; button.OnMouseClick += AccessoryItemsButton_OnMouseClick; accessoryButtons[i] = button; // Create icon panel Panel panel = new Panel(); panel.AutoSize = AutoSizeModes.ScaleToFit; panel.MaxAutoScale = 1f; panel.HorizontalAlignment = HorizontalAlignment.Center; panel.VerticalAlignment = VerticalAlignment.Middle; button.Components.Add(panel); accessoryIconPanels[i] = panel; // Move to next column, then drop down a row at end of second column if (col0) { col0 = !col0; } else { col0 = !col0; col0Pos.y += rowOffset; col1Pos.y += rowOffset; } } }
public static Button AddButton(Vector2 position, Vector2 size, Panel panel = null) { Button button = new Button(); button.Position = position; button.Size = size; if (panel != null) panel.Components.Add(button); return button; }
public void FadeHUDToBlack(float fadeDuration = 0.5f) { if (dfHUD == null) return; fadeTargetPanel = dfHUD.ParentPanel; fadeStartColor = Color.clear; fadeEndColor = Color.black; this.fadeDuration = fadeDuration; fadeTargetPanel.BackgroundColor = Color.clear; fadeInProgress = true; }
public static Panel AddPanel(Panel panel = null, AutoSizeModes scaling = AutoSizeModes.ResizeToFill) { Panel newPanel = new Panel(); newPanel.AutoSize = scaling; if (panel != null) panel.Components.Add(newPanel); return newPanel; }
protected override void Setup() { base.Setup(); nativeTexture = DaggerfallUI.GetTextureFromImg(nativeImgName); if (!nativeTexture) throw new System.Exception("DaggerfallTravelMap: Could not load native texture."); ParentPanel.BackgroundColor = Color.clear; travelPanel = DaggerfallUI.AddPanel(nativePanelRect, NativePanel); travelPanel.BackgroundTexture = nativeTexture; avaliableGoldLabel = DaggerfallUI.AddTextLabel(DaggerfallUI.DefaultFont, new Vector2(148, 97), "0", NativePanel); avaliableGoldLabel.MaxCharacters = 12; tripCostLabel = DaggerfallUI.AddTextLabel(DaggerfallUI.DefaultFont, new Vector2(117,107), "0", NativePanel); tripCostLabel.MaxCharacters = 18; travelTimeLabel = DaggerfallUI.AddTextLabel(DaggerfallUI.DefaultFont, new Vector2(129,117), "0", NativePanel); travelTimeLabel.MaxCharacters = 16; speedToggleColorPanel = DaggerfallUI.AddPanel(new Rect(cautiousPanelPos, colorPanelSize), NativePanel); speedToggleColorPanel.BackgroundColor = toggleColor; sleepToggleColorPanel = DaggerfallUI.AddPanel(new Rect(innPanelPos, colorPanelSize), NativePanel); sleepToggleColorPanel.BackgroundColor = toggleColor; transportToggleColorPanel = DaggerfallUI.AddPanel(new Rect(footPos, colorPanelSize), NativePanel); transportToggleColorPanel.BackgroundColor = toggleColor; SetupButtons(); Refresh(); }
/// <summary> /// initial window setup of the automap window /// </summary> protected override void Setup() { ImgFile imgFile = null; DFBitmap bitmap = null; if (isSetup) // don't setup twice! return; initGlobalResources(); // initialize gameobjectAutomap, daggerfallAutomap and layerAutomap // Load native texture imgFile = new ImgFile(Path.Combine(DaggerfallUnity.Instance.Arena2Path, nativeImgName), FileUsage.UseMemory, false); imgFile.LoadPalette(Path.Combine(DaggerfallUnity.Instance.Arena2Path, imgFile.PaletteName)); bitmap = imgFile.GetDFBitmap(); nativeTexture = new Texture2D(bitmap.Width, bitmap.Height, TextureFormat.ARGB32, false); nativeTexture.SetPixels32(imgFile.GetColor32(bitmap, 0)); nativeTexture.Apply(false, false); // make readable nativeTexture.filterMode = DaggerfallUI.Instance.GlobalFilterMode; if (!nativeTexture) throw new Exception("DaggerfallAutomapWindow: Could not load native texture (AMAP00I0.IMG)."); // Load alternative Grid Icon (3D View Grid graphics) imgFile = new ImgFile(Path.Combine(DaggerfallUnity.Instance.Arena2Path, nativeImgNameGrid3D), FileUsage.UseMemory, false); imgFile.LoadPalette(Path.Combine(DaggerfallUnity.Instance.Arena2Path, imgFile.PaletteName)); bitmap = imgFile.GetDFBitmap(); Texture2D nativeTextureGrid3D = new Texture2D(bitmap.Width, bitmap.Height, TextureFormat.ARGB32, false); nativeTextureGrid3D.SetPixels32(imgFile.GetColor32(bitmap, 0)); nativeTextureGrid3D.Apply(false, false); // make readable nativeTextureGrid3D.filterMode = DaggerfallUI.Instance.GlobalFilterMode; if (!nativeTextureGrid3D) throw new Exception("DaggerfallAutomapWindow: Could not load native texture (AMAP01I0.IMG)."); pixelsGrid3D = nativeTextureGrid3D.GetPixels(0, 0, 27, 19); // Cut out 2D View Grid graphics from background image pixelsGrid2D = nativeTexture.GetPixels(78, nativeTexture.height - 171 - 19, 27, 19); // store background graphics from from background image backgroundOriginal = nativeTexture.GetPixels(0, 29, nativeTexture.width, nativeTexture.height - 29); backgroundAlternative1 = new Color[backgroundOriginal.Length]; for (int i = 0; i < backgroundOriginal.Length; ++i) { backgroundAlternative1[i].r = 0.0f; backgroundAlternative1[i].g = 0.0f; backgroundAlternative1[i].b = 0.0f; backgroundAlternative1[i].a = 1.0f; } backgroundAlternative2 = new Color[backgroundOriginal.Length]; for (int i = 0; i < backgroundOriginal.Length; ++i) { backgroundAlternative2[i].r = 0.2f; backgroundAlternative2[i].g = 0.1f; backgroundAlternative2[i].b = 0.3f; backgroundAlternative2[i].a = 1.0f; } backgroundAlternative3 = new Color[backgroundOriginal.Length]; for (int i = 0; i < backgroundOriginal.Length; ++i) { backgroundAlternative3[i].r = 0.3f; backgroundAlternative3[i].g = 0.1f; backgroundAlternative3[i].b = 0.2f; backgroundAlternative3[i].a = 1.0f; } // Always dim background ParentPanel.BackgroundColor = ScreenDimColor; // Setup native panel background NativePanel.BackgroundTexture = nativeTexture; oldPositionNativePanel = NativePanel.Rectangle; // dummyPanelAutomap is used to get correct size for panelRenderAutomap Rect rectDummyPanelAutomap = new Rect(); rectDummyPanelAutomap.position = new Vector2(1, 1); rectDummyPanelAutomap.size = new Vector2(318, 169); dummyPanelAutomap = DaggerfallUI.AddPanel(rectDummyPanelAutomap, NativePanel); // Setup automap render panel (into this the level geometry is rendered) - use dummyPanelAutomap to get size Rect positionPanelRenderAutomap = dummyPanelAutomap.Rectangle; panelRenderAutomap = DaggerfallUI.AddPanel(positionPanelRenderAutomap, ParentPanel); panelRenderAutomap.AutoSize = AutoSizeModes.None; panelRenderAutomap.OnMouseScrollUp += PanelAutomap_OnMouseScrollUp; panelRenderAutomap.OnMouseScrollDown += PanelAutomap_OnMouseScrollDown; panelRenderAutomap.OnMouseDown += PanelAutomap_OnMouseDown; panelRenderAutomap.OnMouseUp += PanelAutomap_OnMouseUp; panelRenderAutomap.OnRightMouseDown += PanelAutomap_OnRightMouseDown; panelRenderAutomap.OnRightMouseUp += PanelAutomap_OnRightMouseUp; // Grid button (toggle 2D <-> 3D view) gridButton = DaggerfallUI.AddButton(new Rect(78, 171, 27, 19), NativePanel); gridButton.OnMouseClick += GridButton_OnMouseClick; gridButton.OnRightMouseClick += GridButton_OnRightMouseClick; gridButton.OnMouseScrollUp += GridButton_OnMouseScrollUp; gridButton.OnMouseScrollDown += GridButton_OnMouseScrollDown; gridButton.ToolTip = defaultToolTip; gridButton.ToolTipText = "left click: switch between 2D top view and 3D view (hotkey: space key)\rright click: reset rotation center to player position (hotkey: control+backspace)\rmouse wheel up while over this button: increase perspective (only 3D mode)\rmouse wheel down while over this button: decrease perspective (only 3D mode)"; gridButton.ToolTip.ToolTipDelay = toolTipDelay; // forward button forwardButton = DaggerfallUI.AddButton(new Rect(105, 171, 21, 19), NativePanel); forwardButton.OnMouseDown += ForwardButton_OnMouseDown; forwardButton.OnMouseUp += ForwardButton_OnMouseUp; forwardButton.OnRightMouseDown += ForwardButton_OnRightMouseDown; forwardButton.OnRightMouseUp += ForwardButton_OnRightMouseUp; forwardButton.ToolTip = defaultToolTip; forwardButton.ToolTipText = "left click: move viewpoint forward (hotkey: up arrow)\rright click: move rotation center axis forward (hotkey: control+up arrow)"; forwardButton.ToolTip.ToolTipDelay = toolTipDelay; // backward button backwardButton = DaggerfallUI.AddButton(new Rect(126, 171, 21, 19), NativePanel); backwardButton.OnMouseDown += BackwardButton_OnMouseDown; backwardButton.OnMouseUp += BackwardButton_OnMouseUp; backwardButton.OnRightMouseDown += BackwardButton_OnRightMouseDown; backwardButton.OnRightMouseUp += BackwardButton_OnRightMouseUp; backwardButton.ToolTip = defaultToolTip; backwardButton.ToolTipText = "left click: move viewpoint backwards (hotkey: down arrow)\rright click: move rotation center axis backwards (hotkey: control+down arrow)"; backwardButton.ToolTip.ToolTipDelay = toolTipDelay; // left button leftButton = DaggerfallUI.AddButton(new Rect(149, 171, 21, 19), NativePanel); leftButton.OnMouseDown += LeftButton_OnMouseDown; leftButton.OnMouseUp += LeftButton_OnMouseUp; leftButton.OnRightMouseDown += LeftButton_OnRightMouseDown; leftButton.OnRightMouseUp += LeftButton_OnRightMouseUp; leftButton.ToolTip = defaultToolTip; leftButton.ToolTipText = "left click: move viewpoint to the left (hotkey: left arrow)\rright click: move rotation center axis to the left (hotkey: control+left arrow)"; leftButton.ToolTip.ToolTipDelay = toolTipDelay; // right button rightButton = DaggerfallUI.AddButton(new Rect(170, 171, 21, 19), NativePanel); rightButton.OnMouseDown += RightButton_OnMouseDown; rightButton.OnMouseUp += RightButton_OnMouseUp; rightButton.OnRightMouseDown += RightButton_OnRightMouseDown; rightButton.OnRightMouseUp += RightButton_OnRightMouseUp; rightButton.ToolTip = defaultToolTip; rightButton.ToolTipText = "left click: move viewpoint to the right (hotkey: right arrow)\rright click: move rotation center axis to the right (hotkey: control+right arrow)"; rightButton.ToolTip.ToolTipDelay = toolTipDelay; // rotate left button rotateLeftButton = DaggerfallUI.AddButton(new Rect(193, 171, 21, 19), NativePanel); rotateLeftButton.OnMouseDown += RotateLeftButton_OnMouseDown; rotateLeftButton.OnMouseUp += RotateLeftButton_OnMouseUp; rotateLeftButton.OnRightMouseDown += RotateLeftButton_OnRightMouseDown; rotateLeftButton.OnRightMouseUp += RotateLeftButton_OnRightMouseUp; rotateLeftButton.ToolTip = defaultToolTip; rotateLeftButton.ToolTipText = "left click: rotate dungeon model to the left (hotkey: alt+right arrow)\rright click: rotate camera view to the left (hotkey: shift+right arrow)"; rotateLeftButton.ToolTip.ToolTipDelay = toolTipDelay; // rotate right button rotateRightButton = DaggerfallUI.AddButton(new Rect(214, 171, 21, 19), NativePanel); rotateRightButton.OnMouseDown += RotateRightButton_OnMouseDown; rotateRightButton.OnMouseUp += RotateRightButton_OnMouseUp; rotateRightButton.OnRightMouseDown += RotateRightButton_OnRightMouseDown; rotateRightButton.OnRightMouseUp += RotateRightButton_OnRightMouseUp; rotateRightButton.ToolTip = defaultToolTip; rotateRightButton.ToolTipText = "left click: rotate dungeon model to the right (hotkey: alt+right arrow)\rright click: rotate camera view to the right (hotkey: shift+right arrow)"; rotateRightButton.ToolTip.ToolTipDelay = toolTipDelay; // upstairs button upstairsButton = DaggerfallUI.AddButton(new Rect(237, 171, 21, 19), NativePanel); upstairsButton.OnMouseDown += UpstairsButton_OnMouseDown; upstairsButton.OnMouseUp += UpstairsButton_OnMouseUp; upstairsButton.OnRightMouseDown += UpstairsButton_OnRightMouseDown; upstairsButton.OnRightMouseUp += UpstairsButton_OnRightMouseUp; upstairsButton.ToolTip = defaultToolTip; upstairsButton.ToolTipText = "left click: increase viewpoint (hotkey: page up)\rright click: increase slice level (hotkey: control+page up)\r\rhint: different render modes may show hidden geometry:\rhotkey F2: cutout mode\rhotkey F3: wireframe mode\rhotkey F4: transparent mode\rswitch between modes with return key"; upstairsButton.ToolTip.ToolTipDelay = toolTipDelay; // downstairs button downstairsButton = DaggerfallUI.AddButton(new Rect(258, 171, 21, 19), NativePanel); downstairsButton.OnMouseDown += DownstairsButton_OnMouseDown; downstairsButton.OnMouseUp += DownstairsButton_OnMouseUp; downstairsButton.OnRightMouseDown += DownstairsButton_OnRightMouseDown; downstairsButton.OnRightMouseUp += DownstairsButton_OnRightMouseUp; downstairsButton.ToolTip = defaultToolTip; downstairsButton.ToolTipText = "left click: decrease viewpoint (hotkey: page down)\rright click: decrease slice level (hotkey: control+page down)\r\rhint: different render modes may show hidden geometry:\rhotkey F2: cutout mode\rhotkey F3: wireframe mode\rhotkey F4: transparent mode\rswitch between modes with return key"; downstairsButton.ToolTip.ToolTipDelay = toolTipDelay; // Exit button Button exitButton = DaggerfallUI.AddButton(new Rect(281, 171, 28, 19), NativePanel); exitButton.OnMouseClick += ExitButton_OnMouseClick; // dummyPanelCompass is used to get correct size for compass Rect rectDummyPanelCompass = new Rect(); rectDummyPanelCompass.position = new Vector2(3, 172); rectDummyPanelCompass.size = new Vector2(76, 17); dummyPanelCompass = DaggerfallUI.AddPanel(rectDummyPanelCompass, NativePanel); dummyPanelCompass.OnMouseClick += Compass_OnMouseClick; dummyPanelCompass.OnRightMouseClick += Compass_OnRightMouseClick; dummyPanelCompass.ToolTip = defaultToolTip; dummyPanelCompass.ToolTipText = "left click: toggle focus (hotkey: tab)\rred beacon: player, green beacon: entrance, blue beacon: rotation center\r\rright click: reset view (hotkey: backspace)"; dummyPanelCompass.ToolTip.ToolTipDelay = toolTipDelay; // compass compass = new HUDCompass(); Vector2 scale = NativePanel.LocalScale; compass.Position = dummyPanelCompass.Rectangle.position; compass.Scale = scale; NativePanel.Components.Add(compass); isSetup = true; }
protected override void Setup() { // Load native texture nativeTexture = DaggerfallUI.GetTextureFromImg(nativeImgName); if (!nativeTexture) throw new Exception("DaggerfallTravelMap: Could not load native texture."); // Always dim background ParentPanel.BackgroundColor = ScreenDimColor; // Setup native panel background NativePanel.BackgroundTexture = nativeTexture; // Populate the offset dict PopulateRegionOffsetDict(); // Don't allow automatic cancel, we will handle this locally AllowCancel = false; // Load picker colours regionPickerBitmap = DaggerfallUI.GetImgBitmap(regionPickerImgName); // Add region label regionLabel = DaggerfallUI.AddTextLabel(DaggerfallUI.DefaultFont, new Vector2(0, 2), string.Empty, NativePanel); regionLabel.HorizontalAlignment = HorizontalAlignment.Center; // Handle clicks NativePanel.OnMouseClick += ClickHandler; // Setup buttons for first time LoadButtonTextures(); SetupButtons(); UpdateSearchButtons(); // Region overlay panel regionTextureOverlayPanel = DaggerfallUI.AddPanel(regionTextureOverlayPanelRect, NativePanel); regionTextureOverlayPanel.Enabled = false; // Location cluster panel locationClusterPanel = DaggerfallUI.AddPanel(regionTextureOverlayPanelRect, regionTextureOverlayPanel); locationClusterPanel.HorizontalAlignment = HorizontalAlignment.Left; locationClusterPanel.VerticalAlignment = VerticalAlignment.Top; // Location cluster will be updated when user opens a region locationClusterColors = new Color32[(int)regionTextureOverlayPanelRect.width * (int)regionTextureOverlayPanelRect.height]; locationClusterTexture = new Texture2D((int)regionTextureOverlayPanelRect.width, (int)regionTextureOverlayPanelRect.height); locationClusterTexture.filterMode = DaggerfallUI.Instance.GlobalFilterMode; // Overlay to identify player region identifyRegionOverlayTexture = CreatePlayerRegionOverlayTexture(); // Identify region panel is displayed to show user what region they are in identifyRegionPanel = new Panel(); identifyRegionPanel.Position = new Vector2(0, 0); identifyRegionPanel.Size = NativePanel.Size; identifyRegionPanel.BackgroundTexture = identifyRegionOverlayTexture; identifyRegionPanel.Enabled = false; NativePanel.Components.Add(identifyRegionPanel); }
// Fades HUD background in from black to briefly hide world while loading IEnumerator FadePanelBackground(Panel target, Color startColor, Color targetColor, float fadeDuration = 0.4f, bool popWindowOnCompletion = false) { const float fadeStep = 0.02f; // Must have a HUD to fade if (dfHUD == null) yield break; // Setup fade target.BackgroundColor = startColor; // Progress fade float progress = 0; float increment = fadeStep / fadeDuration; while (progress < 1) { target.BackgroundColor = Color.Lerp(startColor, targetColor, progress); progress += increment; yield return new WaitForSeconds(fadeStep); } // Ensure starting colour is restored target.BackgroundColor = targetColor; // Pop window if specified if (popWindowOnCompletion) uiManager.PopWindow(); }
protected override void Setup() { // Load all the textures used by inventory system LoadTextures(); // Always dim background ParentPanel.BackgroundColor = ScreenDimColor; // Setup native panel background NativePanel.BackgroundTexture = baseTexture; // Character portrait NativePanel.Components.Add(paperDoll); paperDoll.Position = new Vector2(49, 13); paperDoll.OnMouseMove += PaperDoll_OnMouseMove; paperDoll.OnMouseClick += PaperDoll_OnMouseClick; paperDoll.ToolTip = defaultToolTip; paperDoll.Refresh(); // Setup UI SetupTabPageButtons(); SetupActionButtons(); SetupScrollBars(); SetupScrollButtons(); SetupLocalItemsElements(); SetupRemoteItemsElements(); SetupAccessoryElements(); // Exit buttons Button exitButton = DaggerfallUI.AddButton(exitButtonRect, NativePanel); exitButton.OnMouseClick += ExitButton_OnMouseClick; // Setup local and remote target icon panels //localTargetIconPanel = DaggerfallUI.AddPanel(localTargetIconRect, NativePanel); remoteTargetIconPanel = DaggerfallUI.AddPanel(remoteTargetIconRect, NativePanel); // Setup initial state SelectTabPage(TabPages.WeaponsAndArmor); if (lootTarget != null) SelectActionMode(ActionModes.Remove); else SelectActionMode(ActionModes.Equip); // Setup initial display FilterLocalItems(); FilterRemoteItems(); UpdateLocalItemsDisplay(); UpdateRemoteItemsDisplay(); UpdateAccessoryItemsDisplay(); UpdateRemoteTargetIcon(); }
public static Button AddButton(Rect rect, Panel panel = null) { return AddButton( new Vector2(rect.x, rect.y), new Vector2(rect.width, rect.height), panel); }
protected override void Setup() { // Main panel mainPanel.HorizontalAlignment = HorizontalAlignment.Center; mainPanel.VerticalAlignment = VerticalAlignment.Middle; mainPanel.Size = mainPanelSize; mainPanel.Outline.Enabled = true; mainPanel.BackgroundColor = mainPanelBackgroundColor; NativePanel.Components.Add(mainPanel); // Prompt promptLabel.ShadowPosition = Vector2.zero; promptLabel.Position = new Vector2(4, 4); mainPanel.Components.Add(promptLabel); // Name panel Panel namePanel = new Panel(); namePanel.Position = new Vector2(4, 12); namePanel.Size = new Vector2(272, 9); namePanel.Outline.Enabled = true; namePanel.BackgroundColor = namePanelBackgroundColor; mainPanel.Components.Add(namePanel); // Name input saveNameTextBox.Position = new Vector2(2, 2); saveNameTextBox.MaxCharacters = 26; saveNameTextBox.OnType += SaveNameTextBox_OnType; namePanel.Components.Add(saveNameTextBox); // Save panel Panel savesPanel = new Panel(); savesPanel.Position = new Vector2(4, 25); savesPanel.Size = new Vector2(100, 141); savesPanel.Outline.Enabled = true; mainPanel.Components.Add(savesPanel); // Save list savesList.Position = new Vector2(2, 2); savesList.Size = new Vector2(91, 129); savesList.TextColor = savesListTextColor; savesList.BackgroundColor = savesListBackgroundColor; savesList.ShadowPosition = Vector2.zero; savesList.RowsDisplayed = 16; savesList.OnScroll += SavesList_OnScroll; savesList.OnSelectItem += SavesList_OnSelectItem; savesList.OnMouseDoubleClick += SaveLoadEventHandler; savesPanel.Components.Add(savesList); // Save scroller savesScroller.Position = new Vector2(94, 2); savesScroller.Size = new Vector2(5, 129); savesScroller.DisplayUnits = 16; savesScroller.OnScroll += SavesScroller_OnScroll; savesPanel.Components.Add(savesScroller); // Save/Load button goButton.Position = new Vector2(108, 150); goButton.Size = new Vector2(40, 16); goButton.Label.ShadowColor = Color.black; goButton.BackgroundColor = saveButtonBackgroundColor; goButton.Outline.Enabled = true; goButton.OnMouseClick += SaveLoadEventHandler; mainPanel.Components.Add(goButton); // Switch to classic save window button switchClassicButton.Position = new Vector2(172, 150); switchClassicButton.Size = new Vector2(40, 16); switchClassicButton.Label.Text = "Classic"; //switchClassicButton.Label.TextColor = new Color(0.6f, 0.3f, 0.6f); switchClassicButton.Label.ShadowColor = Color.black; switchClassicButton.BackgroundColor = new Color(0.2f, 0.2f, 0); switchClassicButton.Outline.Enabled = true; switchClassicButton.OnMouseClick += SwitchClassicButton_OnMouseClick; mainPanel.Components.Add(switchClassicButton); // Cancel button Button cancelButton = new Button(); cancelButton.Position = new Vector2(236, 150); cancelButton.Size = new Vector2(40, 16); cancelButton.Label.Text = "Cancel"; cancelButton.Label.ShadowColor = Color.black; cancelButton.BackgroundColor = cancelButtonBackgroundColor; cancelButton.Outline.Enabled = true; cancelButton.OnMouseClick += CancelButton_OnMouseClick; mainPanel.Components.Add(cancelButton); // Screenshot panel screenshotPanel.Position = new Vector2(108, 25); screenshotPanel.Size = new Vector2(168, 95); screenshotPanel.BackgroundTextureLayout = BackgroundLayout.ScaleToFit; screenshotPanel.BackgroundColor = savesListBackgroundColor; screenshotPanel.Outline.Enabled = true; mainPanel.Components.Add(screenshotPanel); // Info panel Panel infoPanel = new Panel(); infoPanel.Position = new Vector2(108, 122); infoPanel.Size = new Vector2(168, 26); mainPanel.Components.Add(infoPanel); // Save version saveVersionLabel.ShadowColor = Color.black; saveVersionLabel.Position = new Vector2(1, 1); saveVersionLabel.TextColor = saveFolderColor; screenshotPanel.Components.Add(saveVersionLabel); // Save folder saveFolderLabel.ShadowColor = Color.black; saveFolderLabel.HorizontalAlignment = HorizontalAlignment.Right; saveFolderLabel.Position = new Vector2(0, 1); saveFolderLabel.TextColor = saveFolderColor; screenshotPanel.Components.Add(saveFolderLabel); // Time labels saveTimeLabel.ShadowPosition = Vector2.zero; saveTimeLabel.HorizontalAlignment = HorizontalAlignment.Center; saveTimeLabel.Position = new Vector2(0, 0); infoPanel.Components.Add(saveTimeLabel); gameTimeLabel.ShadowPosition = Vector2.zero; gameTimeLabel.HorizontalAlignment = HorizontalAlignment.Center; gameTimeLabel.Position = new Vector2(0, 9); infoPanel.Components.Add(gameTimeLabel); // Delete save button deleteSaveButton.Position = new Vector2(0, 132); deleteSaveButton.Size = new Vector2(98, 8); deleteSaveButton.HorizontalAlignment = HorizontalAlignment.Center; deleteSaveButton.Label.Text = "Delete Save"; deleteSaveButton.Label.ShadowColor = Color.black; deleteSaveButton.BackgroundColor = namePanelBackgroundColor; deleteSaveButton.Outline.Enabled = false; deleteSaveButton.OnMouseClick += DeleteSaveButton_OnMouseClick; savesPanel.Components.Add(deleteSaveButton); // Switch character button switchCharButton.Position = new Vector2(216, 2); switchCharButton.Size = new Vector2(60, 8); switchCharButton.Label.Text = "Switch Char"; switchCharButton.Label.ShadowColor = Color.black; switchCharButton.BackgroundColor = saveButtonBackgroundColor; switchCharButton.OnMouseClick += SwitchCharButton_OnMouseClick; mainPanel.Components.Add(switchCharButton); }
public static Button AddButton(Vector2 position, Vector2 size, string clickMessage, string doubleClickMessage, Panel panel = null) { Button button = AddButton(position, size, panel); button.ClickMessage = clickMessage; button.DoubleClickMessage = doubleClickMessage; return button; }