ServerEnvironment is a huge class with many accessors. In various places it's not needed
Remove it to reduce the ServerEnvironment view.
Idea here is to reduce size of some of our objects to transport lightweight managers and permit easier testing
Pathfinder is now tied to a generic map, not a ServerMap, it can be
ported to client
Move LuaEntitySAO to a new dedicated file
Drop TestSAO (useless object)
Drop the old static startup initialized SAO factory, which was pretty useless.
This factory was using a std::map for 2 elements, now just use a simple condition owned by ServerEnvironment, which will be lightweight, that will also drop a one time useful test on each LuaEntitySAO creation. This should reduce server load on massive SAO creation
* Drop genericobject.{cpp,h}
This file is not for generic object but for ActiveObject message passing.
Put ownership of the various commands to the right objects and cleanup the related code.
* Protect ServerActiveObject::m_messages_out
* typo fix
- Move the text segment below the 47-bit limit, needed for script_exception_wrapper which must be lightuserdata
- Replace CUSTOM_RIDX_SCRIPTAPI with full userdata
This will likely be more intuitive for users and should play better
with sandboxed distributions such as Flatpak.
In addition, the screenshot directory will now be created if it doesn't
exist already.
This reverts commit df74d369a395f0b99bd23fa3e7fb4c628c3df336.
This reverts commit 908e76247922d4adf879b3996c4f75bdbb4e536d.
Restores the original collision detection bugs to release 5.2.0 prior the large collision detection fix.
Previously textures of the side faces on flowing liquid nodes would
become distorted on different axis depending on the liquid level. This
is because the nodes always had the same texture coordinates, even when
the generated face could have different sizes. This solves that problem
by adjusting the texture coordinates for the vertices making up the top
of the faces, so the textures will not look compressed for smaller
faces.
This adds a vector that holds pointers to elements that should only be visible while being drawn.
In the guifsmenu's draw func, all elements in this vector are made visible and invisible again. Apart from there, they are always invisible. (Well they are still visible before the first drawn, does this matter? If yes, it could be fixed easily with some lines of code everywhere.)
Camera's near-plane will be hard-coded to 0.1 on all non-Android platforms. The upper-bound of this setting has been reduced to 0.25, as 0.5 is just way too high.