| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
| |
This check can be used by ABM to reduce CPU usage.
|
|
|
| |
Makes it possible to check the status of the mapblock in a future-extensible way.
|
|
|
|
|
|
|
|
|
|
|
| |
Remove old defaults system
Introduce priority-based fallback list
Use new functions for map_meta special functions
Change groups to use end tags
Unittest changes:
* Adapt unittest to the new code
* Compare Settings objects
|
| |
|
|
|
|
| |
(#10485)
|
|
|
|
|
| |
Add more detailed light detection functions, a function to get the artificial light (torches) and a function to get the sunlight as seen by the player (you can specify timeofday).
Co-authored-by: rubenwardy <rw@rubenwardy.com>
|
| |
|
|
|
|
|
|
| |
Fixes #10113
This reverts commit 5c588f89e79e02cba392abe3d00688772321f88b.
|
| |
|
| |
|
|
|
|
| |
fixes #9883
|
| |
|
|
|
|
| |
* Add PostgreSQL authentication backend
|
|
|
|
| |
* Add leveldb auth database.
|
|
|
|
|
|
|
|
|
| |
* Optimize getObjectsInsideRadius calls
our previous implementation calls the ActiveObjectMgr to return ids and then lookup those ids in the same map and test each object
Instead now we call the global map to return the pointers directly and we ask filtering when building the list using lamba.
This drop double looping over ranges of active objects (and then filtered one) and drop x lookups on the map regarding the first call results
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
The API implementation is shared between CSM and SSM.
Functions should retrieve a plain env when they do not
need any server-specific functions.
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Applies to player and detached inventories
|
|
|
|
|
|
|
| |
Update the profiler names to make more sense of what they actually represent
Move the profiler code from header to its source file
Use monospace font to align lines
Format the statistics line to align better with surrounding values
Refresh the profiler each 3 seconds (roughly)
|
|
|
| |
Finish getNode cleanup
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* Make sqlite3 default auth & player backends for new worlds
Also notify about auth backend depreciation
|
|
|
|
| |
Also ensure on each player save that the directory exists
|
|
|
|
| |
* Add an activeobject manager to hold active objects
* Add unittests
|
|
|
|
| |
* Adds Lua methods 'set_rotation()' and 'get_rotation'. Also changed some method names to be more clear. Instead of an f32 being sent over network for yaw, now a v3f is sent for rotation on xyz axes. Perserved Lua method set_yaw/setyaw so that old mods still work, other wise to set yaw they would need to switch to set_rotation(0, yaw, 0).
|
|
|
|
| |
* Replace auth.txt with SQLite auth database
|
|
|
| |
Use sizeof where applicable for mt_snprintf
|
|
|
|
|
|
|
| |
See #7555
Cache (up to 64) node types for each active block.
Check this cache first to see whether any ABM needs to be triggered for a block.
|
| |
|
|
|
|
| |
* Add player:get_meta(), deprecate player attributes
|
|
|
|
| |
* Huge LBM lookup performance improvement on mapblock loading
|
|
|
|
|
|
| |
* Add IrrLicht type aliases
* Add hash for IrrLicht vector
* Add object map
|
|
|
|
| |
for ServerEnv itself
|
|
|
|
|
| |
Fix some documentations issues
Use getNodeNoCheck(v3s16, ...) in some cases instead of getNodeNoCheck(x, y, z, ...)
|
|
|
|
|
|
| |
* isFreeServerActiveObjectId is now part of ServerEnvironment
* getFreeServerActiveObjectId is now part of ServerEnvironment
* StaticObject constructor now take ServerActiveObject instead of type + string. This permits to remove a big string copy in some code parts
|
| |
|
|
|
|
|
|
|
|
|
| |
* Rename IWritableNodeDefManager to NodeDefManager
* Make INodeDefManager functions const
* Use "const *NodeDefManager" instead of "*INodeDefManager"
* Remove unused INodeDefManager class
* Merge NodeDefManager and CNodeDefManager
* Document NodeDefManager
|
|
|
|
|
|
|
|
|
|
| |
* Add minetest.bulk_set_node call + experimental mod unittest
* Optimize set_node function to prevent triple lookup on contentfeatures
Do only one lookup for old, and try to merge old and new lookup if node is same than previous node
* Add benchmark function + optimize vector population to have real results
|
|
|
|
|
| |
This reverts commit 9c669016d1578a5c62f932c6ccb7a2b4b1e21f0a.
See #6907
|
|
|
|
|
| |
This commit rewrites line_of_sight with VoxelLineIterator.
Stepsize is no longer needed, the results will be always accurate.
|
|
|
|
| |
This can be set via the active_object_interval option.
|
|
|
|
|
|
|
|
|
| |
See #6667
By setting active_object_send_range_blocks > active_block_range a server admin
can allow clients to retrieve active objects futher out from the player at
relatively low cost to the server
(only objects in the players' view cone are considered).
|