add cover tool

add cover tool
some more cleanup
navmeshselecttool needs to use collideBox
duDebugDrawTorque now has the transparent blending option
This commit is contained in:
marauder2k7 2025-07-28 08:24:20 +01:00
parent 24ec55e8bc
commit b5d6601b96
11 changed files with 142 additions and 88 deletions

View file

@ -73,11 +73,11 @@ function initializeNavEditor()
buttonImage = "ToolsModule:nav_link_n_image";
};
new NavMeshTestTool()
new CoverTool()
{
internalName = "TestTool";
toolTip = "PathFinding Test tool";
buttonImage = "ToolsModule:3rd_person_camera_n_image";
internalName = "NavCoverTool";
toolTip = "Cover Tool";
buttonImage = "ToolsModule:nav_cover_n_image";
};
new TileTool()
@ -86,6 +86,13 @@ function initializeNavEditor()
toolTip = "Tile selection tool";
buttonImage = "ToolsModule:select_bounds_n_image";
};
new NavMeshTestTool()
{
internalName = "TestTool";
toolTip = "PathFinding Test tool";
buttonImage = "ToolsModule:3rd_person_camera_n_image";
};
};
// Bind shortcuts for the nav editor.
@ -151,8 +158,8 @@ function EditorGui::SetNavPalletBar()
//Adds a button to the pallete stack
//Name Icon Click Command Tooltip text Keybind
EWToolsPaletteWindow.addButton("EditMode", "ToolsModule:visibility_toggle_n_image", "NavEditorGui.setActiveTool(NavMeshTools->SelectTool);", "", "Edit NavMesh", "1");
EWToolsPaletteWindow.addButton("LinkMode", "ToolsModule:nav_link_n_image", "NavEditorGui.setActiveTool(NavMeshTools->LinkTool);", "", "Create off-mesh links", "2");
// EWToolsPaletteWindow.addButton("CoverMode", "ToolsModule:nav_cover_n_image", "NavEditorGui.setMode(\"CoverMode\");", "","Edit cover", "3");
EWToolsPaletteWindow.addButton("LinkMode", "ToolsModule:nav_link_n_image", "NavEditorGui.setActiveTool(NavMeshTools->LinkTool);", "", "Create off-mesh links", "2");
EWToolsPaletteWindow.addButton("CoverMode","ToolsModule:nav_cover_n_image", "NavEditorGui.setActiveTool(NavMeshTools->NavCoverTool);", "", "Create Cover Points.", "3");
EWToolsPaletteWindow.addButton("TileMode", "ToolsModule:select_bounds_n_image", "NavEditorGui.setActiveTool(NavMeshTools->TileTool);" , "", "View and Edit Tiles", "4");
EWToolsPaletteWindow.addButton("TestMode", "ToolsModule:3rd_person_camera_n_image", "NavEditorGui.setActiveTool(NavMeshTools->TestTool);", "", "Test pathfinding", "5");
EWToolsPaletteWindow.refresh();

View file

@ -297,7 +297,7 @@ function NavEditorGui::showSidePanel()
}
//------------------------------------------------------
// NAVMESHTESTTOOL
// NAVMESHSELECTTOOL
//------------------------------------------------------
function NavMeshSelectTool::onActivated(%this)
@ -317,6 +317,18 @@ function NavMeshSelectTool::onDeactivated(%this)
%actions->SelectActions.setVisible(false);
}
function NavMeshSeletTool::onNavMeshSelected(%this)
{
%obj = NavEditorGui.getMesh();
// we set the naveditorgui navmesh in source so just get it
// and update here.
NavInspector.inspect(NavEditorGui.getMesh());
NavTreeView.clearSelection();
if(isObject(%obj))
NavTreeView.selectItem(%obj);
}
//------------------------------------------------------
// OffMeshConnectionTool
//------------------------------------------------------
@ -416,6 +428,22 @@ function NavMeshLinkBiDirection::onClick(%this)
NavMeshTools->LinkTool.updateLinkFlags();
}
//------------------------------------------------------
// CoverTool
//------------------------------------------------------
function CoverTool::onActivated(%this)
{
%actions = NavEditorOptionsWindow->ActionsBox;
%actions->CoverActions.setVisible(true);
}
function CoverTool::onDeactivated(%this)
{
%actions = NavEditorOptionsWindow->ActionsBox;
%actions->CoverActions.setVisible(false);
}
//------------------------------------------------------
// NAVMESHTESTTOOL
//------------------------------------------------------
@ -573,71 +601,11 @@ function TileTool::onDeactivated(%this)
%properties->TileProperties.setVisible(false);
}
//------------------------------------------------------
function NavEditorGui::onModeSet(%this, %mode)
{
// Callback when the nav editor changes mode. Set the appropriate dynamic
// GUI contents in the properties/actions boxes.
NavInspector.setVisible(false);
%actions = NavEditorOptionsWindow->ActionsBox;
%actions->SelectActions.setVisible(false);
%actions->LinkActions.setVisible(false);
%actions->CoverActions.setVisible(false);
%actions->TileActions.setVisible(false);
%actions->TestActions.setVisible(false);
%properties = NavEditorOptionsWindow->PropertiesBox;
%properties->LinkProperties.setVisible(false);
%properties->TileProperties.setVisible(false);
%properties->TestProperties.setVisible(false);
switch$(%mode)
{
case "SelectMode":
NavInspector.setVisible(true);
%actions->SelectActions.setVisible(true);
case "LinkMode":
%actions->LinkActions.setVisible(true);
%properties->LinkProperties.setVisible(true);
case "CoverMode":
//
%actions->CoverActions.setVisible(true);
case "TileMode":
%actions->TileActions.setVisible(true);
%properties->TileProperties.setVisible(true);
case "TestMode":
%actions->TestActions.setVisible(true);
%properties->TestProperties.setVisible(true);
}
}
function NavEditorGui::onEscapePressed(%this)
{
return false;
}
function NavEditorGui::selectObject(%this, %obj)
{
NavTreeView.clearSelection();
if(isObject(%obj))
NavTreeView.selectItem(%obj);
%this.onObjectSelected(%obj);
}
function NavEditorGui::onObjectSelected(%this, %obj)
{
if(isObject(%this.selectedObject))
%this.deselect();
%this.selectedObject = %obj;
if(isObject(%obj))
{
%this.selectMesh(%obj);
NavInspector.inspect(%obj);
}
}
function NavEditorGui::deleteMesh(%this)
{
if(isObject(%this.selectedObject))
@ -732,7 +700,6 @@ function NavTreeView::onInspect(%this, %obj)
function NavTreeView::onSelect(%this, %obj)
{
NavInspector.inspect(%obj);
NavEditorGui.onObjectSelected(%obj);
}
function NavEditorGui::prepSelectionMode(%this)

View file

@ -11,7 +11,6 @@ $paletteId = new GuiControl(NavEditorPalette,EditorGuiGroup) {
canSave = "1";
Visible = "1";
hovertime = "1000";
new GuiBitmapButtonCtrl(ENavEditorSelectModeBtn) {
canSaveDynamicFields = "1";
class = ENavEditorPaletteButton;
@ -26,9 +25,9 @@ $paletteId = new GuiControl(NavEditorPalette,EditorGuiGroup) {
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "NavEditorGui.prepSelectionMode();";
Command = "NavEditorGui.setActiveTool(NavMeshTools->SelectTool);";
tooltipprofile = "GuiToolTipProfile";
ToolTip = "View NavMesh (1).";
ToolTip = "Edit NavMesh (1).";
DetailedDesc = "";
hovertime = "1000";
bitmapAsset = "ToolsModule:visibility_toggle_n_image";
@ -49,10 +48,10 @@ $paletteId = new GuiControl(NavEditorPalette,EditorGuiGroup) {
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "NavEditorGui.setMode(\"LinkMode\");";
Command = "NavEditorGui.setActiveTool(NavMeshTools->LinkTool);";
tooltipprofile = "GuiToolTipProfile";
ToolTip = "Create off-mesh links (2).";
DetailedDesc = "Click to select/add. Shift-click to add multiple end points.";
ToolTip = "Edit Links (2).";
DetailedDesc = "";
hovertime = "1000";
bitmapAsset = "ToolsModule:nav_link_n_image";
buttonType = "RadioButton";
@ -72,7 +71,7 @@ $paletteId = new GuiControl(NavEditorPalette,EditorGuiGroup) {
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "NavEditorGui.setMode(\"CoverMode\");";
Command = "NavEditorGui.setActiveTool(NavMeshTools->NavCoverTool);";
tooltipprofile = "GuiToolTipProfile";
ToolTip = "Edit cover (3).";
DetailedDesc = "";
@ -95,7 +94,7 @@ $paletteId = new GuiControl(NavEditorPalette,EditorGuiGroup) {
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "NavEditorGui.setMode(\"TileMode\");";
Command = "NavEditorGui.setActiveTool(NavMeshTools->TileTool);";
tooltipprofile = "GuiToolTipProfile";
ToolTip = "View tiles (4).";
DetailedDesc = "Click to select.";
@ -118,7 +117,7 @@ $paletteId = new GuiControl(NavEditorPalette,EditorGuiGroup) {
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "NavEditorGui.setMode(\"TestMode\");";
Command = "NavEditorGui.setActiveTool(NavMeshTools->TestTool);";
tooltipprofile = "GuiToolTipProfile";
ToolTip = "Test pathfinding (5).";
DetailedDesc = "Click to select/move character, CTRL-click to spawn, SHIFT-click to deselect.";