aboutsummaryrefslogtreecommitdiff
path: root/src/environment.h
Commit message (Collapse)AuthorAge
* Time: use locks againest312015-11-04
| | | | | | | | | | | | | | | The Atomic implementation was only partially correct, and was very complex. Use locks for sake of simplicity, following KISS principle. Only remaining atomic operation use is time of day speed, because that really is only read + written. Also fixes a bug with m_time_conversion_skew only being decremented, never incremented (Regresion from previous commit). atomic.h changes: * Add GenericAtomic<T> class for non-integral types like floats. * Remove some last remainders from atomic.h of the volatile use.
* Time: Remove serverside getter, and use atomic operationsest312015-11-03
| | | | | | | | It isn't possible to use atomic operations for floats, so don't use them there. Having a lock is good out of other reasons too, because this way the float time and the integer time both match, and can't get different values in a race, e.g. when two setTimeofDay() get executed simultaneously.
* Add DISABLE_CLASS_COPY macro (and use it)kwolekr2015-10-27
| | | | | | | | | Use this macro to disallow copying of an object using the assignment operator or copy constructor. This catches otherwise silent-but-deadly mistakes such as "ServerMap map = env->getMap();" at compile time. If so desired, it is still possible to copy a class, but it now requires an explicit call to memcpy or std::copy.
* Environment: Time of day fixes and add serverside getterest312015-10-27
| | | | | | | | -> Put access to time variables under the time lock. -> Merge both time locks, there is no point to have two locks. -> Fix the lock being released too early in Environment::setTimeOfDay -> Add serverside getter so that you don't have to get the environment if you only have the server
* ABMs: Make catch-up behaviour optionalparamat2015-10-18
| | | | | Default is true for backwards compatibility Update lua_api.txt
* Save and remove player by pointerLoic Blot2015-09-23
| | | | | | Why doing things simple ? Use pointer instead of strings to save players and remove them. Saving players by name does a lookup to find pointer we already have ! Idem with removePlayer Also remove unused removePlayer(peer_id), it's never called
* Little optimization on getAdded/Removed activeobjects per player loop.Loic Blot2015-09-19
| | | | | Use std::queue instead of std::set, we don't need such a heavy container. Don't convert position to int to convert it back to float in the next function.
* Change m_client_event_queue's type to std::queueLoic Blot2015-09-08
| | | | | As indicated in its name, m_client_event_queue should be a queue. Change std::list to std::queue to improve the queue's performance.
* Clean up threadingShadowNinja2015-08-23
| | | | | | | | | | | | | | | | | | | | * Rename everything. * Strip J prefix. * Change UpperCamelCase functions to lowerCamelCase. * Remove global (!) semaphore count mutex on OSX. * Remove semaphore count getter (unused, unsafe, depended on internal API functions on Windows, and used a hack on OSX). * Add `Atomic<type>`. * Make `Thread` handle thread names. * Add support for C++11 multi-threading. * Combine pthread and win32 sources. * Remove `ThreadStarted` (unused, unneeded). * Move some includes from the headers to the sources. * Move all of `Event` into its header (allows inlining with no new includes). * Make `Event` use `Semaphore` (except on Windows). * Move some porting functions into `Thread`. * Integrate logging with `Thread`. * Add threading test.
* SEnv: Remove static_exists from ActiveObjects in deleted blockskwolekr2015-08-16
|
* Optional reconnect functionalityest312015-07-23
| | | | | | Enable the server to request the client to reconnect. This can be done with the now extended minetest.request_shutdown([reason], [reconnect]) setting.
* Kick players when shutting down server and there is a crash due to a Lua ↵nerzhul2015-07-16
| | | | stack exception
* Generic CAO cleanups and renames for clarificationest312015-06-20
| | | | | | | | * Use enum for GENERIC_CMD_* * Rename m_attachements to attachement_parent_ids (public member and clearer name) * Rename GENERIC_CMD_SET_ATTACHMENT to GENERIC_CMD_ATTACH_TO * USHRT_MAX + 1 buffer sizes to prevent overflows as @kahrl suggested * Remove unneccessary m_id from GenericCAO (shadowing protected superclass member for no reason) as @kahrl suggested
* Make attached objects visible in 3rd person viewest312015-06-20
|
* Re-apply 972d17baea81ffe6d508b291ef97207a4822e1da...nerzhul2015-04-22
| | | | but not rename the container. Approved-By est31
* Revert "m_active_object_messages is used like a queue. Use std::queue ↵kwolekr2015-04-21
| | | | | | | | instead of std::list. Also rename to m_active_object_messages_queue" This reverts commit 972d17baea81ffe6d508b291ef97207a4822e1da. The commit being reverted was unauthorized. There had been no discussion, review, or sign-off prior to submittal to upstream.
* m_active_object_messages is used like a queue. Use std::queue instead of ↵Loic Blot2015-04-21
| | | | std::list. Also rename to m_active_object_messages_queue
* Use std::vector instead of std::set for Environment::getObjectsInsideRadiusLoic Blot2015-04-16
| | | | | We are only iterating sequentially, we don't need a set here Also use a vector reference instead of a copy
* Performance improvement: Use std::list instead of std::vector for ↵Loic Blot2015-03-05
| | | | | | request_media, Server::getModNames, Environment::m_simple_objects. * Also remove unused Server::m_modspaths
* ABMHandler and player_collisions use sequential read/write. Switch from ↵Loic Blot2015-03-04
| | | | | | std::list to std::vector * Also remove dead code Map::unloadUnusedData which is dead since a long time
* ASyncRunStep doesn't need to lock when do setTimeOfDaySpeed.Loic Blot2015-03-04
| | | | | * setTimeOfDaySpeed already lock a mutex when modify the value, we don't need to lock all environment. * add a fine grain lock for getTimeOfDay and setTimeOfDay to solve environment multithread modifications on this value
* Change many useless std::list into Environment class (m_players), ABMHandler ↵Loic Blot2015-02-17
| | | | | | and ActiveBlockList::update This improve looping performances.
* Fix all warnings and remove -Wno-unused-but-set cflagkwolekr2015-01-18
|
* Performance of main client loop up to 2x faster In places, up to 3 times fasterCraig Robbins2014-12-07
| | | | | NOTE 1: This does not mean a 2x increase in framerate. Increase in fps may be up to 1-2fps NOTE 2: This local 'caching' of settings is not optimal and an alternative solution will be worked on after 0.4.11 is released
* Replace setting unlimited_player_transfer_distance with player_transfer_distanceSmallJoker2014-11-08
|
* Only keep players loaded while they're connectedShadowNinja2014-06-23
|
* Fix race condition on accessing m_time_of_day_speed causing day night race ↵sapier2014-06-23
| | | | on some architectures
* Speedup attachement handling by replacing vector search by direct array ↵sapier2014-06-23
| | | | access and secondary child lookup vector
* Remove liquid_finite and weatherproller2014-04-18
|
* Fix all warnings reported by clangSfan52014-04-15
|
* Update ABM object counts when triggers add objectsCiaran Gultnieks2014-03-09
| | | | | Also fixes long-standing accuracy issue due to unknown wider object count not being incremented.
* Fix rendering glitches when far from the center of the mapNovatux2014-03-04
|
* ServerEnvironment: Remove direct dependency on EmergeManagerkwolekr2014-02-09
|
* Add player:override_day_night_ratio() for arbitrarily controlling sunlight ↵Perttu Ahola2014-02-01
| | | | brightness
* Add forceloadingNovatux2014-01-11
|
* Make line_of_sight return blocking node positionstujones112013-12-12
|
* Add minetest.swap_nodeNovatux2013-11-30
|
* Weather: Clean up getHeat/getHumidity somewhatkwolekr2013-09-16
|
* Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl2013-08-14
|
* Fix anticheatPerttu Ahola2013-08-03
|
* Weather supportproller2013-07-27
|
* Add set_breath and get_breath to lua API.RealBadAngel2013-07-20
|
* Add drowningPilzAdam2013-06-19
|
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
| | | | | | | | | | | On the lua side, notably minetest.env:<function>(<args>) should now be replaced by minetest.<function>(<args>). The old way is and will stay supported for a long time. Also: Update and clean up lua_api.txt (by celeron55) Move EnvRef to lua and remove add_rat and add_firefly (by kahrl) Add separate src/util/CMakeLists.txt, other minor fixes (by kahrl)
* Add Dijkstra A* and A* without prefetching pathfind algorithmssapier2013-04-06
|
* Fix nick completionPilzAdam2013-04-05
|
* Migrate to STL containers/algorithms.Ilya Zhuravlev2013-03-11
|
* Add emerge.cpp, initial EmergeThread changeskwolekr2013-02-25
| | | | | | | - Neatly placed all emerge related code into a new file, emerge.cpp - Greatly cleaned up the code in EmergeThread::Thread() - Reworked Emerge queue. Now an actual std::queue of v3s16 block positions - Removed the completely unnecessary map of peer ids requesting blocks
* Update Copyright YearsSfan52013-02-24
|
* Change Minetest-c55 to MinetestPilzAdam2013-02-24
|