mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
commit
fa6bdd9027
|
|
@ -897,6 +897,64 @@ function EditorDropTypeMenu::setupDefaultState(%this)
|
|||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function EditorSnapToMenu::onSelectItem(%this, %id, %text)
|
||||
{
|
||||
EWorldEditor.SnapTo(%id);
|
||||
}
|
||||
|
||||
function EditorSnapToMenu::setupDefaultState(%this)
|
||||
{
|
||||
Parent::setupDefaultState(%this);
|
||||
}
|
||||
|
||||
function WorldEditor::snapTo(%this, %id)
|
||||
{
|
||||
if(%this.getSelectionSize() > 2)
|
||||
{
|
||||
error("Please select two objects before selecting a Snap To function.");
|
||||
return;
|
||||
}
|
||||
|
||||
%objTarget = %this.getSelectedObject(0);
|
||||
%objToSnap = %this.getSelectedObject(%this.getSelectionSize()-1);
|
||||
|
||||
switch$(%id)
|
||||
{
|
||||
case 0:
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 0, getWord(%objTarget.getTransform(), 0)));
|
||||
case 1:
|
||||
%objTargetXEdge = getWord(%objTarget.getTransform(), 0) + getWord(%objTarget.getObjectBox(), 0);
|
||||
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 3);
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 0, %objToSnapXEdge));
|
||||
case 2:
|
||||
%objTargetXEdge = getWord(%objTarget.getTransform(), 0) + getWord(%objTarget.getObjectBox(), 3);
|
||||
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 0);
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 0, %objToSnapXEdge));
|
||||
case 3:
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 1, getWord(%objTarget.getTransform(), 1)));
|
||||
case 4:
|
||||
%objTargetXEdge = getWord(%objTarget.getTransform(), 1) + getWord(%objTarget.getObjectBox(), 1);
|
||||
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 4);
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 1, %objToSnapXEdge));
|
||||
case 5:
|
||||
%objTargetXEdge = getWord(%objTarget.getTransform(), 1) + getWord(%objTarget.getObjectBox(), 4);
|
||||
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 1);
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 1, %objToSnapXEdge));
|
||||
case 6:
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 2, getWord(%objTarget.getTransform(), 2)));
|
||||
case 7:
|
||||
%objTargetXEdge = getWord(%objTarget.getTransform(), 2) + getWord(%objTarget.getObjectBox(), 2);
|
||||
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 5);
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 2, %objToSnapXEdge));
|
||||
case 8:
|
||||
%objTargetXEdge = getWord(%objTarget.getTransform(), 2) + getWord(%objTarget.getObjectBox(), 5);
|
||||
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 2);
|
||||
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 2, %objToSnapXEdge));
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function EditorAlignBoundsMenu::onSelectItem(%this, %id, %text)
|
||||
{
|
||||
// Have the editor align all selected objects by the selected bounds.
|
||||
|
|
|
|||
|
|
@ -233,8 +233,32 @@ function EditorGui::buildMenus(%this)
|
|||
Item[15] = "Manage Bookmarks..." TAB "Ctrl-Shift B" TAB "EditorGui.toggleCameraBookmarkWindow();";
|
||||
item[16] = "Jump to Bookmark" TAB %this.cameraBookmarksMenu;
|
||||
};
|
||||
|
||||
%this.menuBar.insert(%cameraMenu);
|
||||
|
||||
|
||||
// Snap Menu
|
||||
%snapToMenu = new PopupMenu()
|
||||
{
|
||||
superClass = "MenuBuilder";
|
||||
class = "EditorSnapToMenu";
|
||||
|
||||
barTitle = "SnapTo";
|
||||
|
||||
// The onSelectItem() callback for this menu re-purposes the command field
|
||||
// as the MenuBuilder version is not used.
|
||||
item[0] = "Snap 2nd Object To 1st X" TAB "" TAB "X";
|
||||
item[1] = "Snap 2nd Object To 1st X+" TAB "" TAB "X+";
|
||||
item[2] = "Snap 2nd Object To 1st X-" TAB "" TAB "X-";
|
||||
item[3] = "Snap 2nd Object To 1st Y" TAB "" TAB "Y";
|
||||
item[4] = "Snap 2nd Object to 1st Y+" TAB "" TAB "Y+";
|
||||
item[5] = "Snap 2nd Object to 1st Y-" TAB "" TAB "Y-";
|
||||
item[6] = "Snap 2nd Object To 1st Z" TAB "" TAB "Z";
|
||||
item[7] = "Snap 2nd Object to 1st Z+" TAB "" TAB "Z+";
|
||||
item[8] = "Snap 2nd Object to 1st Z-" TAB "" TAB "Z-";
|
||||
|
||||
};
|
||||
%this.menuBar.insert(%snapToMenu);
|
||||
|
||||
// Editors Menu
|
||||
%editorsMenu = new PopupMenu()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue