فهرست منبع

Allow selecting TileMapLayers by clicking them

kobewi 1 سال پیش
والد
کامیت
b758222761
2فایلهای تغییر یافته به همراه10 افزوده شده و 0 حذف شده
  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

@@ -1829,6 +1829,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

@@ -386,6 +386,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 {