private void MainForm_Load(object sender, EventArgs e) { Books = _database.GetBooks(); GuiHelpers.RefreshBooksPanel(Books, booksPanelListView); Requests = _database.GetRequests(); GuiHelpers.RefreshRequestsPanel(Requests, requestsPanelListView); GuiHelpers.MakePanelActive(booksPanel, ordersPanel, requestsPanel); GuiHelpers.MakeBtnActive(booksPanelBtn, ordersPanelBtn, requestsPanelBtn); if (CurrUser.IsAdmin) { userInfoLabel.Text = "Welcome, Admin " + CurrUser.Username; addBookBtn.Visible = true; delRequestBtn.Visible = true; Orders = _database.GetOrders(); GuiHelpers.RefreshOrdersPanel(Orders, ordersPanelListView); ordersPanelBtn.Text = " All Orders"; } else { userInfoLabel.Text = "Welcome, " + CurrUser.Username; Orders = _database.GetOrdersByUsername(CurrUser.Username); GuiHelpers.RefreshOrdersPanel(Orders, ordersPanelListView); ordersPanelListView.Columns[1].Width = 0; ordersPanelBtn.Text = " My Orders"; } }
private void SwitchTexture(Transform tf = null) { var spriteRenderer = GetComponent <SpriteRenderer>(); spriteRenderer.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); spriteRenderer.transform.rotation = Quaternion.Euler(Vector3.forward); if (AssignedPart == null) { return; } var partDetails = GuiHelpers.GetPartTypeDetails(AssignedPart.VisualType); var sprite = Resources.Load <Sprite>(AttachedToBody ? partDetails.AssetName : partDetails.BeltAssetName); spriteRenderer.sprite = sprite; Vector3 parentScale = Vector3.one; if (tf != null) { spriteRenderer.transform.localScale = new Vector3(!AttachedToBody ? partDetails.SizeModifier * tf.localScale.x : 0.3f, !AttachedToBody ? partDetails.SizeModifier * tf.localScale.y : 0.3f, 1.0f); } else { spriteRenderer.transform.localScale = new Vector3(!AttachedToBody ? partDetails.SizeModifier : 0.3f, !AttachedToBody ? partDetails.SizeModifier : 0.3f, 1.0f); } if (HasCollider) { Destroy(GetComponent <PolygonCollider2D>()); gameObject.AddComponent <PolygonCollider2D>(); } }
/// <summary> /// Gets the size that the parent container should have to fully accomodate the PopupWindow and its child content /// based on the child's InitialSizeRequest. /// </summary> /// <returns>The size, which should be set to the parent container</returns> private Size CalculateScatterViewItemSize() { var presenter = GuiHelpers.GetChildObject <ContentPresenter>(c_contentHolder); if (presenter == null) { return(DefaultPopupSize); } // It seems it's safe to assume the ContentPresenter will always only have one child and that child is the visual representation // of the content of c_contentHolder. var child = VisualTreeHelper.GetChild(presenter, 0); if (child == null) { return(DefaultPopupSize); } var requestedSize = PopupWindow.GetInitialSizeRequest(child); if (!requestedSize.IsEmpty && requestedSize.Width != 0 && requestedSize.Height != 0) { var borderHeight = this.ActualHeight - c_contentHolder.ActualHeight; var borderWidth = this.ActualWidth - c_contentHolder.ActualWidth; return(new Size(requestedSize.Width + borderWidth, requestedSize.Height + borderHeight)); } else { // No requested size set, or the requested size was invalid return(DefaultPopupSize); } }
public void DrawLinesForNPCs(float dist) { Texture2D texture = Main.projectileTexture[projectile.type]; Main.spriteBatch.End(); Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.Additive, SamplerState.LinearClamp, DepthStencilState.Default, RasterizerState.CullNone, null, Main.GameViewMatrix.ZoomMatrix); // Retrieve reference to shader var orbShader = GameShaders.Misc["StarSailor:OrbConnectorEffect"]; orbShader.UseOpacity(1f); orbShader.Apply(null); GuiHelpers.DrawLineExactPositions(Main.spriteBatch, Main.player[projectile.owner].Center, projectile.Center + new Vector2(texture.Width / 2, texture.Height / 2), 8, Color.DarkBlue, ((StarSailorMod)mod).orbConnector); for (int i = 0; i < Main.npc.Length; i++) { if (Main.npc[i].active && !Main.npc[i].townNPC && !Main.npc[i].friendly) { Vector2 trial = Main.npc[i].Center - projectile.Center; if (trial.Length() < dist) { GuiHelpers.DrawLineExactPositions(Main.spriteBatch, Main.npc[i].Center, projectile.Center + new Vector2(texture.Width / 2, texture.Height / 2), 3, Color.Pink, ((StarSailorMod)mod).orbConnector); } } } Main.spriteBatch.End(); Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, RasterizerState.CullCounterClockwise, null, Main.GameViewMatrix.TransformationMatrix); }
private void OnGUI() { // Draw the title. GuiHelpers.DrawText("CALIBRATION", new Vector2(10, 10), 36, GuiHelpers.Magenta); if (IsSupportedEngineVersion()) { // Draw the "Recalibrate" button. if (GUI.Button(new Rect(10, 70, 150, 30), "Recalibrate")) { StartWaitingForCalibration(); _host.LaunchRecalibration(); } // Draw the "Test calibration" button. if (GUI.Button(new Rect(10, 110, 150, 30), "Test calibration")) { _host.LaunchCalibrationTesting(); } } else { // The current engine is not supported. GuiHelpers.DrawRequiredEngineVersionError("1.1"); } }
private void AnimateEntry(Size targetSize) { var svi = GuiHelpers.GetParentObject <ScatterViewItem>(this, false); if (svi != null) { // Easing function provide a more natural animation IEasingFunction ease = new BackEase { EasingMode = EasingMode.EaseOut, Amplitude = 0.3 }; var duration = new Duration(TimeSpan.FromMilliseconds(500)); var w = new DoubleAnimation(0.0, targetSize.Width, duration) { EasingFunction = ease }; var h = new DoubleAnimation(0.0, targetSize.Height, duration) { EasingFunction = ease }; var o = new DoubleAnimation(0.0, 1.0, duration); // Remove the animation after it has completed so that its possible to manually resize the scatterviewitem w.Completed += (s, e) => svi.BeginAnimation(ScatterViewItem.WidthProperty, null); h.Completed += (s, e) => svi.BeginAnimation(ScatterViewItem.HeightProperty, null); // Set the size manually, otherwise once the animation is removed the size will revert back to the minimum size // Since animation has higher priority for DP's, this setting won't have effect until the animation is removed svi.Width = targetSize.Width; svi.Height = targetSize.Height; svi.BeginAnimation(ScatterViewItem.WidthProperty, w); svi.BeginAnimation(ScatterViewItem.HeightProperty, h); svi.BeginAnimation(ScatterViewItem.OpacityProperty, o); } }
private void btnClose_Click(object sender, RoutedEventArgs e) { var sv = GuiHelpers.GetParentObject <ScatterView>(this); if (sv != null) { sv.Items.Remove(this); } }
public OrderDetailsForm(List <Book> books) { InitializeComponent(); _books = books; GuiHelpers.RefreshBooksPanel(_books, listView1); double total = books.Sum(b => b.Price); orderTotalLabel.Text = "Order Total: " + total.ToString(); }
public override bool PreDraw(int i, int j, SpriteBatch spriteBatch) { if (Framing.GetTileSafely(i, j - 1).type != Type && Main.player[Main.myPlayer].mount.Type != ModContent.GetInstance <Boat>().Type) { Vector2 zero = new Vector2(Main.offScreenRange, Main.offScreenRange); Vector2 pixelPos = 16f * new Vector2(i, j) + zero; Vector2 screenPos = pixelPos - Main.screenPosition; Vector2 boatPos = new Vector2((int)screenPos.X - 140, (int)screenPos.Y + 46 + disp); StarSailorMod t = ModContent.GetInstance <StarSailorMod>(); GuiHelpers.DrawLine(spriteBatch, screenPos + new Vector2(10, 10), boatPos + new Vector2(t.boatTex.Width - 10, 20), t.ropeTex.Height, Color.White, t.ropeTex); spriteBatch.Draw(t.boatTex, new Rectangle((int)boatPos.X, (int)boatPos.Y, t.boatTex.Width, t.boatTex.Height), Color.White); } return(base.PreDraw(i, j, spriteBatch)); }
private void OnGUI() { // Draw the title. GuiHelpers.DrawText("PROFILES", new Vector2(10, 10), 36, GuiHelpers.Magenta); if (!IsSupportedEngineVersion()) { // The current engine is not supported. GuiHelpers.DrawRequiredEngineVersionError("1.3"); return; } UpdateProfiles( _host.UserProfileNames, _host.UserProfileName); }
public void RefreshAllData() { if (CurrUser.IsAdmin) { Orders = _database.GetOrders(); GuiHelpers.RefreshOrdersPanel(Orders, ordersPanelListView); } else { Orders = _database.GetOrdersByUsername(CurrUser.Username); GuiHelpers.RefreshOrdersPanel(Orders, ordersPanelListView); } Books = _database.GetBooks(); GuiHelpers.RefreshBooksPanel(Books, booksPanelListView); Requests = _database.GetRequests(); GuiHelpers.RefreshRequestsPanel(Requests, requestsPanelListView); }
private void UpdateProfiles( EyeXEngineStateValue <string[]> profiles, EyeXEngineStateValue <string> currentProfile) { if (profiles.IsValid && currentProfile.IsValid) { // Draw the title. GuiHelpers.DrawText("Click a profile button to activate it.", new Vector2(10, 60), 18, GuiHelpers.Black); for (int index = 0; index < profiles.Value.Length; index++) { // Get the profile name. var profileName = profiles.Value[index]; // Should we disable the GUI? var isCurrentProfile = profileName == currentProfile.Value; if (isCurrentProfile) { GUI.enabled = false; } // Draw the button. var buttonX = buttonMargin; var buttonY = 100 + (index * (buttonHeight + buttonMargin)); var buttonRect = new Rect(buttonX, buttonY, buttonWidth, buttonHeight); if (GUI.Button(buttonRect, profileName)) { // Set the current user profile. _host.SetCurrentProfile(profileName); } // Re-enable the GUI. GUI.enabled = true; } } else { // No valid profile name. GuiHelpers.DrawText("Error: Could not retrieve profile names.", new Vector2(10, 60), 18, GuiHelpers.Red); } }
public void Display(List <Part> loot) { foreach (Transform child in transform) { Destroy(child.gameObject); } this.parts = loot; foreach (var part in parts) { var partVisual = new GameObject(); partVisual.transform.parent = transform; var cr = partVisual.AddComponent <CanvasRenderer>(); var rect = partVisual.AddComponent <RectTransform>(); var img = partVisual.AddComponent <Image>(); var partDetails = GuiHelpers.GetPartTypeDetails(part.VisualType); img.sprite = Resources.Load <Sprite>(partDetails.AssetName); img.transform.localScale = new Vector3(partDetails.SizeModifier, partDetails.SizeModifier, 1.0f); img.transform.rotation = Quaternion.Euler(Vector3.forward * partDetails.RotationEuler); } }
void OnGUI() { // Check whether or not the user is present. var hasUserPresence = _userPresenceComponent.IsUserPresent ? "Yes" : "No"; GuiHelpers.DrawText("Is user present?", new Vector2(10, 10), 18, Color.gray); GuiHelpers.DrawText(hasUserPresence, new Vector2(160, 10), 18, Color.black); // Check whether or not the EyeX Engine is tracking the user's gaze. GuiHelpers.DrawText("Is tracking gaze?", new Vector2(10, 40), 18, Color.gray); if (_userPresenceComponent.GazeTracking == EyeXGazeTracking.NotSupported) { // This functionality is not available for the user. GuiHelpers.DrawText("Requires EyeX Engine 1.4", new Vector2(160, 40), 18, Color.red); } else { var isTrackingGaze = _userPresenceComponent.GazeTracking == EyeXGazeTracking.GazeTracked; GuiHelpers.DrawText(isTrackingGaze ? "Yes" : "No", new Vector2(160, 40), 18, Color.black); } }
private void AnimateExit() { var svi = GuiHelpers.GetParentObject <ScatterViewItem>(this, false); if (svi != null) { IEasingFunction ease = new BackEase { EasingMode = EasingMode.EaseOut, Amplitude = 0.3 }; var duration = new Duration(TimeSpan.FromMilliseconds(500)); var w = new DoubleAnimation(0.0, duration) { EasingFunction = ease }; var h = new DoubleAnimation(0.0, duration) { EasingFunction = ease }; var o = new DoubleAnimation(0.0, duration); svi.BeginAnimation(ScatterViewItem.WidthProperty, w); svi.BeginAnimation(ScatterViewItem.HeightProperty, h); svi.BeginAnimation(ScatterViewItem.OpacityProperty, o); } }
public void DrawGravGui(SpriteBatch sb) { Vector2 direction = dirToGrav / dirToGrav.Length(); Vector2 perpDir = new Vector2(-direction.Y, direction.X); float tangVel = Vector2.Dot(player.velocity, perpDir); float radVel = Vector2.Dot(player.velocity, direction); Player p = Main.player[Main.myPlayer]; Rectangle playerRect = p.getRect(); float maxSize = playerRect.Height; float minSize = playerRect.Width; float diff = maxSize - minSize; playerRect.Width = (int)maxSize; //playerRect.Width = (int)(minSize + (0.5f * diff) + (-0.5f * diff * Math.Cos(2 * p.fullRotation))); //playerRect.Height = (int)(minSize + (0.5f * diff) + (0.5f * diff * Math.Cos(2 * p.fullRotation))); playerRect.X -= (int)(0.5f * (playerRect.Width - minSize)); playerRect.Y -= (int)(0.5f * (playerRect.Height - maxSize)); Vector2 centre = new Vector2((playerRect.X - Main.screenPosition.X) + (playerRect.Width / 2), (playerRect.Y - Main.screenPosition.Y) + (playerRect.Height / 2)); sb.Draw(ModContent.GetInstance <StarSailorMod>().pixel, new Rectangle((int)(playerRect.X - Main.screenPosition.X), (int)(playerRect.Y - Main.screenPosition.Y), playerRect.Width, playerRect.Height), Color.Pink * 0.3f); GuiHelpers.DrawLine(sb, centre, centre + (tangVel * perpDir * 30f), 5, Color.Red); GuiHelpers.DrawLine(sb, centre, centre + (radVel * direction * 30f), 5, Color.Blue); GuiHelpers.DrawLine(sb, centre, centre + (16f * dirToGrav), 2, Color.Green); }
public PatternsViewModel(PatternUserControl patternUserControl) { patternsListBox = patternUserControl.Find <ListBox>("PatternsListBox"); patternTextBox = patternUserControl.Find <TextBox>("PatternData"); patternErrorsListBox = patternUserControl.Find <ListBox>("PatternErrors"); logger = patternUserControl.Find <TextBox>("Logger"); Dispatcher.UIThread.InvokeAsync(async() => { bool error = false; if (!string.IsNullOrEmpty(Settings.PatternsFileName)) { try { PatternsFileName = Settings.PatternsFileName; SelectedPattern = Patterns.FirstOrDefault(p => p.Key == Settings.SelectedPatternKey) ?? Patterns.FirstOrDefault(); } catch (Exception ex) { await MessageBox.ShowDialog(ex.Message); error = true; } } if (string.IsNullOrEmpty(Settings.PatternsFileName) || error) { Settings.PatternsFileName = Settings.DefaultPatternsFileName; SelectedPattern = Patterns.FirstOrDefault(); SavePatterns(); Settings.Save(); } }); patternsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) => { OpenPatternAction(); }; patternErrorsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) => { GuiHelpers.ProcessErrorOnDoubleClick(patternErrorsListBox, patternTextBox); }; patternLogger = new GuiLogger(PatternErrors) { LogPatternErrors = true }; patternLogger.LogEvent += PatternLogger_LogEvent; dslProcessor.Logger = patternLogger; patternTextBox.GetObservable(TextBox.CaretIndexProperty) .Subscribe(UpdatePatternCaretIndex); patternTextBox.GetObservable(TextBox.TextProperty) .Throttle(TimeSpan.FromMilliseconds(250)) .Subscribe(str => { if (SelectedPattern != null) { Value = str; } }); OpenPatterns = ReactiveCommand.Create(async() => { SavePatterns(); var openFileDialog = new OpenFileDialog { Title = "Select patterns database", }; var fileNames = await openFileDialog.ShowAsync(ServiceLocator.MainWindow); if (fileNames != null) { try { PatternsFileName = fileNames.First(); } catch (Exception ex) { await MessageBox.ShowDialog(ex.Message); Settings.PatternsFileName = Settings.DefaultPatternsFileName; Settings.Save(); SelectedPattern = Patterns.FirstOrDefault(); ServiceLocator.MainWindowViewModel.ActivateWindow(); } } }); CreatePattern = ReactiveCommand.Create(() => { SavePatterns(); PatternViewModel newPatternViewMode = CreateNewPattern(); Patterns.Add(newPatternViewMode); SelectedPattern = newPatternViewMode; SavePatterns(); }); RemovePattern = ReactiveCommand.Create(async() => { if (SelectedPattern != null && await MessageBox.ShowDialog($"Do you want to remove {SelectedPattern}?", messageBoxType: MessageBoxType.YesNo)) { Patterns.Remove(SelectedPattern); SelectedPattern = Patterns.LastOrDefault(); SavePatterns(); } }); OpenPattern = ReactiveCommand.Create(OpenPatternAction); SavePattern = ReactiveCommand.Create(() => SavePatterns()); void OpenPatternAction() { if (patternsListBox.SelectedItem != null) { SelectedPattern = (PatternViewModel)patternsListBox.SelectedItem; } } }
private void requestsPanelBtn_Click(object sender, EventArgs e) { GuiHelpers.MakeBtnActive(requestsPanelBtn, booksPanelBtn, ordersPanelBtn); GuiHelpers.MakePanelActive(requestsPanel, booksPanel, ordersPanel); }