Merge pull request #78265 from caseyjoy/57068_gridmap_grid_position

Update GridMap editor grid location when required
This commit is contained in:
Rémi Verschelde 2023-06-20 00:04:53 +02:00
commit 3158f6378e
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -704,6 +704,9 @@ EditorPlugin::AfterGUIInput GridMapEditor::forward_spatial_input_event(Camera3D
Ref<InputEventMouseMotion> mm = p_event;
if (mm.is_valid()) {
// Update the grid, to check if the grid needs to be moved to a tile cursor.
update_grid();
if (do_input_action(p_camera, mm->get_position(), false)) {
return EditorPlugin::AFTER_GUI_INPUT_STOP;
}
@ -951,7 +954,8 @@ void GridMapEditor::update_grid() {
grid_ofs[edit_axis] = edit_floor[edit_axis] * node->get_cell_size()[edit_axis];
edit_grid_xform.origin = grid_ofs;
// If there's a valid tile cursor, offset the grid, otherwise move it back to the node.
edit_grid_xform.origin = cursor_instance.is_valid() ? grid_ofs : Vector3();
edit_grid_xform.basis = Basis();
for (int i = 0; i < 3; i++) {
@ -1076,6 +1080,9 @@ void GridMapEditor::_notification(int p_what) {
Ref<MeshLibrary> cgmt = node->get_mesh_library();
if (cgmt.operator->() != last_mesh_library) {
update_palette();
// Update the cursor and grid in case the library is changed or removed.
_update_cursor_instance();
update_grid();
}
} break;