From bbe47f845b887899065f6daca4cd16060d80553f Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 22 Apr 2011 10:48:40 +0300 Subject: [PATCH] Updated to-do list and added the give_initial_stuff setting for testing --- minetest.conf.example | 2 ++ src/defaultsettings.cpp | 3 +-- src/main.cpp | 30 +++++++----------------------- src/server.cpp | 36 +++++++++++++++++++++++++----------- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/minetest.conf.example b/minetest.conf.example index 02cfb7aad..770677da1 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -54,6 +54,8 @@ #enable_damage = false +#give_initial_stuff = false + # Player and object positions are sent at intervals specified by this #objectdata_inverval = 0.2 diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index b5d863914..d1e9d45cd 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -51,11 +51,10 @@ void set_default_settings() g_settings.setDefault("fast_move", "false"); // Server stuff - g_settings.setDefault("fast_move", "false"); - g_settings.setDefault("enable_experimental", "false"); g_settings.setDefault("creative_mode", "false"); g_settings.setDefault("enable_damage", "false"); //TODO: Set to true + g_settings.setDefault("give_initial_stuff", "false"); g_settings.setDefault("objectdata_interval", "0.2"); g_settings.setDefault("active_object_range", "2"); diff --git a/src/main.cpp b/src/main.cpp index 6293809be..2dfef7d1b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,27 +21,17 @@ with this program; if not, write to the Free Software Foundation, Inc., =============================== NOTES ============================== NOTE: Things starting with TODO are sometimes only suggestions. -NOTE: VBO cannot be turned on for fast-changing stuff because there - is an apparanet memory leak in irrlicht when using it (not sure) - - It is not a memory leak but some kind of a buffer. - NOTE: iostream.imbue(std::locale("C")) is very slow NOTE: Global locale is now set at initialization +NOTE: If VBO (EHM_STATIC) is used, remember to explicitly free the + hardware buffer (it is not freed automatically) + Random suggeestions (AKA very old suggestions that haven't been done): ---------------------------------------------------------------------- SUGG: Fix address to be ipv6 compatible -NOTE: When a new sector is generated, it may change the ground level - of it's and it's neighbors border that two blocks that are - above and below each other and that are generated before and - after the sector heightmap generation (order doesn't matter), - can have a small gap between each other at the border. -SUGG: Use same technique for sector heightmaps as what we're - using for UnlimitedHeightmap? (getting all neighbors - when generating) - SUGG: If player is on ground, mainly fetch ground-level blocks SUGG: Expose Connection's seqnums and ACKs to server and client. @@ -67,11 +57,6 @@ SUGG: Make a PACKET_COMBINED which contains many subpackets. Utilize sometimes very big by themselves - This might not give much network performance gain though. -SUGG: Split MapBlockObject serialization to to-client and to-disk - - This will allow saving ages of rats on disk but not sending - them to clients - - Not applicable. MapBlockObjects will be removed in the future. - SUGG: Precalculate lighting translation table at runtime (at startup) - This is not doable because it is currently hand-made and not based on some mathematical function. @@ -159,7 +144,7 @@ Graphics: --------- SUGG: Combine MapBlock's face caches to so big pieces that VBO - gets used + can be used - That is >500 vertices - This is not easy; all the MapBlocks close to the player would still need to be drawn separately and combining the blocks @@ -171,14 +156,11 @@ SUGG: Make fetching sector's blocks more efficient when rendering TODO: Flowing water animation -SUGG: Combine meshes to bigger ones in ClientMap and set them EHM_STATIC - SUGG: Draw cubes in inventory directly with 3D drawing commands, so that animating them is easier. SUGG: Option for enabling proper alpha channel for textures - -TODO: Make all water not backside culled +TODO: A setting for enabling bilinear filtering for textures Configuration: -------------- @@ -224,6 +206,7 @@ TODO: Get rid of MapBlockObjects and use ActiveObjects SUGG: MovingObject::move and Player::move are basically the same. combine them. - NOTE: Player::move is more up-to-date. + - NOTE: There is a simple move implementation now in collision.{h,cpp} Map: ---- @@ -233,6 +216,7 @@ TODO: Mineral and ground material properties some formula, as well as tool strengths TODO: Flowing water to actually contain flow direction information + - There is a space for this - it just has to be implemented. SUGG: Erosion simulation at map generation time - Simulate water flows, which would carve out dirt fast and diff --git a/src/server.cpp b/src/server.cpp index ee7a035e6..89359cd5e 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -4082,13 +4082,33 @@ Player *Server::emergePlayer(const char *name, const char *password, { setCreativeInventory(player); } - else + else if(g_settings.getBool("give_initial_stuff")) { - /*{ - InventoryItem *item = new ToolItem("WPick", 32000); + { + InventoryItem *item = new ToolItem("SteelPick", 0); void* r = player->inventory.addItem("main", item); assert(r == NULL); - }*/ + } + { + InventoryItem *item = new MaterialItem(CONTENT_TORCH, 99); + void* r = player->inventory.addItem("main", item); + assert(r == NULL); + } + { + InventoryItem *item = new ToolItem("SteelAxe", 0); + void* r = player->inventory.addItem("main", item); + assert(r == NULL); + } + { + InventoryItem *item = new ToolItem("SteelShovel", 0); + void* r = player->inventory.addItem("main", item); + assert(r == NULL); + } + { + InventoryItem *item = new MaterialItem(CONTENT_COBBLE, 99); + void* r = player->inventory.addItem("main", item); + assert(r == NULL); + } /*{ InventoryItem *item = new MaterialItem(CONTENT_MESE, 6); void* r = player->inventory.addItem("main", item); @@ -4119,13 +4139,7 @@ Player *Server::emergePlayer(const char *name, const char *password, void* r = player->inventory.addItem("main", item); assert(r == NULL); }*/ - /*// Give some lights - { - InventoryItem *item = new MaterialItem(CONTENT_TORCH, 999); - bool r = player->inventory.addItem("main", item); - assert(r == true); - } - // and some signs + /*// and some signs for(u16 i=0; i<4; i++) { InventoryItem *item = new MapBlockObjectItem("Sign Example text");