private void OnDecorationSelectionChanged(object sender, SelectionChangedEventArgs e) { if (listViewDecorations.SelectedIndex == -1) { SelectPlaceDecoration(0); } else { if (mode == PlaceModes.PutAway) { Mode = PlaceModes.Place; foreach (Image image in decorationImages) { image.IsHitTestVisible = false; } } else if (mode == PlaceModes.Move) { Mode = PlaceModes.Moving; foreach (Image image in decorationImages) { image.IsHitTestVisible = false; } } SelectPlaceDecoration(((listViewDecorations.SelectedItem as Control).Tag as Decoration).ID); } }
private void OnDecorationImageMouseDown(object sender, MouseButtonEventArgs e) { PlacedDecoration decoration = (sender as Image).Tag as PlacedDecoration; secretBase.PutAwayDecoration(decoration); for (int i = 0; i < decorationImages.Count; i++) { if (!secretBase.PlacedDecorations.Contains(decorationImages[i].Tag as PlacedDecoration)) { gridRoomContents.Children.Remove(decorationImages[i]); decorationImages.RemoveAt(i); i--; } } FillListViewItems(); if (mode == PlaceModes.Move) { Mode = PlaceModes.Moving; foreach (Image image2 in decorationImages) { image2.IsHitTestVisible = false; } SelectPlaceDecoration(decoration.ID); } UpdateDetails(); }
private void OnPlaceClicked(object sender, RoutedEventArgs e) { Mode = PlaceModes.Place; foreach (Image image in decorationImages) { image.IsHitTestVisible = false; } if (mode != PlaceModes.Place) { listViewDecorations.SelectedIndex = -1; } }
private void OnPutAwayClicked(object sender, RoutedEventArgs e) { Mode = PlaceModes.PutAway; foreach (Image image in decorationImages) { image.IsHitTestVisible = true; } if (mode != PlaceModes.PutAway) { listViewDecorations.SelectedIndex = -1; imagePlace.Visibility = Visibility.Hidden; } }
private void OnMoveClicked(object sender, RoutedEventArgs e) { foreach (Image image in decorationImages) { image.IsHitTestVisible = true; } if (mode != PlaceModes.Move && mode != PlaceModes.Moving) { Mode = PlaceModes.Move; listViewDecorations.SelectedIndex = -1; } else { Mode = mode; } }
private void OnRoomMouseDown(object sender, MouseButtonEventArgs e) { if ((mode == PlaceModes.Place || mode == PlaceModes.Moving) && selectedDecorationID != 0 && secretBase.CanPlaceDecoration(selectedDecorationID, (byte)hoverX, (byte)hoverY)) { secretBase.PlaceDecoration(selectedDecorationID, (byte)hoverX, (byte)hoverY); BitmapSource decorationImage = ItemDatabase.GetDecorationFullSizeImageFromID(selectedDecorationID); Image image = new OpaqueClickableImage(); image.Width = decorationImage.PixelWidth; image.Height = decorationImage.PixelHeight; image.Stretch = Stretch.None; image.Source = decorationImage; if (ItemDatabase.GetDecorationFromID(selectedDecorationID).DataType == DecorationDataTypes.NoteMat && showNotes) { image.Source = ResourceDatabase.GetImageFromName("NoteMat" + (selectedDecorationID - 51).ToString()); } image.Margin = new Thickness(16 * (hoverX - SelectedDecorationData.OriginX), 16 * (hoverY - SelectedDecorationData.OriginY), 0, 0); image.HorizontalAlignment = HorizontalAlignment.Left; image.VerticalAlignment = VerticalAlignment.Top; image.Tag = secretBase.PlacedDecorations[secretBase.SlotsUsed - 1]; image.PreviewMouseDown += OnDecorationImageMouseDown; image.MouseEnter += OnDecorationImageMouseEnter; image.MouseLeave += OnDecorationImageMouseLeave; image.IsHitTestVisible = false; decorationImages.Add(image); this.gridRoomContents.Children.Add(image); OrganizeZIndexes(); SelectPlaceDecoration(0); FillListViewItems(); if (mode == PlaceModes.Moving) { Mode = PlaceModes.Move; foreach (Image image2 in decorationImages) { image2.IsHitTestVisible = true; } } UpdateDetails(); } }
private void SelectPlaceDecoration(byte id) { selectedDecorationID = id; if (id == 0) { imagePlace.Source = null; imagePlace.Visibility = Visibility.Hidden; } else { BitmapSource bitmap = ItemDatabase.GetDecorationFullSizeImageFromID(id); imagePlace.Source = bitmap; imagePlace.Width = bitmap.PixelWidth; imagePlace.Height = bitmap.PixelHeight; if (mode == PlaceModes.PutAway) { Mode = PlaceModes.Place; } foreach (Image image in decorationImages) { image.IsHitTestVisible = false; } } }