v0.4 [Apr 13, 2013]
Big gameplay changes
- Added third person view
- Removed finite liquid and weather
Smaller gameplay tweaks
- Create bones only when the player's inventory is not empty & remove the bones when emptied
- Made pause menu actually pause singleplayer game and use lower maximum FPS in it
- Prevented placing node when player would be inside new node
- Drop an item instead a stack while sneaking
- Added support for exiting formspecs by doubleclicking outside
Logistic changes
- Made build prefer pkg-config for freetype2 detection
- Added function to deregister a profiler from profiler list
- Made MutexQueue use jsemaphore for signaling
- Added maximum recursion depth to read_json_value
- Made default User-agent follow RFC 2616
- Include system info in the HTTP user agent on Windows
- Added proper client initialization
- Settings: Add no-exception variants of each get method
- Huge overhaul of the entire MapgenParams system
- ServerEnvironment: Remove direct dependency on EmergeManager
- Replace pause, message, and death menus by formspec ones
- Pass arguments by reference, reducing data copies
- Cleaned up client init states by bumping protocol version
- Added support for named threads on Linux, BSD, and Windows (MSVC-only)
- Infered ipv6_server from bind_address; fixed client connect to IN(6)ADDR_ANY
- Fixed all warnings reported by clang
- Removed locks that aren't absolutely required from JThread
- Use narrow_to_wide in gettext instead of operating system dependent conversion function
- Organized builtin into subdirectories
- Switched to "core" namespace internally
- Mapped Irrlicht log level to Minetest's and allowed writing Irrlicht logs to debug file
- Made print() NUL-safe
- Added formspec toolkit and re-factored main-menu to use it
- Reworked dumping functions
- Improved performance by removing some temporary objects
- Added an AppData file
- United node shaders and improved shader performance
- Made players only stay loaded while they're connected
- Added formspec API versioning
- Added support for multipart/form-data to HTTPFetch
- Improved error reporting of LevelDB backend
Visual changes
- Added waypoint HUD element
- Added on-the-fly normal map generation
- Made sun and moon textureable
- Made formspec text-area word-wrap
- Added support for DPI based HUD scaling
- Made debug text adjust it's border to the screensize
- Added download rate to non-HTTP media progress bar
- Added support for interlaced-polarized, top-bottom, and side-by-side 3D screens
- Made pause menu hide before "Shutting down..." message is drawn
- Sorted commands and privileges alphabetically in '/help'
- Improved face shading with and without shaders
- Added support for scalable font and GUI elements
- Made GUITable mouse wheel scrolling faster
Other changes
- Added the option to bind to a specific address
- Made flag strings clear specified flag with 'no' prefix
- Added check to avoid usage of broken LuaJIT < 2.0.0-beta-8
- Lots of new and updated translations
- Improved performance of ABMs by only calcuating object counts once
- Improved win32 file version information
- Documented CMake options in README
- Corrected misleading detached inventory error message
- Added more informative error messages for inventory and item method errors
- Added redis database backend
- Moved the old stuff to doc
- Removed dependency on marshal and many other async changes
- Made item entity stacks merge on the ground and add TTL to item entities
- Updated buildbot scripts and added 64-bit buildbot
- Added support for directly starting a world by name from command line
- Many performance improvements and memory usage reductions
- Added support for Android 2.3 and later
Bug fixes
- Fixed objects being selected behind a node
- Fixed absence of images when compiled with RUN_IN_PLACE=0 (xyz)
- Added option to link to OpenGL ES
- Fixed CMake list parsing in build
- Fixed cutting of multi-line error messages at half of second line in main menu dialog
- Created new instance of mesh every time it's required
- Escaped error messages in error dialog
- Added operating system to user agent
- Prevented auto-rotated nodes from replacing the nodes they were placed on
- Added protection support to auto-rotated nodes
- Set locale properly when built without gettext support
- Fixed Minetest's reliable UDP implementation
- Compare values instead of pointers in Inventory::operator==
- Fixed some errors reported by clang static analyzer (xyz)
- Fixed win32 reading semaphore count not working (broke all queues)
- Prevented player from jumping into nodes from below
- Fixed cURL DLL not getting installed when sound was disabled
- Fixed error on mod download failure
- Fixed use of previously deallocated EmergeManager
- Fixed only half of unreliable queue being handled per step in worst case
- Fixed player textures by adding '-' to list of allowed characters in media filenames
- Fixed texture pack names corrupting mainmenu
- Fixed crash when a error occurred in a globalstep callback
- Fixed a heap-use-after-free in pause menu (xyz)