-Make tilemap able to change light mask, fixes #2557
This commit is contained in:
parent
77b5b4f4df
commit
5063cd7757
@ -197,7 +197,7 @@ public:
|
||||
void set_blend_mode(BlendMode p_blend_mode);
|
||||
BlendMode get_blend_mode() const;
|
||||
|
||||
void set_light_mask(int p_light_mask);
|
||||
virtual void set_light_mask(int p_light_mask);
|
||||
int get_light_mask() const;
|
||||
|
||||
void set_opacity(float p_opacity);
|
||||
|
@ -333,6 +333,8 @@ void TileMap::_update_dirty_quadrants() {
|
||||
Matrix32 xform;
|
||||
xform.set_origin( q.pos );
|
||||
vs->canvas_item_set_transform( canvas_item, xform );
|
||||
vs->canvas_item_set_light_mask(canvas_item,get_light_mask());
|
||||
|
||||
q.canvas_items.push_back(canvas_item);
|
||||
|
||||
if (debug_shapes) {
|
||||
@ -1105,7 +1107,16 @@ int TileMap::get_occluder_light_mask() const{
|
||||
return occluder_light_mask;
|
||||
}
|
||||
|
||||
void TileMap::set_light_mask(int p_light_mask) {
|
||||
|
||||
CanvasItem::set_light_mask(p_light_mask);
|
||||
for (Map<PosKey,Quadrant>::Element *E=quadrant_map.front();E;E=E->next()) {
|
||||
|
||||
for (List<RID>::Element *F=E->get().canvas_items.front();F;F=F->next()) {
|
||||
VisualServer::get_singleton()->canvas_item_set_light_mask(F->get(),get_light_mask());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TileMap::_bind_methods() {
|
||||
|
||||
|
@ -253,6 +253,8 @@ public:
|
||||
void set_occluder_light_mask(int p_mask);
|
||||
int get_occluder_light_mask() const;
|
||||
|
||||
virtual void set_light_mask(int p_light_mask);
|
||||
|
||||
void clear();
|
||||
|
||||
TileMap();
|
||||
|
Loading…
Reference in New Issue
Block a user