| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
issue: #10884
This makes it possible for objects to immediately be activated,
but doesn't guarantee it since blocks may still need be emerged.
|
| |
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
Keeping the ObjectRefs around in a table isn't ideal and this allows
removing the somewhat nonsensical is_player_connected() added in 86ef7147.
|
| |
|
| |
|
|
|
|
| |
* Add an activeobject manager to hold active objects
* Add unittests
|
|
|
|
| |
* Replace auth.txt with SQLite auth database
|
| |
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
* Add session_t typedef + remove unused functions
u16 peer_id is used everywhere, to be more consistent and permit some evolutions on this type in the future (i'm working on a PoC), uniformize u16 peer_id to SessionId peer_id
|
|
|
|
| |
* ServerEnv: Clean up object lifecycle handling
|
| |
|
|
|
| |
The block sends per client is 1/2 when reaching the maximal player count.
|
|
|
|
|
|
|
|
|
|
|
| |
* Code modernization: src/p*, src/q*, src/r*, src/s* (partial)
* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* C++ STL header style
* Spelling: vertice -> vertex
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Optimize headers (part 2)
* less debug.h in headers
* less remoteplayer.h for everybody
* Cleanup (part 2)
* camera.h: mesh.h
* mapgen.h: mapnode.h
* serverenvironment.h: mapblock.h
* nodedef.h: shader.h
|
|
|
|
| |
* Migrate cpp headers to pragma once
|
|
|
|
| |
* Cleanup various headers to reduce compilation times
|
|
|
|
| |
Also rename helper to lbm_map instead of container_map
|
|
|
|
|
|
| |
This commit introduces Raycast, a Lua user object, which can be
used to perform a raycast on the map. The ray is continuable, so one can
also get hidden nodes (for example to see trough glass).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Enhance ABM performance a little bit by removing two std::set copy
* ActiveBlockModifier::getTriggerContents now returns a const ref
* ActiveBlockModifier::getRequiredNeighbors now returns a const ref
* ActiveBlockModifier::getRequiredNeighbors is now purely virtual
* Little code style fix
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Player data to Database
Add player data into databases (SQLite3 & PG only)
PostgreSQL & SQLite: better POO Design for databases
Add --migrate-players argument to server + deprecation warning
* Remove players directory if empty
|
|
|
|
|
|
| |
* [CSM] Add core.get_timeofday & core.get_day_count env calls
* [CSM] Add core.get_node_level, core.get_node_max_level, core.find_node_near
|
|
|
|
|
|
|
|
|
|
| |
* rename GameScripting to ServerScripting
* Make getBuiltinLuaPath static serverside
* Add on_shutdown callback
* Add on_receiving_chat_message & on_sending_chat_message callbacks
* ScriptApiBase: use IGameDef instead of Server
This permits to share common attribute between client & server
* Enable mod security in client side modding without conditions
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Environment code refactoring
* Cleanup includes & class declarations in client & server environment to improve build speed
* ServerEnvironment::m_gamedef is now a pointer to Server instead of IGameDef, permitting to cleanup many casts.
* Cleanup IGameDef
* Move ITextureSource* IGameDef::getTextureSource() to Client only.
* Also move ITextureSource *IGameDef::tsrc() helper
* drop getShaderSource, getSceneManager, getSoundManager & getCamera abstract call
* drop unused emerge() call
* cleanup server unused functions (mentionned before)
* Drop one unused parameter from ContentFeatures::updateTextures
* move checkLocalPrivilege to Client
* Remove some unnecessary casts
* create_formspec_menu: remove IWritableTextureSource pointer, as client already knows it
* Fix some comments
* Change required IGameDef to Server/Client pointers
* Previous change that game.cpp sometimes calls functions with Client + InventoryManager + IGameDef in same functions but it's the same objects
* Remove duplicate Client pointer in GUIFormSpecMenu::GUIFormSpecMenu
* drop ClientMap::sectorWasDrawn which is unused
|
|
* also cleanup some unneeded inclusions
|