Merge pull request #3844 from gmfamily/v3.0
fix(chnk visibility) Use long to avoid int overflow
This commit is contained in:
commit
f0bb6c0c63
1 changed files with 5 additions and 1 deletions
|
|
@ -25,7 +25,11 @@ public class RoundVisibilityLimit implements VisibilityLimit {
|
||||||
else
|
else
|
||||||
chunk_corner_z = chunk_z * 16 + 15;
|
chunk_corner_z = chunk_z * 16 + 15;
|
||||||
|
|
||||||
return (chunk_corner_x - x_center) * (chunk_corner_x - x_center) + (chunk_corner_z - z_center) * (chunk_corner_z - z_center) < radius * radius;
|
// By gmfamily - Use long representation of the distance between tested chunk and center of tested limit
|
||||||
|
// to avoid int overflow while computing the distance compared to limit radius using square delta value
|
||||||
|
long chunk_delta_x = chunk_corner_x - x_center;
|
||||||
|
long chunk_delta_z = chunk_corner_z - z_center;
|
||||||
|
return chunk_delta_x * chunk_delta_x + chunk_delta_z * chunk_delta_z < (long) radius * radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue