libentity.raycast: Add argument to specify blocks to ignore during ray casting
Chunk::rayCast: Add argument to specify blocks to ignore during ray casting.
On lua side filter blocks are passed as list of strings in form of "MOD:BLOCK_NAME"
On C++ size filter blocks are std::set of blockid_t
The 'empty()' method is more efficient for checking if a string is empty compared to comparing it with an empty string literal.
The default constructor 'std::wstring()' is more efficient for creating an empty string compared to using a string literal.
The 'clear()' method is more efficient for clearing a std::wstring compared to assigning it an empty string literal.
Reported by: PVS-Studio
Signed-off-by: Vyacheslav Ivanov <islavaivanov76@gmail.com>
Creating variables in a more localized scope can enhance performance and make the code easier to understand.
Reported by: PVS-Studio
Signed-off-by: Vyacheslav Ivanov <islavaivanov76@gmail.com>
Replaced 'std::optional::value()' with '*' operator to improve performance.
Using 'std::optional::value()' involves additional overhead compared to using the '*' or '->' operators. This change ensures more efficient access to the underlying value of the optional when you are certain that it contains a value.
Reported by: PVS-Studio
Signed-off-by: Vyacheslav Ivanov <islavaivanov76@gmail.com>
Replaced 'at()' method with 'operator[]' to improve performance.
The 'at()' method performs bounds checking, which can introduce overhead. Using 'operator[]' bypasses this check and can improve performance when you are certain that the index is within bounds.
Reported by: PVS-Studio
Signed-off-by: Vyacheslav Ivanov <islavaivanov76@gmail.com>