@@ -4981,7 +4981,7 @@ void TileSetAtlasSource::create_tile(const Vector2i p_atlas_coords, const Vector
49814981 _create_coords_mapping_cache (p_atlas_coords);
49824982 _queue_update_padded_texture ();
49834983
4984- emit_signal ( SNAME ( " changed " ) );
4984+ _try_emit_changed ( );
49854985}
49864986
49874987void TileSetAtlasSource::remove_tile (Vector2i p_atlas_coords) {
@@ -5002,7 +5002,7 @@ void TileSetAtlasSource::remove_tile(Vector2i p_atlas_coords) {
50025002
50035003 _queue_update_padded_texture ();
50045004
5005- emit_signal ( SNAME ( " changed " ) );
5005+ _try_emit_changed ( );
50065006}
50075007
50085008bool TileSetAtlasSource::has_tile (Vector2i p_atlas_coords) const {
@@ -5032,7 +5032,7 @@ void TileSetAtlasSource::set_tile_animation_columns(const Vector2i p_atlas_coord
50325032 _create_coords_mapping_cache (p_atlas_coords);
50335033 _queue_update_padded_texture ();
50345034
5035- emit_signal ( SNAME ( " changed " ) );
5035+ _try_emit_changed ( );
50365036}
50375037
50385038int TileSetAtlasSource::get_tile_animation_columns (const Vector2i p_atlas_coords) const {
@@ -5055,7 +5055,7 @@ void TileSetAtlasSource::set_tile_animation_separation(const Vector2i p_atlas_co
50555055 _create_coords_mapping_cache (p_atlas_coords);
50565056 _queue_update_padded_texture ();
50575057
5058- emit_signal ( SNAME ( " changed " ) );
5058+ _try_emit_changed ( );
50595059}
50605060
50615061Vector2i TileSetAtlasSource::get_tile_animation_separation (const Vector2i p_atlas_coords) const {
@@ -5069,7 +5069,7 @@ void TileSetAtlasSource::set_tile_animation_speed(const Vector2i p_atlas_coords,
50695069
50705070 tiles[p_atlas_coords].animation_speed = p_speed;
50715071
5072- emit_signal ( SNAME ( " changed " ) );
5072+ _try_emit_changed ( );
50735073}
50745074
50755075real_t TileSetAtlasSource::get_tile_animation_speed (const Vector2i p_atlas_coords) const {
@@ -5082,7 +5082,7 @@ void TileSetAtlasSource::set_tile_animation_mode(const Vector2i p_atlas_coords,
50825082
50835083 tiles[p_atlas_coords].animation_mode = p_mode;
50845084
5085- emit_signal ( SNAME ( " changed " ) );
5085+ _try_emit_changed ( );
50865086}
50875087
50885088TileSetAtlasSource::TileAnimationMode TileSetAtlasSource::get_tile_animation_mode (const Vector2i p_atlas_coords) const {
@@ -5116,7 +5116,7 @@ void TileSetAtlasSource::set_tile_animation_frames_count(const Vector2i p_atlas_
51165116
51175117 notify_property_list_changed ();
51185118
5119- emit_signal ( SNAME ( " changed " ) );
5119+ _try_emit_changed ( );
51205120}
51215121
51225122int TileSetAtlasSource::get_tile_animation_frames_count (const Vector2i p_atlas_coords) const {
@@ -5131,7 +5131,7 @@ void TileSetAtlasSource::set_tile_animation_frame_duration(const Vector2i p_atla
51315131
51325132 tiles[p_atlas_coords].animation_frames_durations [p_frame_index] = p_duration;
51335133
5134- emit_signal ( SNAME ( " changed " ) );
5134+ _try_emit_changed ( );
51355135}
51365136
51375137real_t TileSetAtlasSource::get_tile_animation_frame_duration (const Vector2i p_atlas_coords, int p_frame_index) const {
@@ -5341,7 +5341,7 @@ void TileSetAtlasSource::move_tile_in_atlas(Vector2i p_atlas_coords, Vector2i p_
53415341 _create_coords_mapping_cache (new_atlas_coords);
53425342 _queue_update_padded_texture ();
53435343
5344- emit_signal ( SNAME ( " changed " ) );
5344+ _try_emit_changed ( );
53455345}
53465346
53475347int TileSetAtlasSource::create_alternative_tile (const Vector2i p_atlas_coords, int p_alternative_id_override) {
@@ -5359,7 +5359,7 @@ int TileSetAtlasSource::create_alternative_tile(const Vector2i p_atlas_coords, i
53595359 tiles[p_atlas_coords].alternatives_ids .sort ();
53605360 _compute_next_alternative_id (p_atlas_coords);
53615361
5362- emit_signal ( SNAME ( " changed " ) );
5362+ _try_emit_changed ( );
53635363
53645364 return new_alternative_id;
53655365}
@@ -5375,7 +5375,7 @@ void TileSetAtlasSource::remove_alternative_tile(const Vector2i p_atlas_coords,
53755375 tiles[p_atlas_coords].alternatives_ids .erase (p_alternative_tile);
53765376 tiles[p_atlas_coords].alternatives_ids .sort ();
53775377
5378- emit_signal ( SNAME ( " changed " ) );
5378+ _try_emit_changed ( );
53795379}
53805380
53815381void TileSetAtlasSource::set_alternative_tile_id (const Vector2i p_atlas_coords, int p_alternative_tile, int p_new_id) {
@@ -5393,7 +5393,7 @@ void TileSetAtlasSource::set_alternative_tile_id(const Vector2i p_atlas_coords,
53935393 tiles[p_atlas_coords].alternatives_ids .erase (p_alternative_tile);
53945394 tiles[p_atlas_coords].alternatives_ids .sort ();
53955395
5396- emit_signal ( SNAME ( " changed " ) );
5396+ _try_emit_changed ( );
53975397}
53985398
53995399bool TileSetAtlasSource::has_alternative_tile (const Vector2i p_atlas_coords, int p_alternative_tile) const {
@@ -5427,6 +5427,12 @@ TileData *TileSetAtlasSource::get_tile_data(const Vector2i p_atlas_coords, int p
54275427 return tiles[p_atlas_coords].alternatives [p_alternative_tile];
54285428}
54295429
5430+ void TileSetAtlasSource::_notification (int p_notification) {
5431+ if (p_notification == NOTIFICATION_POSTINITIALIZE) {
5432+ initializing = false ;
5433+ }
5434+ }
5435+
54305436void TileSetAtlasSource::_bind_methods () {
54315437 ClassDB::bind_method (D_METHOD (" set_texture" , " texture" ), &TileSetAtlasSource::set_texture);
54325438 ClassDB::bind_method (D_METHOD (" get_texture" ), &TileSetAtlasSource::get_texture);
@@ -5569,6 +5575,9 @@ void TileSetAtlasSource::_create_coords_mapping_cache(Vector2i p_atlas_coords) {
55695575}
55705576
55715577void TileSetAtlasSource::_queue_update_padded_texture () {
5578+ if (padded_texture_needs_update) {
5579+ return ;
5580+ }
55725581 padded_texture_needs_update = true ;
55735582 callable_mp (this , &TileSetAtlasSource::_update_padded_texture).call_deferred ();
55745583}
@@ -5677,6 +5686,12 @@ void TileSetAtlasSource::_update_padded_texture() {
56775686 emit_changed ();
56785687}
56795688
5689+ void TileSetAtlasSource::_try_emit_changed () {
5690+ if (!initializing) {
5691+ emit_changed ();
5692+ }
5693+ }
5694+
56805695// ///////////////////////////// TileSetScenesCollectionSource //////////////////////////////////////
56815696
56825697void TileSetScenesCollectionSource::_compute_next_alternative_id () {
@@ -5685,6 +5700,12 @@ void TileSetScenesCollectionSource::_compute_next_alternative_id() {
56855700 };
56865701}
56875702
5703+ void TileSetScenesCollectionSource::_try_emit_changed () {
5704+ if (!initializing) {
5705+ emit_changed ();
5706+ }
5707+ }
5708+
56885709int TileSetScenesCollectionSource::get_tiles_count () const {
56895710 return 1 ;
56905711}
@@ -5725,7 +5746,7 @@ int TileSetScenesCollectionSource::create_scene_tile(Ref<PackedScene> p_packed_s
57255746 set_scene_tile_scene (new_scene_id, p_packed_scene);
57265747 _compute_next_alternative_id ();
57275748
5728- emit_signal ( SNAME ( " changed " ) );
5749+ _try_emit_changed ( );
57295750
57305751 return new_scene_id;
57315752}
@@ -5745,7 +5766,7 @@ void TileSetScenesCollectionSource::set_scene_tile_id(int p_id, int p_new_id) {
57455766 scenes.erase (p_id);
57465767 scenes_ids.erase (p_id);
57475768
5748- emit_signal ( SNAME ( " changed " ) );
5769+ _try_emit_changed ( );
57495770}
57505771
57515772void TileSetScenesCollectionSource::set_scene_tile_scene (int p_id, Ref<PackedScene> p_packed_scene) {
@@ -5769,7 +5790,7 @@ void TileSetScenesCollectionSource::set_scene_tile_scene(int p_id, Ref<PackedSce
57695790 } else {
57705791 scenes[p_id].scene = Ref<PackedScene>();
57715792 }
5772- emit_signal ( SNAME ( " changed " ) );
5793+ _try_emit_changed ( );
57735794}
57745795
57755796Ref<PackedScene> TileSetScenesCollectionSource::get_scene_tile_scene (int p_id) const {
@@ -5782,7 +5803,7 @@ void TileSetScenesCollectionSource::set_scene_tile_display_placeholder(int p_id,
57825803
57835804 scenes[p_id].display_placeholder = p_display_placeholder;
57845805
5785- emit_signal ( SNAME ( " changed " ) );
5806+ _try_emit_changed ( );
57865807}
57875808
57885809bool TileSetScenesCollectionSource::get_scene_tile_display_placeholder (int p_id) const {
@@ -5795,7 +5816,7 @@ void TileSetScenesCollectionSource::remove_scene_tile(int p_id) {
57955816
57965817 scenes.erase (p_id);
57975818 scenes_ids.erase (p_id);
5798- emit_signal ( SNAME ( " changed " ) );
5819+ _try_emit_changed ( );
57995820}
58005821
58015822int TileSetScenesCollectionSource::get_next_scene_tile_id () const {
@@ -5854,6 +5875,12 @@ void TileSetScenesCollectionSource::_get_property_list(List<PropertyInfo> *p_lis
58545875 }
58555876}
58565877
5878+ void TileSetScenesCollectionSource::_notification (int p_notification) {
5879+ if (p_notification == NOTIFICATION_POSTINITIALIZE) {
5880+ initializing = false ;
5881+ }
5882+ }
5883+
58575884void TileSetScenesCollectionSource::_bind_methods () {
58585885 ClassDB::bind_method (D_METHOD (" get_scene_tiles_count" ), &TileSetScenesCollectionSource::get_scene_tiles_count);
58595886 ClassDB::bind_method (D_METHOD (" get_scene_tile_id" , " index" ), &TileSetScenesCollectionSource::get_scene_tile_id);
0 commit comments