Merge branch 'AreaTool_fix' into 'ground_effects_editor'

bugfix: You can now select areas using the AreaTool again (CTRL+Left Click)

See merge request T1ti/noggit-red!12
This commit is contained in:
T1ti
2025-01-04 12:15:44 +00:00
4 changed files with 41 additions and 30 deletions

View File

@@ -3972,7 +3972,11 @@ void MapView::mousePressEvent(QMouseEvent* event)
activeTool()->onMousePress({
.button = event->button(),
.mouse_position = event->pos(),
.mod_shift_down = _mod_shift_down,
.mod_ctrl_down = _mod_ctrl_down,
.mod_alt_down = _mod_alt_down,
.mod_num_down = _mod_num_down,
.mod_space_down = _mod_space_down,
});
switch (event->button())

View File

@@ -56,7 +56,11 @@ namespace Noggit
{
Qt::MouseButton button = Qt::MouseButton::NoButton;
QPoint mouse_position;
bool mod_shift_down = false;
bool mod_ctrl_down = false;
bool mod_alt_down = false;
bool mod_num_down = false;
bool mod_space_down = false;
};
struct MouseReleaseParameters

View File

@@ -85,9 +85,17 @@ namespace Noggit
mapView()->getWorld()->renderer()->getTerrainParamsUniformBlock()->draw_areaid_overlay = false;
}
void AreaTool::onTick(float deltaTime, TickParameters const& params)
void AreaTool::onMouseMove(MouseMoveParameters const& params)
{
if (!mapView()->getWorld()->has_selection() || params.underMap || !params.left_mouse)
if (params.left_mouse && params.mod_alt_down && !params.mod_shift_down && !params.mod_ctrl_down)
{
_areaTool->changeRadius(params.relative_movement.dx() / XSENS);
}
}
void AreaTool::onMousePress(MousePressParameters const& params)
{
if (params.button != Qt::LeftButton)
{
return;
}
@@ -102,6 +110,8 @@ namespace Noggit
}
else if(params.mod_ctrl_down)
{
mapView()->doSelection(true);
for (auto&& selection : mapView()->getWorld()->current_selection())
{
MapChunk* chnk(std::get<selected_chunk_type>(selection).chunk);
@@ -109,14 +119,7 @@ namespace Noggit
_selectedAreaId = newID;
_areaTool->setZoneID(newID);
}
}
}
void AreaTool::onMouseMove(MouseMoveParameters const& params)
{
if (params.left_mouse && params.mod_alt_down && !params.mod_shift_down && !params.mod_ctrl_down)
{
_areaTool->changeRadius(params.relative_movement.dx() / XSENS);
return;
}
}
}

View File

@@ -37,10 +37,10 @@ namespace Noggit
virtual void onDeselected();
void onTick(float deltaTime, TickParameters const& params) override;
void onMouseMove(MouseMoveParameters const& params) override;
void onMousePress(MousePressParameters const& params) override;
private:
Ui::zone_id_browser* _areaTool = nullptr;
int _selectedAreaId = -1;