-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);
|
void set_blend_mode(BlendMode p_blend_mode);
|
||||||
BlendMode get_blend_mode() const;
|
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;
|
int get_light_mask() const;
|
||||||
|
|
||||||
void set_opacity(float p_opacity);
|
void set_opacity(float p_opacity);
|
||||||
|
@ -333,6 +333,8 @@ void TileMap::_update_dirty_quadrants() {
|
|||||||
Matrix32 xform;
|
Matrix32 xform;
|
||||||
xform.set_origin( q.pos );
|
xform.set_origin( q.pos );
|
||||||
vs->canvas_item_set_transform( canvas_item, xform );
|
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);
|
q.canvas_items.push_back(canvas_item);
|
||||||
|
|
||||||
if (debug_shapes) {
|
if (debug_shapes) {
|
||||||
@ -1105,7 +1107,16 @@ int TileMap::get_occluder_light_mask() const{
|
|||||||
return occluder_light_mask;
|
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() {
|
void TileMap::_bind_methods() {
|
||||||
|
|
||||||
|
@ -253,6 +253,8 @@ public:
|
|||||||
void set_occluder_light_mask(int p_mask);
|
void set_occluder_light_mask(int p_mask);
|
||||||
int get_occluder_light_mask() const;
|
int get_occluder_light_mask() const;
|
||||||
|
|
||||||
|
virtual void set_light_mask(int p_light_mask);
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
TileMap();
|
TileMap();
|
||||||
|
Loading…
Reference in New Issue
Block a user