// Constructor. public EditDoorWindow(Project p, bool createNew) { InitializeComponent(); MyProject = p; CreateNew = createNew; ScreenPreview = new UITileViewer(16.0, 16, 16, 16, 16, ScreenPreviewGrid); ScreenPreviewGrid.Children.Add(ScreenPreview.Element); ScreenPreview.MouseDown += Tile_Click; ScreenPreview.MarkerVisible = true; ScreenImage = new BlitImage(256, 256); foreach (string name in MyProject.AreaNames) { AreaListBox.Items.Add(name); } if (CreateNew) { AreaListBox.SelectedIndex = MyProject.AreaIndex; } else { // Get destination info. MyProject.GetDoorDestination(out int areaIndex, out int roomIndex, out int screenX, out int screenY, out int doorCapX, out int doorCapY, out int distanceToSpawn); AreaListBox.SelectedIndex = areaIndex; RoomListBox.SelectedIndex = roomIndex; ScreenX = screenX; ScreenY = screenY; DoorCapX = doorCapX; DoorCapY = doorCapY; SpawnDistanceInput.Text = Tools.IntToHex(distanceToSpawn, 4); // Get other door properties. MyProject.GetDoorProperties(out bool isElevator, out bool isElevatorPad, out int direction, out bool closes); if (isElevatorPad) { DoorTypeSelect.SelectedIndex = 2; } else if (isElevator) { DoorTypeSelect.SelectedIndex = 1; } else { DoorTypeSelect.SelectedIndex = 0; } DirectionSelect.SelectedIndex = direction; ClosesCheckbox.IsChecked = closes; // Update screen. RenderScreen(); UpdateDoorCap(); UpdateButtons(); } }
private void UpdateActiveBts(object sender, EventArgs e) { int type = MainProject.BtsType; int value = MainProject.BtsValue; BtsTypeInput.Text = Tools.IntToHex(type, 1); BtsValueInput.Text = Tools.IntToHex(value, 2); BlitImage image = new BlitImage(16, 16); image.Clear(); MainProject.RenderBts(image, 0, 0, type, value); SelectedBtsImage.Source = image.ToBitmap(); }
public EditRoomPositionWindow(Project p, bool setSize) { InitializeComponent(); MainProject = p; SetSize = setSize; NewPositionX = MainProject.RoomX; NewPositionY = MainProject.RoomY + 1; NewWidth = MainProject.RoomWidthInScreens; NewHeight = MainProject.RoomHeightInScreens; RoomSizeEditor = new UITileViewer(16.0, 64, 32, 64, 32, MapViewer); RoomSizeEditor.MarkerVisible = true; RoomSizeEditor.Screens [0, 0].SetValue(RenderOptions.BitmapScalingModeProperty, BitmapScalingMode.NearestNeighbor); MapViewer.Content = RoomSizeEditor.Element; BlitImage areaMap = MainProject.RenderAreaMap(); areaMap.DrawRectangle(NewPositionX * 8, NewPositionY * 8, NewWidth * 8, NewHeight * 8, 0x00, 0xFF, 0x00, 0x40); ImageSource source = areaMap.ToBitmap(); RoomSizeEditor.Screens [0, 0].Source = source; if (SetSize) { RoomSizeEditor.MouseUp += RoomSizeEditor_MouseUp; Title = "Crop/expand room to new size"; } else { RoomSizeEditor.MouseDown += RoomSizeEditor_MouseDown; Title = "Set room position on map"; } UpdateSelection(); ContentRendered += ScrollToMarker; }
private void BackgroundSelect_SelectionChanged(object sender, SelectionChangedEventArgs e) { BlitImage img = MyProject.RenderBackground(BackgroundSelect.SelectedIndex); BackgroundImage.Source = img.ToBitmap(); }