aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-11-29Dungeongen: Also preserve river water nodesparamat
For future river mapgens Dungeons will not generate in river water, to avoid dungeons filling and blocking river channels
2015-11-24Re-enable texture pre-filters on wielditems, fixing #3178.Aaron Suen
2015-11-23Mgfractal: Move julia set selection into formula parameterparamat
Improve default parameters Update and improve documentation Unhide mapgen, but is still unstable
2015-11-22Update HUD flags on server like on clientest31
Fixes bug for which commit 6c37e89f08f962eaba788a31f5d3c798ceaa65e6 "Fix old client showing duplicated health bar on new server" by @sapier laid the groundwork, where the server has updated its copy of the hud flags without respecting the mask. Fixes #3395.
2015-11-21Mapgen: Add global 'decorations' flagparamat
Flag is set by default in MapgenParams The global 'trees' flag remains but is now undocumented and unset by default in MapgenParams Add mgv6_spflag 'trees' set by default in defaultsettings.cpp to affect new worlds only This is automatically backwards compatible for existing worlds
2015-11-15Add a status text for autorunAmaz
2015-11-15Allow craft replacements to use groupsTeTpaAka
2015-11-15Mgfractal: Revert unnecessary duplication of parametersparamat
2015-11-15sound_openal.cpp: remove unused headerest31
2015-11-14Load sound from memoryest31
* Remove trailing lines from src/sound_openal.cpp * Don't do a horribly ugly copy of the file's path, allocating and deallocating a 10 kb buffer in the process. This copy was needed for backwards compatibility with libvorbis 1.3.1 and earlier, as the removed comment explains. However, even Ubuntu precise has 1.3.2 already. Dropping support and sparing the ugly copy can therefore be considered safe. * Actually load sounds from the memory, not caching them at the disk first, removing the old hack. This is the main motivation for the commit.
2015-11-14Decoration API: Fix missing low density decorationsparamat
For a decoration count between 0 and 1 calculate a chance for 1
2015-11-14Mgfractal: Create a choice of 4 mandelbrot formulasparamat
2015-11-13Mgv6: Move global mapgen flag 'flat' into mgv6 spflagsparamat
Add mgv6 spflag 'flat' Global flag is kept for backwards compatibility but is now undocumented
2015-11-13Only allow players with shout to chatest31
Fix regression of commit 5e507c9829942c434a6f1ae7a4f3a488c7e50bef "Add server side ncurses terminal" which allowed all players, even those without a shout priv, to chat. Fixes #3362.
2015-11-12Fix scrollbarsBlockMen
2015-11-11Mapgen: Add flat mapgen in hidden formparamat
2015-11-09Convert usages of PseudoRandom to PcgRandom for ore and deco placementkwolekr
In addition to being a better random, this fixes #3228
2015-11-09Cavegen: Make mgfractal use mgv5 cavegenparamat
Remove CaveFractal Add a lava depth constant to CaveV5 to make it universal
2015-11-09Put ChatEvent handler into own functionest31
Comply with line limit.
2015-11-08Abort compile when attempting to build client with Irrlicht 1.8.2kwolekr
2015-11-08Add errno to socket creation failed exceptionkwolekr
2015-11-08Write new line character sequence at end of print()est31
Fix regression of commit 5e507c9829942c434a6f1ae7a4f3a488c7e50bef "Add server side ncurses terminal" where no line termination character was printed after a lua print outside of terminal mode. Fixes #3350.
2015-11-08Fix misc. MinGW and Valgrind warningskwolekr
2015-11-08Add LuaSecureRandomest31
2015-11-08Update minetest.conf.example and src/settings_translation_file.cppest31
2015-11-08Don't compile pcgrandom on Windowsest31
There it isn't needed.
2015-11-07Add support for audio feedback if placing node failedBlockMen
2015-11-06Add server side ncurses terminalest31
This adds a chat console the server owner can use for administration or to talk with players. It runs in its own thread, which makes the user interface immune to the server's lag, behaving just like a client, except timeout. As it uses the same console code as the f10 console, things like nick completion or a scroll buffer basically come for free. The terminal itself is written in a general way so that adding a client version later on is just about implementing an interface. Fatal errors are printed after the console exists and the ncurses terminal buffer gets cleaned up with endwin(), so that the error still remains visible. The server owner can chose their username their entered text will have in chat and where players can send PMs to. Once the username is secured with a password to prevent anybody to take over the server, the owner can execute admin tasks over the console. This change includes a contribution by @kahrl who has improved ncurses library detection.
2015-11-05Schematics: Add core.place_schematic_on_vmanip APIkwolekr
Fix memory leak in minetest.place_schematic Slightly refactor Schematic code
2015-11-04Fix time progressing too fastest31
Before, time progressed wrongly. This was due to a mistake in how m_time_of_day_f was calculated, and a regression of the last two commits.
2015-11-04Time: use locks againest31
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.
2015-11-03Time: Remove serverside getter, and use atomic operationsest31
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.
2015-11-03Atomic: cleanup and add more operationsest31
Cleanup: * Remove volatile keyword, it is of no use at all. [1] * Remove the enable_if stuff. It had no use either. The most likely explanation why the enable_if stuff was there is that it was used as something like a STATIC_ASSERT to verify that sizeof(T) is not larger than sizeof(void *). This check however is not just misplaced in a place where we already use a lock, it isn't needed at all, as gcc will just generate a call to to the runtime if it compiles for platforms that don't support atomic instructions. The runtime will then most likely use locks. Code style fixes: * Prefix name of the mutex * Line everything up nicely, where it makes things look nice * Filling \ continuations with spaces is code style rule Added operations on the atomic var: * Compare and swap * Swap The second point of the cleanup also fixes the Android build of the next commit. [1]: http://stackoverflow.com/q/2484980
2015-11-03Only go fast in autorun if fast move is enabledest31
2015-11-03Silence 'unused typedef' warning for STATIC_ASSERT()kwolekr
2015-11-02Add callback parameter for core.emerge_area()kwolekr
2015-11-02Speed up saving of profiling data by 27xgregorycu
On Windows Release x64 bit build this changes: ProfilerGraph::put 1.68% -> 0.061% ProfilerGraph::draw 12% -> 17.% So yes, there is a tradeoff between saving profiling data (executed always) and drawing the profiler graph (executed very rarely). But usually you don't have the profiler graph open.
2015-11-02Rename and move basicmacros.h to util/basic_macros.hest31
2015-11-02Print --videomodes response to standard output, tooKahrl
2015-11-02Print direct command line responses to standard output instead of using the ↵Perttu Ahola
log system Using logging for these just makes them bloated and hard to read and overally just not neat at all.
2015-11-01Fix Lua scripting synchronizationkwolekr
For several years now, the lua script lock has been completely broken. This commit fixes the main issue (creation of a temporary rather than scoped object), and fixes a subsequent deadlock issue caused by nested script API calls by adding support for recursive mutexes.
2015-11-01Fix Noise compiled under clang >= 3.7.x with -O2 or higherkwolekr
When compiled with optimizations, the most recent versions of clang seem to 'optimize' out a crucial "and %reg, 0x7FFFFFFF" instruction in noise2d(), probably because it somehow assumed the variable n would never become greater than that amount. Indeed, signed integer underflow is undefined behavior in C and C++, so while this optimization is "correct" in that sense, it breaks lots of existing code. Solved by changing n to an unsigned type, making behavior well-defined.
2015-10-31Fix server crashing on Lua errorsShadowNinja
Previously, the server called FATAL_ERROR when a Lua error occured. This caused a (mostly useless) core dump. The server now simply throws an exception, which is caught and printed before exiting with a non-zero return value. This also fixes a number of instances where errors were logged multiple times.
2015-10-31Fix clang warningShadowNinja
2015-10-31Fix C++11 compatibilitykwolekr
2015-10-29WoW-style AutorunDuane Robertson
This allows the player to toggle continuous forward with a key (F by default), so we don't have to hold down the forward key endlessly.
2015-10-29findSpawnPos: Add setting for max height above water levelparamat
Increase default from 6 to 16 to help with mgv7 and mgfractal Large-scale or alternative mapgens can result in a lowland spawn point not being found, causing a spawn at (0, 0, 0) possibly buried underground The max height is now settable to allow correct player spawn in any mapgen or when using custom noise parameters
2015-10-29Mgfractal: Add filler depth noiseparamat
2015-10-27Add STATIC_ASSERT() macro and use itkwolekr
2015-10-27Add DISABLE_CLASS_COPY macro (and use it)kwolekr
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.