/// <summary>
        /// Saves the current data in <see cref="Clusters"/>.
        /// </summary>
        public void Save()
        {
            m_BuildableDirectory.WaitDestroyHandle();
            var river = new RiverExpanded(ServerSavedata.directory + "/" + Provider.serverID + "/Level/" +
                                          Level.info.name + "/Bases.dat");

            river.WriteInt32(m_BuildableDirectory.Buildables.Count);
            var clusters = Clusters;

            river.WriteInt32(clusters.Count);
            foreach (var cluster in clusters)
            {
                river.WriteInt32(cluster.InstanceId);
                river.WriteBoolean(cluster.IsGlobalCluster);
                river.WriteInt32(cluster.Buildables.Count);
                foreach (var build in cluster.Buildables)
                {
                    river.WriteUInt32(build.InstanceId);
                    river.WriteBoolean(build is StructureBuildable);
                }
            }

            river.CloseRiver();
        }