MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / _notification

Method _notification

modules/gridmap/editor/grid_map_editor_plugin.cpp:1152–1237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1150}
1151
1152void GridMapEditor::_notification(int p_what) {
1153 switch (p_what) {
1154 case NOTIFICATION_ENTER_TREE: {
1155 mesh_library_palette->connect(SceneStringName(item_selected), callable_mp(this, &GridMapEditor::_item_selected_cbk));
1156
1157 const RID scenario = get_tree()->get_root()->get_world_3d()->get_scenario();
1158
1159 for (int i = 0; i < 3; i++) {
1160 grid[i] = RS::get_singleton()->mesh_create();
1161 grid_instance[i] = RS::get_singleton()->instance_create2(grid[i], scenario);
1162 RenderingServer::get_singleton()->instance_set_layer_mask(grid_instance[i], 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
1163 selection_level_instance[i] = RenderingServer::get_singleton()->instance_create2(selection_level_mesh[i], scenario);
1164 RenderingServer::get_singleton()->instance_set_layer_mask(selection_level_instance[i], 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
1165 }
1166
1167 cursor_instance = RenderingServer::get_singleton()->instance_create2(cursor_mesh, scenario);
1168 RenderingServer::get_singleton()->instance_set_layer_mask(cursor_instance, 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
1169 RenderingServer::get_singleton()->instance_set_visible(cursor_instance, false);
1170 selection_instance = RenderingServer::get_singleton()->instance_create2(selection_mesh, scenario);
1171 RenderingServer::get_singleton()->instance_set_layer_mask(selection_instance, 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
1172 paste_instance = RenderingServer::get_singleton()->instance_create2(paste_mesh, scenario);
1173 RenderingServer::get_singleton()->instance_set_layer_mask(paste_instance, 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
1174
1175 _update_selection_transform();
1176 _update_paste_indicator();
1177 _update_theme();
1178 } break;
1179
1180 case NOTIFICATION_EXIT_TREE: {
1181 _clear_clipboard_data();
1182
1183 for (int i = 0; i < 3; i++) {
1184 RS::get_singleton()->free(grid_instance[i]);
1185 RS::get_singleton()->free(grid[i]);
1186 grid_instance[i] = RID();
1187 grid[i] = RID();
1188 RenderingServer::get_singleton()->free(selection_level_instance[i]);
1189 }
1190
1191 RenderingServer::get_singleton()->free(cursor_instance);
1192 RenderingServer::get_singleton()->free(selection_instance);
1193 RenderingServer::get_singleton()->free(paste_instance);
1194 cursor_instance = RID();
1195 selection_instance = RID();
1196 paste_instance = RID();
1197 } break;
1198
1199 case NOTIFICATION_PROCESS: {
1200 if (!node) {
1201 return;
1202 }
1203
1204 Transform3D xf = node->get_global_transform();
1205
1206 if (xf != grid_xform) {
1207 for (int i = 0; i < 3; i++) {
1208 RS::get_singleton()->instance_set_transform(grid_instance[i], xf * edit_grid_xform);
1209 }

Callers

nothing calls this directly

Calls 15

RIDClass · 0.85
ED_SHORTCUT_AND_COMMANDFunction · 0.85
get_scenarioMethod · 0.80
instance_create2Method · 0.80
instance_set_visibleMethod · 0.80
set_button_indexMethod · 0.80
set_h_size_flagsMethod · 0.80
set_v_size_flagsMethod · 0.80
connectMethod · 0.65

Tested by

no test coverage detected