private void AddEdgeRewardItemCommandExecute() { var itemUnit = new ItemUnit(NewRewardEdgeItemType.ItemType, NewRewardEdgeItemTypeCount); SelectedEdge.AddRecievedUnit(itemUnit); AddEdgeRewardItemCommand.RaiseCanExecuteChanged(); }
public void MouseDown(MouseEventArgs e, RoomEditorState state) { int x = (e.X + state.ScrollOffsetX) / state.ScaleFactor; int y = (e.Y + state.ScrollOffsetY) / state.ScaleFactor; if (IsCursorOnVerticalEdge(x, _room.LeftEdgeX)) { _selectedEdge = SelectedEdge.Left; } else if (IsCursorOnVerticalEdge(x, _room.RightEdgeX)) { _selectedEdge = SelectedEdge.Right; } else if (IsCursorOnHorizontalEdge(y, _room.TopEdgeY)) { _selectedEdge = SelectedEdge.Top; } else if (IsCursorOnHorizontalEdge(y, _room.BottomEdgeY)) { _selectedEdge = SelectedEdge.Bottom; } else { _selectedEdge = SelectedEdge.None; } }
private void AddNewEdgeRequestedItemCommandExecute() { var requestedItem = new RequestedItemUnit(NewEdgeRequestedItemType.ItemType, NewEdgeRequestedItemCount, NewEdgeRequestedItemIsDisappearing); SelectedEdge.AddRequestedItem(requestedItem); }
public bool MouseDown(MouseEventArgs e, RoomEditorState state) { if (e.Button == MouseButtons.Middle) { return(false); } _mouseDown = true; int x = state.WindowXToRoom(e.X); int y = state.WindowYToRoom(e.Y); if (IsCursorOnVerticalEdge(x, _room.LeftEdgeX, SelectedEdge.Left) && SetSelectedEdge(SelectedEdge.Left)) { } else if (IsCursorOnVerticalEdge(x, _room.RightEdgeX, SelectedEdge.Right) && SetSelectedEdge(SelectedEdge.Right)) { } else if (IsCursorOnHorizontalEdge(y, _room.TopEdgeY, SelectedEdge.Top) && SetSelectedEdge(SelectedEdge.Top)) { } else if (IsCursorOnHorizontalEdge(y, _room.BottomEdgeY, SelectedEdge.Bottom) && SetSelectedEdge(SelectedEdge.Bottom)) { } else { _selectedEdge = SelectedEdge.None; } _lastSelectedEdge = _selectedEdge; return(_selectedEdge != SelectedEdge.None); }
private void DrawEdge(Graphics graphics, int position, float scale, SelectedEdge edge) { PointF location = new PointF(); SizeF size = new SizeF(); switch (edge) { case SelectedEdge.Left: case SelectedEdge.Right: location.X = position; location.Y = 0; size.Width = scale; size.Height = _room.Height * scale; break; case SelectedEdge.Top: case SelectedEdge.Bottom: location.X = 0; location.Y = position; size.Width = _room.Width * scale; size.Height = scale; break; } RectangleF rect = new RectangleF(location, size); Brush brush = new HatchBrush(HatchStyle.Percent50, Color.Yellow, Color.Transparent); graphics.FillRectangle(brush, rect); }
public void SelectItem(string name) { if (name == SelectedEdge.Bottom.ToString()) { _selectedEdge = SelectedEdge.Bottom; } else if (name == SelectedEdge.Top.ToString()) { _selectedEdge = SelectedEdge.Top; } else if (name == SelectedEdge.Right.ToString()) { _selectedEdge = SelectedEdge.Right; } else if (name == SelectedEdge.Left.ToString()) { _selectedEdge = SelectedEdge.Left; } else { _selectedEdge = SelectedEdge.None; return; } _lastSelectedEdge = _selectedEdge; }
private bool IsMoveable(SelectedEdge edge) { if (!VisibleItems.Contains(edge.ToString()) || LockedItems.Contains(edge.ToString())) { return(false); } return(true); }
private bool IsCursorOnHorizontalEdge(int cursorY, int edgeY, SelectedEdge edge) { if (!IsMoveable(edge)) { return(false); } return((cursorY >= edgeY - 1) && (cursorY <= edgeY + 1)); }
private bool IsCursorOnVerticalEdge(int cursorX, int edgeX, SelectedEdge edge) { if (!IsMoveable(edge)) { return(false); } return((cursorX >= edgeX - 1) && (cursorX <= edgeX + 1)); }
private void DeleteEdgeRewardCommandExecute() { if (MessageBox.Show(string.Format("Delete reward '{0}'?", SelectedEdgeReward.BasicItem.Name), "Confirmation", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } SelectedEdge.DeleteRecievedUnit(SelectedEdgeReward); }
public Cursor GetCursor(int x, int y, RoomEditorState state) { int roomX = state.WindowXToRoom(x); int roomY = state.WindowYToRoom(y); string toolTipText = null; Cursor cursor = null; SelectedEdge draggingEdge = _mouseDown ? _selectedEdge : SelectedEdge.None; if (draggingEdge == SelectedEdge.Left || IsCursorOnVerticalEdge(roomX, _room.LeftEdgeX, SelectedEdge.Left)) { cursor = IsMoveable(SelectedEdge.Left) ? Cursors.VSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Left edge"; } else if (draggingEdge == SelectedEdge.Right || IsCursorOnVerticalEdge(roomX, _room.RightEdgeX, SelectedEdge.Right)) { cursor = IsMoveable(SelectedEdge.Right) ? Cursors.VSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Right edge"; } else if (draggingEdge == SelectedEdge.Top || IsCursorOnHorizontalEdge(roomY, _room.TopEdgeY, SelectedEdge.Top)) { cursor = IsMoveable(SelectedEdge.Top) ? Cursors.HSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Top edge"; } else if (draggingEdge == SelectedEdge.Bottom || IsCursorOnHorizontalEdge(roomY, _room.BottomEdgeY, SelectedEdge.Bottom)) { cursor = IsMoveable(SelectedEdge.Bottom) ? Cursors.HSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Bottom edge"; } else { cursor = null; } if (toolTipText != null) { // Tooltip.Show is quite a slow function, so make sure it's not // called too often if ((Math.Abs(x - _tooltipX) > 5) || (Math.Abs(y - _tooltipY) > 5) || (_tooltipText != toolTipText) || (!_tooltip.Active)) { _tooltip.Show(toolTipText, _panel, x - 10, y + 5); _tooltipX = x; _tooltipY = y; _tooltipText = toolTipText; } } else if (_tooltip.Active) { _tooltip.Hide(_panel); } return(cursor); }
private bool IsMoveable(SelectedEdge edge) { DesignTimeProperties p = DesignItems[GetItemID(edge)]; if (!p.Visible || p.Locked) { return(false); } return(true); }
public void SelectItem(string id) { SelectedEdge edge; if (id == null || !RoomItemRefs.TryGetValue(id, out edge)) { _selectedEdge = SelectedEdge.None; return; } _selectedEdge = edge; _lastSelectedEdge = _selectedEdge; }
private bool SetSelectedEdge(SelectedEdge edge) { if (!IsMoveable(edge)) { return(false); } _selectedEdge = edge; if (OnSelectedItemChanged != null) { OnSelectedItemChanged(this, new SelectedRoomItemEventArgs(edge.ToString())); } return(true); }
public bool MouseDown(MouseEventArgs e, RoomEditorState state) { _mouseDown = true; int x = (e.X + state.ScrollOffsetX) / state.ScaleFactor; int y = (e.Y + state.ScrollOffsetY) / state.ScaleFactor; if (IsCursorOnVerticalEdge(x, _room.LeftEdgeX, SelectedEdge.Left) && SetSelectedEdge(SelectedEdge.Left)) { } else if (IsCursorOnVerticalEdge(x, _room.RightEdgeX, SelectedEdge.Right) && SetSelectedEdge(SelectedEdge.Right)) { } else if (IsCursorOnHorizontalEdge(y, _room.TopEdgeY, SelectedEdge.Top) && SetSelectedEdge(SelectedEdge.Top)) { } else if (IsCursorOnHorizontalEdge(y, _room.BottomEdgeY, SelectedEdge.Bottom) && SetSelectedEdge(SelectedEdge.Bottom)) { } _lastSelectedEdge = _selectedEdge; return(_selectedEdge != SelectedEdge.None); }
private string GetItemID(SelectedEdge e) { // Use edge's name as a "unique identifier", for now return(e.ToString()); }
private bool IsCursorOnHorizontalEdge(int cursorY, int edgeY, SelectedEdge edge) { return((cursorY >= edgeY - 1) && (cursorY <= edgeY + 1)); }
private bool IsCursorOnVerticalEdge(int cursorX, int edgeX, SelectedEdge edge) { return((cursorX >= edgeX - 1) && (cursorX <= edgeX + 1)); }
public void MouseUp(MouseEventArgs e, RoomEditorState state) { _selectedEdge = SelectedEdge.None; }
private void DeleteEdgeRequestedItemCommandExecute() { SelectedEdge.RemoveRequetedItem(SelectedEdgeRequetedItem); DeleteEdgeRequestedItemCommand.RaiseCanExecuteChanged(); }
public bool MouseUp(MouseEventArgs e, RoomEditorState state) { _mouseDown = false; _selectedEdge = SelectedEdge.None; return(false); }