]> git.lizzy.rs Git - minetest.git/blobdiff - src/main.cpp
removed furnace menu because it is not needed anymore
[minetest.git] / src / main.cpp
index 2cde3b302f66765b7cefdb83f514cd1027d072b7..455e0ac9bd329c9e0ae397c0586e7a8d313e5897 100644 (file)
@@ -89,6 +89,17 @@ SUGG: Make a system for pregenerating quick information for mapblocks, so
          that the client can show them as cubes before they are actually sent\r
          or even generated.\r
 \r
+SUGG: Erosion simulation at map generation time\r
+       - Simulate water flows, which would carve out dirt fast and\r
+         then turn stone into gravel and sand and relocate it.\r
+       - How about relocating minerals, too? Coal and gold in\r
+         downstream sand and gravel would be kind of cool\r
+         - This would need a better way of handling minerals, mainly\r
+               to have mineral content as a separate field. the first\r
+               parameter field is free for this.\r
+       - Simulate rock falling from cliffs when water has removed\r
+         enough solid rock from the bottom\r
+\r
 Gaming ideas:\r
 -------------\r
 \r
@@ -172,7 +183,8 @@ TODO: A setting for enabling bilinear filtering for textures
 \r
 TODO: Better control of draw_control.wanted_max_blocks\r
 \r
-TODO: Block mesh generator to tile properly on smooth lighting\r
+TODO: Further investigate the use of GPU lighting in addition to the\r
+      current one\r
 \r
 Configuration:\r
 --------------\r
@@ -198,6 +210,9 @@ TODO: Don't update all meshes always on single node changes, but
 \r
 FIXME: When disconnected to the menu, memory is not freed properly\r
 \r
+TODO: Investigate how much the mesh generator thread gets used when\r
+      transferring map data\r
+\r
 Server:\r
 -------\r
 \r
@@ -214,13 +229,20 @@ FIXME: Server sometimes goes into some infinite PeerNotFoundException loop
 \r
 FIXME: The new optimized map sending doesn't sometimes send enough blocks\r
        from big caves and such\r
+FIXME: Block send distance configuration does not take effect for some reason\r
+\r
+TODO: Map saving should be done by EmergeThread\r
 \r
-* Take player's walking direction into account in GetNextBlocks\r
+SUGG: Map unloading based on sector reference is not very good, it keeps\r
+       unnecessary stuff in memory. I guess. Investigate this.\r
+\r
+TODO: When block is placed and it has param_type==CPT_FACEDIR_SIMPLE, set\r
+      the direction accordingly.\r
 \r
 Environment:\r
 ------------\r
 \r
-TODO: A list of "active blocks" in which stuff happens.\r
+TODO: A list of "active blocks" in which stuff happens. (+=done)\r
        + Add a never-resetted game timer to the server\r
        + Add a timestamp value to blocks\r
        + The simple rule: All blocks near some player are "active"\r
@@ -271,25 +293,15 @@ TODO: Add a long step function to objects that is called with the time
 TODO: Mineral and ground material properties\r
       - This way mineral ground toughness can be calculated with just\r
            some formula, as well as tool strengths\r
+         - There are TODOs in appropriate files: material.h, content_mapnode.h\r
 \r
 TODO: Flowing water to actually contain flow direction information\r
       - There is a space for this - it just has to be implemented.\r
 \r
-SUGG: Erosion simulation at map generation time\r
-       - Simulate water flows, which would carve out dirt fast and\r
-         then turn stone into gravel and sand and relocate it.\r
-       - How about relocating minerals, too? Coal and gold in\r
-         downstream sand and gravel would be kind of cool\r
-         - This would need a better way of handling minerals, mainly\r
-               to have mineral content as a separate field. the first\r
-               parameter field is free for this.\r
-       - Simulate rock falling from cliffs when water has removed\r
-         enough solid rock from the bottom\r
-\r
 SUGG: Try out the notch way of generating maps, that is, make bunches\r
       of low-res 3d noise and interpolate linearly.\r
 \r
-Mapgen v2:\r
+Mapgen v2 (the current one):\r
 * Possibly add some kind of erosion and other stuff\r
 * Better water generation (spread it to underwater caverns but don't\r
   fill dungeons that don't touch big water masses)\r
@@ -298,11 +310,30 @@ Mapgen v2:
   the other chunk making nasty straight walls when the other chunk\r
   is generated. Fix it. Maybe just a special case if the ground is\r
   flat?\r
+* Consider not updating this one and make a good mainly block-based\r
+  generator\r
+\r
+SUGG: Make two "modified states", one that forces the block to be saved at\r
+       the next save event, and one that makes the block to be saved at exit\r
+       time.\r
+\r
+TODO: Add a not_fully_generated flag to MapBlock, which would be set for\r
+       blocks that contain eg. trees from neighboring generations but haven't\r
+       been generated itself. This is required for the future generator.\r
 \r
 Misc. stuff:\r
 ------------\r
-* Move digging property stuff from material.{h,cpp} to mapnode.cpp\r
-  - ...Or maybe move content_features to material.{h,cpp}?\r
+- Make sure server handles removing grass when a block is placed (etc)\r
+    - The client should not do it by itself\r
+- Block cube placement around player's head\r
+- Protocol version field\r
+- Consider getting some textures from cisoun's texture pack\r
+       - Ask from Cisoun\r
+- Make sure the fence implementation and data format is good\r
+       - Think about using same bits for material for fences and doors, for\r
+       example\r
+- Finish the ActiveBlockModifier stuff and use it for something\r
+- Move mineral to param2, increment map serialization version, add conversion\r
 \r
 Making it more portable:\r
 ------------------------\r
@@ -315,17 +346,6 @@ Fixes to the current release:
 \r
 Stuff to do after release:\r
 ---------------------------\r
-- Make sure server handles removing grass when a block is placed (etc)\r
-    - The client should not do it by itself\r
-- Block cube placement around player's head\r
-- Protocol version field\r
-- Consider getting some textures from cisoun's texture pack\r
-       - Ask from Cisoun\r
-- Make sure the fence implementation and data format is good\r
-       - Think about using same bits for material for fences and doors, for\r
-       example\r
-- Finish the ActiveBlockModifier stuff and use it for something\r
-- Move mineral to param2, increment map serialization version, add conversion\r
 \r
 ======================================================================\r
 \r
@@ -1028,6 +1048,15 @@ void drawMenuBackground(video::IVideoDriver* driver)
 \r
 int main(int argc, char *argv[])\r
 {\r
+       /*\r
+               Initialization\r
+       */\r
+\r
+       // Set locale. This is for forcing '.' as the decimal point.\r
+       std::locale::global(std::locale("C"));\r
+       // This enables printing all characters in bitmap font\r
+       setlocale(LC_CTYPE, "en_US");\r
+\r
        /*\r
                Parse command line\r
        */\r
@@ -1091,22 +1120,29 @@ int main(int argc, char *argv[])
                disable_stderr = true;\r
 #endif\r
 \r
+       porting::signal_handler_init();\r
+       bool &kill = *porting::signal_handler_killstatus();\r
+       \r
+       // Initialize porting::path_data and porting::path_userdata\r
+       porting::initializePaths();\r
+\r
        // Initialize debug streams\r
-       debugstreams_init(disable_stderr, DEBUGFILE);\r
+#ifdef RUN_IN_PLACE\r
+       std::string debugfile = DEBUGFILE;\r
+#else\r
+       std::string debugfile = porting::path_userdata+"/"+DEBUGFILE;\r
+#endif\r
+       debugstreams_init(disable_stderr, debugfile.c_str());\r
        // Initialize debug stacks\r
        debug_stacks_init();\r
 \r
        DSTACK(__FUNCTION_NAME);\r
 \r
-       porting::signal_handler_init();\r
-       bool &kill = *porting::signal_handler_killstatus();\r
-       \r
-       porting::initializePaths();\r
        // Create user data directory\r
        fs::CreateDir(porting::path_userdata);\r
        \r
-       // C-style stuff initialization\r
-       initializeMaterialProperties();\r
+       // Init material properties table\r
+       //initializeMaterialProperties();\r
 \r
        // Debug handler\r
        BEGIN_DEBUG_EXCEPTION_HANDLER\r
@@ -1124,19 +1160,10 @@ int main(int argc, char *argv[])
        // Initialize default settings\r
        set_default_settings();\r
        \r
-       // Set locale. This is for forcing '.' as the decimal point.\r
-       std::locale::global(std::locale("C"));\r
-       // This enables printing all characters in bitmap font\r
-       setlocale(LC_CTYPE, "en_US");\r
-\r
        // Initialize sockets\r
        sockets_init();\r
        atexit(sockets_cleanup);\r
        \r
-       /*\r
-               Initialization\r
-       */\r
-\r
        /*\r
                Read config file\r
        */\r
@@ -1386,7 +1413,6 @@ int main(int argc, char *argv[])
                Preload some textures and stuff\r
        */\r
 \r
-       init_content_inventory_texture_paths();\r
        init_mapnode(); // Second call with g_texturesource set\r
        init_mineral();\r
 \r