mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Fix applying TileMapLayer.self_modulate to tiles
This commit is contained in:
parent
594d64ec24
commit
943bec398f
2 changed files with 5 additions and 4 deletions
|
|
@ -301,6 +301,7 @@ void TileMapLayer::_rendering_update(bool p_force_cleanup) {
|
|||
rs->canvas_item_set_light_mask(ci, get_light_mask());
|
||||
rs->canvas_item_set_z_as_relative_to_parent(ci, true);
|
||||
rs->canvas_item_set_z_index(ci, tile_z_index);
|
||||
rs->canvas_item_set_self_modulate(ci, get_self_modulate());
|
||||
|
||||
rs->canvas_item_set_default_texture_filter(ci, RS::CanvasItemTextureFilter(get_texture_filter_in_tree()));
|
||||
rs->canvas_item_set_default_texture_repeat(ci, RS::CanvasItemTextureRepeat(get_texture_repeat_in_tree()));
|
||||
|
|
@ -328,7 +329,7 @@ void TileMapLayer::_rendering_update(bool p_force_cleanup) {
|
|||
}
|
||||
|
||||
// Drawing the tile in the canvas item.
|
||||
draw_tile(ci, local_tile_pos - rendering_quadrant->canvas_items_position, tile_set, cell_data.cell.source_id, cell_data.cell.get_atlas_coords(), cell_data.cell.alternative_tile, -1, get_self_modulate(), tile_data, random_animation_offset);
|
||||
draw_tile(ci, local_tile_pos - rendering_quadrant->canvas_items_position, tile_set, cell_data.cell.source_id, cell_data.cell.get_atlas_coords(), cell_data.cell.alternative_tile, -1, tile_data, random_animation_offset);
|
||||
}
|
||||
|
||||
// Reset physics interpolation for any recreated canvas items.
|
||||
|
|
@ -2458,7 +2459,7 @@ TileMapCell TileMapLayer::get_cell(const Vector2i &p_coords) const {
|
|||
}
|
||||
}
|
||||
|
||||
void TileMapLayer::draw_tile(RID p_canvas_item, const Vector2 &p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, const Vector2i &p_atlas_coords, int p_alternative_tile, int p_frame, Color p_modulation, const TileData *p_tile_data_override, real_t p_normalized_animation_offset) {
|
||||
void TileMapLayer::draw_tile(RID p_canvas_item, const Vector2 &p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, const Vector2i &p_atlas_coords, int p_alternative_tile, int p_frame, const TileData *p_tile_data_override, real_t p_normalized_animation_offset) {
|
||||
ERR_FAIL_COND(p_tile_set.is_null());
|
||||
ERR_FAIL_COND(!p_tile_set->has_source(p_atlas_source_id));
|
||||
ERR_FAIL_COND(!p_tile_set->get_source(p_atlas_source_id)->has_tile(p_atlas_coords));
|
||||
|
|
@ -2487,7 +2488,7 @@ void TileMapLayer::draw_tile(RID p_canvas_item, const Vector2 &p_position, const
|
|||
const TileData *tile_data = p_tile_data_override ? p_tile_data_override : atlas_source->get_tile_data(p_atlas_coords, p_alternative_tile);
|
||||
|
||||
// Get the tile modulation.
|
||||
Color modulate = tile_data->get_modulate() * p_modulation;
|
||||
Color modulate = tile_data->get_modulate();
|
||||
|
||||
// Compute the offset.
|
||||
Vector2 tile_offset = tile_data->get_texture_origin();
|
||||
|
|
|
|||
|
|
@ -513,7 +513,7 @@ public:
|
|||
// Not exposed to users.
|
||||
TileMapCell get_cell(const Vector2i &p_coords) const;
|
||||
|
||||
static void draw_tile(RID p_canvas_item, const Vector2 &p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, const Vector2i &p_atlas_coords, int p_alternative_tile, int p_frame = -1, Color p_modulation = Color(1.0, 1.0, 1.0, 1.0), const TileData *p_tile_data_override = nullptr, real_t p_normalized_animation_offset = 0.0);
|
||||
static void draw_tile(RID p_canvas_item, const Vector2 &p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, const Vector2i &p_atlas_coords, int p_alternative_tile, int p_frame = -1, const TileData *p_tile_data_override = nullptr, real_t p_normalized_animation_offset = 0.0);
|
||||
|
||||
////////////// Exposed functions //////////////
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue