Skip to content

Commit

Permalink
Process ABMs in a spherical volume instead of cubic
Browse files Browse the repository at this point in the history
Increase active_block_range default to a 3 mapblock radius.
  • Loading branch information
lhofhansl authored and paramat committed Dec 24, 2016
1 parent 923a8f1 commit 2f59a0c
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 5 deletions.
2 changes: 1 addition & 1 deletion builtin/settingtypes.txt
Expand Up @@ -758,7 +758,7 @@ active_object_send_range_blocks (Active object send range) int 3

# How large area of blocks are subject to the active block stuff, stated in mapblocks (16 nodes).
# In active blocks objects are loaded and ABMs run.
active_block_range (Active block range) int 2
active_block_range (Active block range) int 3

# From how far blocks are sent to clients, stated in mapblocks (16 nodes).
max_block_send_distance (Max block send distance) int 10
Expand Down
2 changes: 1 addition & 1 deletion minetest.conf.example
Expand Up @@ -913,7 +913,7 @@
# How large area of blocks are subject to the active block stuff, stated in mapblocks (16 nodes).
# In active blocks objects are loaded and ABMs run.
# type: int
# active_block_range = 2
# active_block_range = 3

# From how far blocks are sent to clients, stated in mapblocks (16 nodes).
# type: int
Expand Down
2 changes: 1 addition & 1 deletion src/defaultsettings.cpp
Expand Up @@ -273,7 +273,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("profiler_print_interval", "0");
settings->setDefault("enable_mapgen_debug_info", "false");
settings->setDefault("active_object_send_range_blocks", "3");
settings->setDefault("active_block_range", "2");
settings->setDefault("active_block_range", "3");
//settings->setDefault("max_simultaneous_block_sends_per_client", "1");
// This causes frametime jitter on client side, or does it?
settings->setDefault("max_simultaneous_block_sends_per_client", "10");
Expand Down
7 changes: 5 additions & 2 deletions src/environment.cpp
Expand Up @@ -397,8 +397,11 @@ void fillRadiusBlock(v3s16 p0, s16 r, std::set<v3s16> &list)
for(p.Y=p0.Y-r; p.Y<=p0.Y+r; p.Y++)
for(p.Z=p0.Z-r; p.Z<=p0.Z+r; p.Z++)
{
// Set in list
list.insert(p);
// limit to a sphere
if (p.getDistanceFrom(p0) <= r) {
// Set in list
list.insert(p);
}
}
}

Expand Down

0 comments on commit 2f59a0c

Please sign in to comment.