@@ -494,7 +494,10 @@ def remove_terrain_layer_nodes(terrain_info_object: Object, nodes):
494494 remove_terrain_layer_node (terrain_info_object , nodes , node_index )
495495
496496
497- def remove_terrain_layer_node (terrain_info_object : Object , nodes , nodes_index : int ):
497+ def remove_terrain_layer_node (terrain_info_object : Object , nodes , nodes_index : int ) -> bool :
498+ if nodes_index < 0 or nodes_index >= len (nodes ):
499+ return False
500+
498501 node = nodes [nodes_index ]
499502
500503 if node .type == 'PAINT' :
@@ -509,6 +512,8 @@ def remove_terrain_layer_node(terrain_info_object: Object, nodes, nodes_index: i
509512
510513 nodes .remove (nodes_index )
511514
515+ return True
516+
512517
513518def move_terrain_layer_node (direction : str , nodes , nodes_index : int ) -> int :
514519 match direction :
@@ -574,7 +579,8 @@ def execute(self, context: Context):
574579 deco_layers_index = terrain_info .deco_layers_index
575580 deco_layer : 'BDK_PG_terrain_deco_layer' = deco_layers [deco_layers_index ]
576581
577- remove_terrain_layer_node (context .active_object , deco_layer .nodes , deco_layer .nodes_index )
582+ if not remove_terrain_layer_node (context .active_object , deco_layer .nodes , deco_layer .nodes_index ):
583+ return {'CANCELLED' }
578584
579585 ensure_deco_layers (context .active_object )
580586
@@ -646,7 +652,8 @@ def execute(self, context: Context):
646652 paint_layers_index = terrain_info .paint_layers_index
647653 paint_layer = paint_layers [paint_layers_index ]
648654
649- remove_terrain_layer_node (context .active_object , paint_layer .nodes , paint_layer .nodes_index )
655+ if not remove_terrain_layer_node (context .active_object , paint_layer .nodes , paint_layer .nodes_index ):
656+ return {'CANCELLED' }
650657
651658 ensure_terrain_layer_node_group (paint_layer .id , 'paint_layers' , paint_layers_index , paint_layer .id , paint_layer .nodes , context .active_object )
652659
0 commit comments