Updated to-do list and added the give_initial_stuff setting for testing
parent
b36e5c0508
commit
bbe47f845b
|
@ -54,6 +54,8 @@
|
||||||
|
|
||||||
#enable_damage = false
|
#enable_damage = false
|
||||||
|
|
||||||
|
#give_initial_stuff = false
|
||||||
|
|
||||||
# Player and object positions are sent at intervals specified by this
|
# Player and object positions are sent at intervals specified by this
|
||||||
#objectdata_inverval = 0.2
|
#objectdata_inverval = 0.2
|
||||||
|
|
||||||
|
|
|
@ -51,11 +51,10 @@ void set_default_settings()
|
||||||
g_settings.setDefault("fast_move", "false");
|
g_settings.setDefault("fast_move", "false");
|
||||||
|
|
||||||
// Server stuff
|
// Server stuff
|
||||||
g_settings.setDefault("fast_move", "false");
|
|
||||||
|
|
||||||
g_settings.setDefault("enable_experimental", "false");
|
g_settings.setDefault("enable_experimental", "false");
|
||||||
g_settings.setDefault("creative_mode", "false");
|
g_settings.setDefault("creative_mode", "false");
|
||||||
g_settings.setDefault("enable_damage", "false"); //TODO: Set to true
|
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("objectdata_interval", "0.2");
|
||||||
g_settings.setDefault("active_object_range", "2");
|
g_settings.setDefault("active_object_range", "2");
|
||||||
|
|
30
src/main.cpp
30
src/main.cpp
|
@ -21,27 +21,17 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
=============================== NOTES ==============================
|
=============================== NOTES ==============================
|
||||||
NOTE: Things starting with TODO are sometimes only suggestions.
|
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: iostream.imbue(std::locale("C")) is very slow
|
||||||
NOTE: Global locale is now set at initialization
|
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):
|
Random suggeestions (AKA very old suggestions that haven't been done):
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
SUGG: Fix address to be ipv6 compatible
|
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: If player is on ground, mainly fetch ground-level blocks
|
||||||
|
|
||||||
SUGG: Expose Connection's seqnums and ACKs to server and client.
|
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
|
sometimes very big by themselves
|
||||||
- This might not give much network performance gain though.
|
- 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)
|
SUGG: Precalculate lighting translation table at runtime (at startup)
|
||||||
- This is not doable because it is currently hand-made and not
|
- This is not doable because it is currently hand-made and not
|
||||||
based on some mathematical function.
|
based on some mathematical function.
|
||||||
|
@ -159,7 +144,7 @@ Graphics:
|
||||||
---------
|
---------
|
||||||
|
|
||||||
SUGG: Combine MapBlock's face caches to so big pieces that VBO
|
SUGG: Combine MapBlock's face caches to so big pieces that VBO
|
||||||
gets used
|
can be used
|
||||||
- That is >500 vertices
|
- That is >500 vertices
|
||||||
- This is not easy; all the MapBlocks close to the player would
|
- This is not easy; all the MapBlocks close to the player would
|
||||||
still need to be drawn separately and combining the blocks
|
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
|
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
|
SUGG: Draw cubes in inventory directly with 3D drawing commands, so that
|
||||||
animating them is easier.
|
animating them is easier.
|
||||||
|
|
||||||
SUGG: Option for enabling proper alpha channel for textures
|
SUGG: Option for enabling proper alpha channel for textures
|
||||||
|
TODO: A setting for enabling bilinear filtering for textures
|
||||||
TODO: Make all water not backside culled
|
|
||||||
|
|
||||||
Configuration:
|
Configuration:
|
||||||
--------------
|
--------------
|
||||||
|
@ -224,6 +206,7 @@ TODO: Get rid of MapBlockObjects and use ActiveObjects
|
||||||
SUGG: MovingObject::move and Player::move are basically the same.
|
SUGG: MovingObject::move and Player::move are basically the same.
|
||||||
combine them.
|
combine them.
|
||||||
- NOTE: Player::move is more up-to-date.
|
- NOTE: Player::move is more up-to-date.
|
||||||
|
- NOTE: There is a simple move implementation now in collision.{h,cpp}
|
||||||
|
|
||||||
Map:
|
Map:
|
||||||
----
|
----
|
||||||
|
@ -233,6 +216,7 @@ TODO: Mineral and ground material properties
|
||||||
some formula, as well as tool strengths
|
some formula, as well as tool strengths
|
||||||
|
|
||||||
TODO: Flowing water to actually contain flow direction information
|
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
|
SUGG: Erosion simulation at map generation time
|
||||||
- Simulate water flows, which would carve out dirt fast and
|
- Simulate water flows, which would carve out dirt fast and
|
||||||
|
|
|
@ -4082,13 +4082,33 @@ Player *Server::emergePlayer(const char *name, const char *password,
|
||||||
{
|
{
|
||||||
setCreativeInventory(player);
|
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);
|
void* r = player->inventory.addItem("main", item);
|
||||||
assert(r == NULL);
|
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);
|
InventoryItem *item = new MaterialItem(CONTENT_MESE, 6);
|
||||||
void* r = player->inventory.addItem("main", item);
|
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);
|
void* r = player->inventory.addItem("main", item);
|
||||||
assert(r == NULL);
|
assert(r == NULL);
|
||||||
}*/
|
}*/
|
||||||
/*// Give some lights
|
/*// and some signs
|
||||||
{
|
|
||||||
InventoryItem *item = new MaterialItem(CONTENT_TORCH, 999);
|
|
||||||
bool r = player->inventory.addItem("main", item);
|
|
||||||
assert(r == true);
|
|
||||||
}
|
|
||||||
// and some signs
|
|
||||||
for(u16 i=0; i<4; i++)
|
for(u16 i=0; i<4; i++)
|
||||||
{
|
{
|
||||||
InventoryItem *item = new MapBlockObjectItem("Sign Example text");
|
InventoryItem *item = new MapBlockObjectItem("Sign Example text");
|
||||||
|
|
Loading…
Reference in New Issue