summaryrefslogtreecommitdiffstats
path: root/scene/resources/2d/tile_set.h
diff options
context:
space:
mode:
authorGilles Roudière <gilles.roudiere@gmail.com>2024-06-11 12:59:55 +0200
committerGilles Roudière <gilles.roudiere@gmail.com>2024-09-03 15:38:51 +0200
commitd75c5ec7baaae61d448c293040f19c8b49b06780 (patch)
tree67ca06dad781d96a3eed46d3c504fa01b172131c /scene/resources/2d/tile_set.h
parent8120e0324a48190f58616378746d517e4ad40965 (diff)
downloadredot-engine-d75c5ec7baaae61d448c293040f19c8b49b06780.tar.gz
Implement multiple occlusion polygons within each TileSet occlusion layer
Diffstat (limited to 'scene/resources/2d/tile_set.h')
-rw-r--r--scene/resources/2d/tile_set.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/scene/resources/2d/tile_set.h b/scene/resources/2d/tile_set.h
index 51df972c8d..931495d020 100644
--- a/scene/resources/2d/tile_set.h
+++ b/scene/resources/2d/tile_set.h
@@ -841,8 +841,11 @@ private:
int z_index = 0;
int y_sort_origin = 0;
struct OcclusionLayerTileData {
- Ref<OccluderPolygon2D> occluder;
- mutable HashMap<int, Ref<OccluderPolygon2D>> transformed_occluders;
+ struct PolygonOccluderTileData {
+ Ref<OccluderPolygon2D> occluder_polygon;
+ mutable HashMap<int, Ref<OccluderPolygon2D>> transformed_polygon_occluders;
+ };
+ Vector<PolygonOccluderTileData> polygons;
};
Vector<OcclusionLayerTileData> occluders;
@@ -941,8 +944,17 @@ public:
void set_y_sort_origin(int p_y_sort_origin);
int get_y_sort_origin() const;
+#ifndef DISABLE_DEPRECATED
void set_occluder(int p_layer_id, Ref<OccluderPolygon2D> p_occluder_polygon);
Ref<OccluderPolygon2D> get_occluder(int p_layer_id, bool p_flip_h = false, bool p_flip_v = false, bool p_transpose = false) const;
+#endif // DISABLE_DEPRECATED
+
+ void set_occluder_polygons_count(int p_layer_id, int p_polygons_count);
+ int get_occluder_polygons_count(int p_layer_id) const;
+ void add_occluder_polygon(int p_layer_id);
+ void remove_occluder_polygon(int p_layer_id, int p_polygon_index);
+ void set_occluder_polygon(int p_layer_id, int p_polygon_index, const Ref<OccluderPolygon2D> &p_occluder_polygon);
+ Ref<OccluderPolygon2D> get_occluder_polygon(int p_layer_id, int p_polygon_index, bool p_flip_h = false, bool p_flip_v = false, bool p_transpose = false) const;
// Physics
void set_constant_linear_velocity(int p_layer_id, const Vector2 &p_velocity);