mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Remove most exceptions from getNode() (and variants)
This commit is contained in:
parent
92815ad54b
commit
5b8855e83c
12 changed files with 429 additions and 455 deletions
|
@ -251,37 +251,39 @@ public:
|
|||
Regular MapNode get-setters
|
||||
*/
|
||||
|
||||
bool isValidPosition(v3s16 p)
|
||||
bool isValidPosition(s16 x, s16 y, s16 z)
|
||||
{
|
||||
if(data == NULL)
|
||||
return false;
|
||||
return (p.X >= 0 && p.X < MAP_BLOCKSIZE
|
||||
&& p.Y >= 0 && p.Y < MAP_BLOCKSIZE
|
||||
&& p.Z >= 0 && p.Z < MAP_BLOCKSIZE);
|
||||
return data != NULL
|
||||
&& x >= 0 && x < MAP_BLOCKSIZE
|
||||
&& y >= 0 && y < MAP_BLOCKSIZE
|
||||
&& z >= 0 && z < MAP_BLOCKSIZE;
|
||||
}
|
||||
|
||||
MapNode getNode(s16 x, s16 y, s16 z)
|
||||
bool isValidPosition(v3s16 p)
|
||||
{
|
||||
if(data == NULL)
|
||||
throw InvalidPositionException();
|
||||
if(x < 0 || x >= MAP_BLOCKSIZE) throw InvalidPositionException();
|
||||
if(y < 0 || y >= MAP_BLOCKSIZE) throw InvalidPositionException();
|
||||
if(z < 0 || z >= MAP_BLOCKSIZE) throw InvalidPositionException();
|
||||
return isValidPosition(p.X, p.Y, p.Z);
|
||||
}
|
||||
|
||||
MapNode getNode(s16 x, s16 y, s16 z, bool *valid_position)
|
||||
{
|
||||
*valid_position = isValidPosition(x, y, z);
|
||||
|
||||
if (!*valid_position)
|
||||
return MapNode(CONTENT_IGNORE);
|
||||
|
||||
return data[z*MAP_BLOCKSIZE*MAP_BLOCKSIZE + y*MAP_BLOCKSIZE + x];
|
||||
}
|
||||
|
||||
MapNode getNode(v3s16 p)
|
||||
MapNode getNode(v3s16 p, bool *valid_position)
|
||||
{
|
||||
return getNode(p.X, p.Y, p.Z);
|
||||
return getNode(p.X, p.Y, p.Z, valid_position);
|
||||
}
|
||||
|
||||
MapNode getNodeNoEx(v3s16 p)
|
||||
{
|
||||
try{
|
||||
return getNode(p.X, p.Y, p.Z);
|
||||
}catch(InvalidPositionException &e){
|
||||
return MapNode(CONTENT_IGNORE);
|
||||
}
|
||||
bool is_valid;
|
||||
MapNode node = getNode(p.X, p.Y, p.Z, &is_valid);
|
||||
return is_valid ? node : MapNode(CONTENT_IGNORE);
|
||||
}
|
||||
|
||||
void setNode(s16 x, s16 y, s16 z, MapNode & n)
|
||||
|
@ -304,16 +306,18 @@ public:
|
|||
Non-checking variants of the above
|
||||
*/
|
||||
|
||||
MapNode getNodeNoCheck(s16 x, s16 y, s16 z)
|
||||
MapNode getNodeNoCheck(s16 x, s16 y, s16 z, bool *valid_position)
|
||||
{
|
||||
if(data == NULL)
|
||||
throw InvalidPositionException();
|
||||
*valid_position = data != NULL;
|
||||
if(!valid_position)
|
||||
return MapNode(CONTENT_IGNORE);
|
||||
|
||||
return data[z*MAP_BLOCKSIZE*MAP_BLOCKSIZE + y*MAP_BLOCKSIZE + x];
|
||||
}
|
||||
|
||||
MapNode getNodeNoCheck(v3s16 p)
|
||||
MapNode getNodeNoCheck(v3s16 p, bool *valid_position)
|
||||
{
|
||||
return getNodeNoCheck(p.X, p.Y, p.Z);
|
||||
return getNodeNoCheck(p.X, p.Y, p.Z, valid_position);
|
||||
}
|
||||
|
||||
void setNodeNoCheck(s16 x, s16 y, s16 z, MapNode & n)
|
||||
|
@ -334,9 +338,8 @@ public:
|
|||
is not valid on this MapBlock.
|
||||
*/
|
||||
bool isValidPositionParent(v3s16 p);
|
||||
MapNode getNodeParent(v3s16 p);
|
||||
MapNode getNodeParent(v3s16 p, bool *is_valid_position = NULL);
|
||||
void setNodeParent(v3s16 p, MapNode & n);
|
||||
MapNode getNodeParentNoEx(v3s16 p);
|
||||
|
||||
void drawbox(s16 x0, s16 y0, s16 z0, s16 w, s16 h, s16 d, MapNode node)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue