Browse Source

Merge pull request #92016 from KoBeWi/pick_layers_like_a_boss

Allow selecting TileMapLayers by clicking them
Rémi Verschelde 1 year ago
parent
commit
d71c85ce5f
2 changed files with 10 additions and 0 deletions
  1. 6 0
      scene/2d/tile_map_layer.cpp
  2. 4 0
      scene/2d/tile_map_layer.h

+ 6 - 0
scene/2d/tile_map_layer.cpp

@@ -1887,6 +1887,12 @@ void TileMapLayer::_update_self_texture_repeat(RS::CanvasItemTextureRepeat p_tex
 	emit_signal(CoreStringName(changed));
 }
 
+#ifdef TOOLS_ENABLED
+bool TileMapLayer::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const {
+	return get_cell_source_id(local_to_map(p_point)) != TileSet::INVALID_SOURCE;
+}
+#endif
+
 void TileMapLayer::set_as_tile_map_internal_node(int p_index) {
 	// Compatibility with TileMap.
 	ERR_FAIL_NULL(get_parent());

+ 4 - 0
scene/2d/tile_map_layer.h

@@ -393,6 +393,10 @@ protected:
 	virtual void _update_self_texture_repeat(RS::CanvasItemTextureRepeat p_texture_repeat) override;
 
 public:
+#ifdef TOOLS_ENABLED
+	virtual bool _edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const override;
+#endif
+
 	// TileMap node.
 	void set_as_tile_map_internal_node(int p_index);
 	int get_index_in_tile_map() const {