Example #1
0
 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";
     }
 }
Example #2
0
    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);
        }
Example #5
0
    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);
            }
        }
Example #8
0
        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();
        }
Example #9
0
        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));
        }
Example #10
0
    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);
    }
Example #11
0
 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);
 }
Example #12
0
    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);
        }
    }
Example #14
0
    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);
        }
    }
Example #15
0
        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);
            }
        }
Example #16
0
        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);
        }
Example #17
0
        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;
                }
            }
        }
Example #18
0
 private void requestsPanelBtn_Click(object sender, EventArgs e)
 {
     GuiHelpers.MakeBtnActive(requestsPanelBtn, booksPanelBtn, ordersPanelBtn);
     GuiHelpers.MakePanelActive(requestsPanel, booksPanel, ordersPanel);
 }