### Godot version

v4.2.stable.official [46dc27791]

### System information

Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Forward+) - integrated Intel(R) HD Graphics 630 (Intel Corporation; 31.0.101.2111) - Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz (4 Threads)

### Issue description

I have a tileset that disables its visibility during it's `_ready()` function. The tileset is made up of scene tiles. I didn't have a problem with this until recently I discovered my player goes right through the tiles unless they're visible. This didn't happen before, it could be something to do with the 4.2 update.

### Steps to reproduce

In my minimal reproduction project I removed the script that disables the tileset's visibility.

- Run the game with the tileset visible and use wasd keys to move downward. The tileset should block the player (it's using `move_and_slide()`).
- Run the game with the tileset non-visible and use wasd keys to move downward. The tileset isn't block the player.

### Minimal reproduction project

[Bug Demo.zip](https://github.com/godotengine/godot/files/13531278/Bug.Demo.zip)

r_property = default_layer->get_z_index();
			return true;
		} else if (components[1] == "navigation_enabled") {
			r_property = default_layer->is_navigation_enabled();
			return true;
		}
	}
	return false;
}
Vector2 TileMap::map_to_local(const Vector2i &p_pos) const {
	
	ERR_FAIL_COND_V(!tile_set.is_valid(), Vector2());
	Vector2 ret = p_pos;
	TileSet::TileShape tile_shape = tile_set->get_tile_shape();
	TileSet::TileOffsetAxis tile_offset_axis = tile_set->get_tile_offset_axis();
	if (tile_shape == TileSet::TILE_SHAPE_HALF_OFFSET_SQUARE || tile_shape == TileSet::TILE_SHAPE_HEXAGON || tile_shape == TileSet::TILE_SHAPE_ISOMETRIC) {
		
		
		if (tile_offset_axis == TileSet::TILE_OFFSET_AXIS_HORIZONTAL) {
			switch (tile_set->get_tile_layout()) {
				case TileSet::TILE_LAYOUT_STACKED:
					ret = Vector2(ret.x + (Math::posmod(ret.y, 2) == 0 ? 0.0 : 0.5), ret.y);
					break;
				case TileSet::TILE_LAYOUT_STACKED_OFFSET:
					ret = Vector2(ret.x + (Math::posmod(ret.y, 2) == 1 ? 0.0 : 0.5), ret.y);
					break;
				case TileSet::TILE_LAYOUT_STAIRS_RIGHT:
					ret = Vector2(ret.x + ret.y / 2, ret.y);
					break;
				case TileSet::TILE_LAYOUT_STAIRS_DOWN: