Visual Mode: You can now Shift-Select (usually Select = LMB) to select all adjacent surfaces with same texture, Ctrl-Select to select all adjacent surfaces with same height.

Added Selection Groups options to Edit menu.
Selection Groups can now be cleared using either Edit -> Clear Group or Ctrl-Shift-[group number] shortcut.
Toolbar button groups can now be toggled using context menu. Hold "Shift" to toggle several button groups at once.
This commit is contained in:
MaxED 2013-04-01 11:06:01 +00:00
parent e243450f74
commit c6378809d5
30 changed files with 1226 additions and 68 deletions

View file

@ -578,6 +578,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
return translatedCoords;
}
//mxd
internal void SelectSideParts(Sidedef side, bool toggleTop, bool toggleMid, bool toggleBottom, bool select, bool withSameTexture, bool withSameHeight) {
BaseVisualSector vs = GetVisualSector(side.Sector) as BaseVisualSector;
if(toggleTop && vs.Sides[side].upper != null &&
((select && !vs.Sides[side].upper.Selected) || (!select && vs.Sides[side].upper.Selected))) {
vs.Sides[side].upper.SelectNeighbours(select, withSameTexture, withSameHeight);
}
if(toggleMid && vs.Sides[side].middlesingle != null &&
((select && !vs.Sides[side].middlesingle.Selected) || (!select && vs.Sides[side].middlesingle.Selected))) {
vs.Sides[side].middlesingle.SelectNeighbours(select, withSameTexture, withSameHeight);
}
if(toggleMid && vs.Sides[side].middledouble != null &&
((select && !vs.Sides[side].middledouble.Selected) || (!select && vs.Sides[side].middledouble.Selected))) {
vs.Sides[side].middledouble.SelectNeighbours(select, withSameTexture, withSameHeight);
}
if(toggleBottom && vs.Sides[side].lower != null &&
((select && !vs.Sides[side].lower.Selected) || (!select && vs.Sides[side].lower.Selected))) {
vs.Sides[side].lower.SelectNeighbours(select, withSameTexture, withSameHeight);
}
}
#endregion
@ -1530,7 +1555,18 @@ namespace CodeImp.DoomBuilder.BuilderModes
public void EndSelect()
{
//PreActionNoChange();
GetTargetEventReceiver(true).OnSelectEnd();
IVisualEventReceiver target = GetTargetEventReceiver(true);
target.OnSelectEnd();
//mxd
if((General.Interface.ShiftState || General.Interface.CtrlState) && selectedobjects.Count > 0) {
IVisualEventReceiver[] selection = new IVisualEventReceiver[selectedobjects.Count];
selectedobjects.CopyTo(selection);
foreach(IVisualEventReceiver obj in selection)
obj.SelectNeighbours(target.IsSelected(), General.Interface.ShiftState, General.Interface.CtrlState);
}
Renderer.ShowSelection = true;
Renderer.ShowHighlight = true;
PostAction();