]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/client/client.cpp
Remove unused ITextSceneNode header (#11476)
[dragonfireclient.git] / src / client / client.cpp
index 15979df02581a2f668e674edd5607553492028f6..17661c2421daea99821362e2904626c805281507 100644 (file)
@@ -110,7 +110,7 @@ Client::Client(
        m_rendering_engine(rendering_engine),
        m_mesh_update_thread(this),
        m_env(
-               new ClientMap(this, control, 666),
+               new ClientMap(this, rendering_engine, control, 666),
                tsrc, this
        ),
        m_particle_manager(&m_env),
@@ -210,6 +210,9 @@ void Client::scanModSubfolder(const std::string &mod_name, const std::string &mo
        std::string full_path = mod_path + DIR_DELIM + mod_subpath;
        std::vector<fs::DirListNode> mod = fs::GetDirListing(full_path);
        for (const fs::DirListNode &j : mod) {
+               if (j.name[0] == '.')
+                       continue;
+
                if (j.dir) {
                        scanModSubfolder(mod_name, mod_path, mod_subpath + j.name + DIR_DELIM);
                        continue;
@@ -725,72 +728,6 @@ bool Client::loadMedia(const std::string &data, const std::string &filename,
        return false;
 }
 
-bool Client::extractZipFile(const char *filename, const std::string &destination)
-{
-       auto fs = m_rendering_engine->get_filesystem();
-
-       if (!fs->addFileArchive(filename, false, false, io::EFAT_ZIP)) {
-               return false;
-       }
-
-       sanity_check(fs->getFileArchiveCount() > 0);
-
-       /**********************************************************************/
-       /* WARNING this is not threadsafe!!                                   */
-       /**********************************************************************/
-       io::IFileArchive* opened_zip = fs->getFileArchive(fs->getFileArchiveCount() - 1);
-
-       const io::IFileList* files_in_zip = opened_zip->getFileList();
-
-       unsigned int number_of_files = files_in_zip->getFileCount();
-
-       for (unsigned int i=0; i < number_of_files; i++) {
-               std::string fullpath = destination;
-               fullpath += DIR_DELIM;
-               fullpath += files_in_zip->getFullFileName(i).c_str();
-               std::string fullpath_dir = fs::RemoveLastPathComponent(fullpath);
-
-               if (!files_in_zip->isDirectory(i)) {
-                       if (!fs::PathExists(fullpath_dir) && !fs::CreateAllDirs(fullpath_dir)) {
-                               fs->removeFileArchive(fs->getFileArchiveCount()-1);
-                               return false;
-                       }
-
-                       io::IReadFile* toread = opened_zip->createAndOpenFile(i);
-
-                       FILE *targetfile = fopen(fullpath.c_str(),"wb");
-
-                       if (targetfile == NULL) {
-                               fs->removeFileArchive(fs->getFileArchiveCount()-1);
-                               return false;
-                       }
-
-                       char read_buffer[1024];
-                       long total_read = 0;
-
-                       while (total_read < toread->getSize()) {
-
-                               unsigned int bytes_read =
-                                               toread->read(read_buffer,sizeof(read_buffer));
-                               if ((bytes_read == 0 ) ||
-                                       (fwrite(read_buffer, 1, bytes_read, targetfile) != bytes_read))
-                               {
-                                       fclose(targetfile);
-                                       fs->removeFileArchive(fs->getFileArchiveCount() - 1);
-                                       return false;
-                               }
-                               total_read += bytes_read;
-                       }
-
-                       fclose(targetfile);
-               }
-
-       }
-
-       fs->removeFileArchive(fs->getFileArchiveCount() - 1);
-       return true;
-}
-
 // Virtual methods from con::PeerHandler
 void Client::peerAdded(con::Peer *peer)
 {
@@ -1475,6 +1412,11 @@ bool Client::updateWieldedItem()
        return true;
 }
 
+scene::ISceneManager* Client::getSceneManager()
+{
+       return m_rendering_engine->get_scene_manager();
+}
+
 Inventory* Client::getInventory(const InventoryLocation &loc)
 {
        switch(loc.type){
@@ -1726,7 +1668,7 @@ typedef struct TextureUpdateArgs {
        ITextureSource *tsrc;
 } TextureUpdateArgs;
 
-void texture_update_progress(void *args, u32 progress, u32 max_progress)
+void Client::showUpdateProgressTexture(void *args, u32 progress, u32 max_progress)
 {
                TextureUpdateArgs* targs = (TextureUpdateArgs*) args;
                u16 cur_percent = ceil(progress / (double) max_progress * 100.);
@@ -1745,7 +1687,7 @@ void texture_update_progress(void *args, u32 progress, u32 max_progress)
                        targs->last_time_ms = time_ms;
                        std::basic_stringstream<wchar_t> strm;
                        strm << targs->text_base << " " << targs->last_percent << "%...";
-                       RenderingEngine::draw_load_screen(strm.str(), targs->guienv, targs->tsrc, 0,
+                       m_rendering_engine->draw_load_screen(strm.str(), targs->guienv, targs->tsrc, 0,
                                72 + (u16) ((18. / 100.) * (double) targs->last_percent), true);
                }
 }
@@ -1766,21 +1708,21 @@ void Client::afterContentReceived()
 
        // Rebuild inherited images and recreate textures
        infostream<<"- Rebuilding images and textures"<<std::endl;
-       RenderingEngine::draw_load_screen(text, guienv, m_tsrc, 0, 70);
+       m_rendering_engine->draw_load_screen(text, guienv, m_tsrc, 0, 70);
        m_tsrc->rebuildImagesAndTextures();
        delete[] text;
 
        // Rebuild shaders
        infostream<<"- Rebuilding shaders"<<std::endl;
        text = wgettext("Rebuilding shaders...");
-       RenderingEngine::draw_load_screen(text, guienv, m_tsrc, 0, 71);
+       m_rendering_engine->draw_load_screen(text, guienv, m_tsrc, 0, 71);
        m_shsrc->rebuildShaders();
        delete[] text;
 
        // Update node aliases
        infostream<<"- Updating node aliases"<<std::endl;
        text = wgettext("Initializing nodes...");
-       RenderingEngine::draw_load_screen(text, guienv, m_tsrc, 0, 72);
+       m_rendering_engine->draw_load_screen(text, guienv, m_tsrc, 0, 72);
        m_nodedef->updateAliases(m_itemdef);
        for (const auto &path : getTextureDirs()) {
                TextureOverrideSource override_source(path + DIR_DELIM + "override.txt");
@@ -1799,7 +1741,7 @@ void Client::afterContentReceived()
        tu_args.last_percent = 0;
        tu_args.text_base =  wgettext("Initializing nodes");
        tu_args.tsrc = m_tsrc;
-       m_nodedef->updateTextures(this, texture_update_progress, &tu_args);
+       m_nodedef->updateTextures(this, &tu_args);
        delete[] tu_args.text_base;
 
        // Start mesh update thread after setting up content definitions
@@ -1813,7 +1755,7 @@ void Client::afterContentReceived()
                m_script->on_client_ready(m_env.getLocalPlayer());
 
        text = wgettext("Done!");
-       RenderingEngine::draw_load_screen(text, guienv, m_tsrc, 0, 100);
+       m_rendering_engine->draw_load_screen(text, guienv, m_tsrc, 0, 100);
        infostream<<"Client::afterContentReceived() done"<<std::endl;
        delete[] text;
 }
@@ -1831,7 +1773,7 @@ float Client::getCurRate()
 
 void Client::makeScreenshot()
 {
-       irr::video::IVideoDriver *driver = RenderingEngine::get_video_driver();
+       irr::video::IVideoDriver *driver = m_rendering_engine->get_video_driver();
        irr::video::IImage* const raw_image = driver->createScreenShot();
 
        if (!raw_image)