ANAND ︻气デ═一 [Sat, 11 May 2019 16:48:27 +0000 (22:18 +0530)]
Define operators == and != for ItemStack
ANAND [Sun, 28 Apr 2019 09:42:20 +0000 (15:12 +0530)]
builtin/../register.lua: Abort make_wrap_deregistration if param is invalid
ANAND [Fri, 3 May 2019 12:44:05 +0000 (18:14 +0530)]
minimal: Fix crash due to assertion fail
ANAND [Sat, 27 Apr 2019 12:35:28 +0000 (18:05 +0530)]
Better document behavior of on_punchplayer
Esp. the fact that it's invoked even if the punched player is dead
ANAND [Sat, 27 Apr 2019 11:53:36 +0000 (17:23 +0530)]
PlayerSAO::setHP - Don't call on_hpchange callbacks if HP hasn't changed
Paramat [Sat, 27 Apr 2019 23:44:26 +0000 (00:44 +0100)]
Remove unnecessary CSM warning (#8485)
sofar [Sat, 27 Apr 2019 23:42:13 +0000 (16:42 -0700)]
Force send a mapblock to a player (#8140)
* Force send a mapblock to a player.
Send a single mapblock to a specific remote player.
This is badly needed for mods and games where players are teleported
into terrain which may be not generated, loaded, or modified
significantly since the last player visit.
In all these cases, the player currently ends up in void, air, or
inside blocks which not only looks bad, but has the effect that the
player might end up falling and then the server needs to correct for
the player position again later, which is a hack.
The best solution is to send at least the single mapblock that the
player will be teleported to. I've tested this with ITB which does this
all the time, and I can see it functioning as expected (it even shows
a half loaded entry hallway, as the further blocks aren't loaded yet).
The parameter is a blockpos (table of x, y, z), not a regular pos.
The function may return false if the call failed. This is most likely
due to the target position not being generated or emerged yet, or
another internal failure, such as the player not being initialized.
* Always send mapblock on teleport or respawn.
This avoids the need for mods to send a mapblock on teleport or
respawn, since any call to `player:set_pos()` will pass this code.
ANAND [Sat, 27 Apr 2019 10:45:44 +0000 (16:15 +0530)]
Improve readability of debug menu by using '|' (#8488)
* Improve readability of debug menu by using '|'
* Restore whitespace to separate yaw and cardinal direction
Co-Authored-By: ClobberXD <ClobberXD@gmail.com>
ANAND [Sat, 27 Apr 2019 10:45:20 +0000 (16:15 +0530)]
Range-limit value passed to PlayerSAO::set{HP|Breath} (#8264)
Muhammad Rifqi Priyo Susanto [Sat, 27 Apr 2019 10:44:56 +0000 (17:44 +0700)]
Use player as starting point instead of camera when pointing node (#8261)
Same pointing area on both camera modes.
This fix is inapplicable for non-crosshair input.
SmallJoker [Fri, 26 Apr 2019 23:56:31 +0000 (01:56 +0200)]
Correct the checkbox selection box position (#8246)
Remove m_btn_height dependency, replace with the text and checkbox size.
ANAND [Fri, 26 Apr 2019 17:07:32 +0000 (22:37 +0530)]
CMakeLists.txt: Remove references to Minecraft and Infiniminer (#8487)
stujones11 [Fri, 19 Apr 2019 10:06:47 +0000 (11:06 +0100)]
Android: Clear chat open flag on cancel or completion (#8478)
paramat [Wed, 10 Apr 2019 19:33:54 +0000 (20:33 +0100)]
Attend to review, re-arrange blank lines, update lua_api.txt
Pedro Gimeno [Thu, 4 Apr 2019 16:53:55 +0000 (18:53 +0200)]
Fix regression in automatic_face_movement_max_rotation_per_sec
Values <= 0 should make the yaw change instant. This worked in 0.4.16 but was broken in
089f59458286.
Per bug report by oil_boi_minetest on IRC.
Jozef Behran [Sun, 14 Apr 2019 20:56:38 +0000 (15:56 -0500)]
Various network performance improvements (#8125)
* Optimize packet construction functions
Some of the functions that construct packets in
connection.cpp are using a const reference to get the raw
packet data to package and others use a value passed
parameter to do that. The ones that use the value passed
parameter suffer from performance hit as the rather bulky
packet data gets a temporary copy when the parameter is
passed before it lands at its final destination inside the
newly constructed packet. The unnecessary temporary copy
hurts quite badly as the underlying class (SharedBuffer)
actually allocates the space for the data in the heap.
Fix the performance hit by converting all of these value
passed parameters to const references. I believe that this
is what the author of the relevant code actually intended
to do as there is a couple of packet construction helper
functions that already use a const reference to get the
raw data.
* Optimize packet sender thread class
Most of the data sending methods of the packet sender thread
class use a value passed parameter for the packet data to be
sent. This causes the rather bulky data to be allocated on
the heap and copied, slowing the packet sending down. Convert
these parameters to const references to avoid the performance
hit.
* Optimize packet receiver thread class
The packet receiver and processor thread class has many
methods (mostly packet handlers) that receive the packed data
by value. This causes a performance hit that is actually
worse than the one caused by the packet sender methods
because the packet is first handed to the processPacket
method which looks at the packet type stored in the header
and then delegates the actual handling to one of the
handlers. Both, processPacket and all the handlers get the
packet data by value, leading to at least two unnecessary
copies of the data (with malloc and all the slow bells and
whistles of bulky classes).
As there already is a few methods that use a const reference
parameter for the packet data, convert all this value passed
packets to const references.
Paramat [Sat, 13 Apr 2019 00:46:38 +0000 (01:46 +0100)]
World start time: Move to first full light (day night ratio = 1000) (#8410)
6125 is the time of first full light according to 'get_node_light()',
and the time of first full light visually when basic shaders are on.
This is the optimum default new world start time, taking all possible
games into account.
The previous time assumed a game similar to Minetest Game. Games
should set this setting themselves according to their needs.
Vitaliy [Fri, 12 Apr 2019 16:27:39 +0000 (19:27 +0300)]
Add Irrlicht-specific smart pointer (#6814)
Paul Ouellette [Fri, 12 Apr 2019 12:29:29 +0000 (08:29 -0400)]
Add Mkdocs API site (#8133)
* Add MkDocs API site
Paul Ouellette [Thu, 11 Apr 2019 19:45:39 +0000 (15:45 -0400)]
Add node field to PlayerHPChangeReason table (#8368)
Paramat [Tue, 9 Apr 2019 02:20:27 +0000 (03:20 +0100)]
Nodedef 'drop' documentation: Improve, add tool filtering (#8458)
ANAND [Mon, 8 Apr 2019 18:40:02 +0000 (00:10 +0530)]
util/hex.h: Remove whitespace-only line (#8460)
Paramat [Sun, 7 Apr 2019 23:37:52 +0000 (00:37 +0100)]
daynightratio.h: Improve codestyle, minor optimisations (#8453)
Paramat [Sun, 7 Apr 2019 18:20:00 +0000 (19:20 +0100)]
Android settings: Use 'simple' leaves instead of 'fancy' (#8440)
'Fancy' leaves are intensive to render.
Also remove the unnecessary duplicated setting of 'chunksize'.
Jozef Behran [Sun, 7 Apr 2019 17:08:27 +0000 (12:08 -0500)]
Optimize random turns in dungeongen (#8129)
It turns out there is no need to return the new value and
preserve the old one in random_turn, the procedure can be
made to modify the value in-place. This saves quite a bunch
of parameter and return value copying.
adrido [Sun, 7 Apr 2019 16:45:25 +0000 (18:45 +0200)]
Find PostgreSQL correctly (#8435)
starling13 [Sun, 7 Apr 2019 10:01:42 +0000 (13:01 +0300)]
util/hex.h: Reserve result space in hex_encode()
Reserve enough space for the result of hex_encode() to eliminate reallocations
ANAND [Sun, 7 Apr 2019 10:00:57 +0000 (15:30 +0530)]
Add deprecation warnings for ObjectRef:get/set_attribute (#8443)
Paramat [Thu, 4 Apr 2019 22:30:10 +0000 (23:30 +0100)]
Stabilise 'day night ratio' to fix object brightness flicker (#8417)
Previously, when basic shaders were enabled, the function
time_to_daynight_ratio() returned values jumping between 149 and 150
between times 4375 and 4625, and values jumping between 999 and 1000
between times 6125 and 6375, (and the corresponding times at sunset)
due to tiny float errors in the interpolation code.
This caused the light level returned by blend_light() to jump between
14 and 15, which became noticeable recently as those light levels were
given different visual brightnesses.
Add early returns to avoid the problematic interpolation, and to
avoid unnecessary running of the loop.
ANAND [Thu, 4 Apr 2019 21:42:18 +0000 (03:12 +0530)]
Change sign of pitch angle in debug menu (#8438)
Co-Authored-By: ClobberXD <ClobberXD@gmail.com>
rubenwardy [Wed, 3 Apr 2019 20:37:30 +0000 (21:37 +0100)]
Change pitch fly binding to 'P', add to change keys menu (#8314)
Loic Blot [Sun, 31 Mar 2019 17:30:20 +0000 (19:30 +0200)]
Fix comments
Loïc Blot [Mon, 25 Mar 2019 15:54:27 +0000 (16:54 +0100)]
Create ServerThread earlier in the startup process
Loïc Blot [Mon, 25 Mar 2019 15:42:53 +0000 (16:42 +0100)]
mapgen: drop mapgen id from child mapgens.
This id must be owned by the child mapgen and never be set to a misc value by a developer
Also use nullptr in some places
Loïc Blot [Mon, 25 Mar 2019 15:38:35 +0000 (16:38 +0100)]
EmergeManager::initMapgens use FATAL_ERROR if and drop boolean return
We never handle the boolean return, also init twice is a coding error, not a runtime error
HybridDog [Sun, 31 Mar 2019 17:26:17 +0000 (19:26 +0200)]
Use unordered_map instead of map for craft definitions (#8432)
DS [Wed, 27 Mar 2019 20:05:50 +0000 (21:05 +0100)]
Optimize core.after in a simple way (#8351)
Paramat [Wed, 27 Mar 2019 00:18:43 +0000 (00:18 +0000)]
Require 'waving = 3' in a nodedef to apply the liquid waving shader (#8418)
Makes the liquid waving shader per-nodedef like waving leaves/plants,
instead of being applied to all liquids.
Like the waving leaves/plants shaders, the liquid waving shader can
also be applied to meshes and nodeboxes.
Derived from a PR by t0ny2.
Paramat [Tue, 26 Mar 2019 03:56:57 +0000 (03:56 +0000)]
Dungeons: Do not remove nodes that have 'is_ground_content = false' (#8423)
Like randomwalk caves, preserve nodes that have 'is_ground_content = false',
to avoid dungeons that generate out beyond the edge of a mapchunk destroying
nodes added by mods in 'register_on_generated()'.
Issue discovered by, and original PR by, argyle77.
rubenwardy [Tue, 26 Mar 2019 01:18:52 +0000 (01:18 +0000)]
Prevent multi-line chat messages server-side (#8420)
Paramat [Wed, 20 Mar 2019 04:37:33 +0000 (04:37 +0000)]
Document 'highly unstable' mapgens instead of 'stable' mapgens (#8404)
sfan5 [Mon, 18 Mar 2019 21:41:39 +0000 (22:41 +0100)]
Fix texture rotation for wallmounted nodeboxes
fixes #8358
sfan5 [Mon, 18 Mar 2019 14:06:27 +0000 (15:06 +0100)]
httpfetch: Disable IPv6 here too if requested by settings (#8399)
Paramat [Mon, 18 Mar 2019 10:19:53 +0000 (10:19 +0000)]
num_emerge_threads: Initialise value to cope with setting syntax error (#8396)
paramat [Sun, 17 Mar 2019 08:38:15 +0000 (08:38 +0000)]
num_emerge_threads: Fix documentation of automatic selection
Wuzzy [Sun, 17 Mar 2019 12:55:02 +0000 (13:55 +0100)]
Add newline before itemstring in item tooltip (#8213)
ANAND [Sun, 17 Mar 2019 09:25:47 +0000 (14:55 +0530)]
core.after: Improve assertion message (#8388)
ANAND [Sun, 17 Mar 2019 02:05:03 +0000 (07:35 +0530)]
Builtin: Add vector.angle(). Returns the angle between 2 vectors (#7738)
Paramat [Sat, 16 Mar 2019 05:04:11 +0000 (05:04 +0000)]
Lua_api.txt: Document blockpos, coordinate conversion, map terminology (#8376)
Also fix and improve LVM 'calc_lighting()' warning.
Paramat [Thu, 14 Mar 2019 12:49:33 +0000 (12:49 +0000)]
num_emerge_threads: Warn of crashes when > 1 (#8357)
Loïc Blot [Thu, 14 Mar 2019 10:49:46 +0000 (11:49 +0100)]
LINT fixes since recent tooling update
Loïc Blot [Fri, 23 Mar 2018 10:07:19 +0000 (11:07 +0100)]
Update our tooling (Clang 5 -> 7, GCC 7 -> 8)
This change permits to use up-to-date compilers, clang-tidy and
clang-format
It also refactor the tidy/format step to drop the binary selection from
scripts and perform it directly in travis
Paramat [Thu, 14 Mar 2019 00:27:16 +0000 (00:27 +0000)]
Valleys mapgen code rewrite (#8101)
Shorter, simpler, clearer and more consistent with other mapgens,
while preserving functionality.
Base terrain shape is unchanged.
With the 'vary river depth' option disabled, river surface level
is unchanged.
Behaviour of the 4 heat/humidity/river depth options is very
slightly changed due to bugfixes and code cleanup (the mapgen is
'unstable').
Apply heat and humidity gradients above water_level instead of
above y = 0.
Loïc Blot [Tue, 12 Mar 2019 15:53:21 +0000 (16:53 +0100)]
Drop GUIConfirmRegistration::m_address unused field
rubenwardy [Tue, 12 Mar 2019 07:58:02 +0000 (07:58 +0000)]
Fix cast from const by accessing string data directly (#8354)
Fixes #8327
rubenwardy [Tue, 12 Mar 2019 07:56:56 +0000 (07:56 +0000)]
HPChange Reason: Fix push after free, and type being overwritten (#8359)
* HPChange Reason: Fix push after free, and type being overwritten
Fixes #8227 and #8344
rubenwardy [Sun, 10 Mar 2019 18:53:02 +0000 (18:53 +0000)]
Fix serialization of std::time_t by casting to u64 first (#8353)
Fixes #8332
DS [Sun, 10 Mar 2019 10:16:35 +0000 (11:16 +0100)]
Document the `float` special group (#8306)
Ragulan R [Sun, 10 Mar 2019 10:16:27 +0000 (10:16 +0000)]
Display pitch angle in debug menu (#8321)
Paramat [Sun, 10 Mar 2019 01:49:03 +0000 (01:49 +0000)]
Confirm registration GUI: Remove positional strings to fix Windows bug (#8258)
Positional strings don't work on some Windows builds.
Remove server address string, leave player name string present.
HybridDog [Thu, 7 Mar 2019 07:31:25 +0000 (08:31 +0100)]
Abort when trying to set a not registered node (#7011)
I removed the MapNode constructor which takes a nodename and gives the node's id or CONTENT_IGNORE
The code which used this constructor (two places) now handles the situation of not registered nodes correctly:
* minetest.set_node and similar functions make minetest crash when a not registered node is passed
* reverting a node with rollback aborts if the node is not registered
HybridDog [Thu, 7 Mar 2019 07:23:03 +0000 (08:23 +0100)]
World config: Make depends easier to read (#7396)
* Do not always show every depends textfieds
When there are no dependencies, it does not longer show an empty list.
* Adjust the list height to avoid a scrollbar when possible
* change minimum height and no dependencies message
* Do not get depends for modpacks
Jozef Behran [Thu, 7 Mar 2019 07:20:33 +0000 (02:20 -0500)]
Optimize string handling in path search (#8098)
Use "append" method to construct the various game paths
instead of wasteful string concatenation. Additionally, use a
temporary to extract and reuse a result of a few common
subexpressions to further reduce the overhead.
Jozef Behran [Thu, 7 Mar 2019 07:19:13 +0000 (02:19 -0500)]
Optimize interaction distance checker (#8193)
The "what" parameter is being passed by value, most likely by
accident as the type is "const std::string". Convert it to a
reference by adding the missing "&".
sfan5 [Thu, 7 Mar 2019 07:17:01 +0000 (08:17 +0100)]
Update a few dependency versions for buildbot (#8319)
rubenwardy [Thu, 7 Mar 2019 06:41:21 +0000 (06:41 +0000)]
Fix detach inventory serialisation (#8331)
rubenwardy [Wed, 6 Mar 2019 22:24:39 +0000 (22:24 +0000)]
Fix incorrect string length check after cast
rubenwardy [Wed, 6 Mar 2019 14:41:37 +0000 (14:41 +0000)]
Fix clang tidy error due to incorrect use of quotes for character
Paramat [Tue, 5 Mar 2019 22:58:38 +0000 (22:58 +0000)]
Change 'num_emerge_threads' default to 1 (#8303)
HybridDog [Tue, 5 Mar 2019 09:11:21 +0000 (10:11 +0100)]
Add math.factorial (#8298)
Loic Blot [Tue, 5 Mar 2019 07:34:54 +0000 (08:34 +0100)]
Add Android keystore to the repository
Password is not included :)
DS [Tue, 5 Mar 2019 07:17:48 +0000 (08:17 +0100)]
Add sounds for falling and attached nodes (#7719)
* Add sounds for falling and attached nodes
The sound specified in `node_definition.sounds.fall` is used.
When a falling node is spawned at a position or an attached node drops, the sound is played at this position.
* allow all sorts of soundspecs
HybridDog [Tue, 5 Mar 2019 07:14:33 +0000 (08:14 +0100)]
Fix --color command line parameter ignorance (#7173)
* Fix color command line parameter ignorance
* coloured log: Support detecting the tty on windows
* Print an error message when setting something invalid as color mode instead of silently using mode never
* Revert "coloured log: Support detecting the tty on windows"
This reverts commit
4c9fc6366487ac0e6799e181796ca594797bb6f8.
It didn't work for travis and belongs to a separate PR
* Allow adjusting the log color with an environment variable
If --color is not passed to minetest, is used to decide on the log colorization.
Minetest settings can not be used instead of an environment variable because logs may appear before loading them.
* fix empty if body
Benjamin Lindley [Tue, 5 Mar 2019 07:13:15 +0000 (01:13 -0600)]
Replace for loop with call to standard library function (#8194)
This loop makes multiple passes over m_stack (type std::list) in order to remove all elements with a specified value. Replacing the loop with a call to std::list::remove does the same job, but in only one pass.
rubenwardy [Tue, 5 Mar 2019 07:12:58 +0000 (07:12 +0000)]
Hide uninstall package button on unmodifiable paths (#8255)
sofar [Tue, 5 Mar 2019 07:12:02 +0000 (23:12 -0800)]
Add referer to remote media requests. (#8135)
This sends the following header to a remote media server:
Referer: minetest://<server_name>:port
This was verified with CTF and the Minetest Public Remove Media
server. If the servername was a plain IPv6 address it will
contain `:` characters and will be encapsulated in `[]` to
be a valid URI.
sofar [Tue, 5 Mar 2019 07:11:13 +0000 (23:11 -0800)]
getS16NoEx() returns true unless syntactical error in conf. (#8304)
The getS16NoEx() handler will return true unless there is a
`[num_emerge_threads]` line in the `minetest.conf` at which
point the excption handler part is reached. Due to the fact that
`defaultsettings.cpp` has a default value set for this setting,
that never will happen.
Because of this, the code will never check the number of threads on
the system, and keep `nthreads = 0`. If that happens, the value is
changed to `1` and only 1 emerge thread will be used.
The default should be set to `1` instead, due to the potential unsafe
consequences for the standard sqlite map files, but that should be a
separate commit that also adds documentation for that setting. This
commit focuses on removing this `hiding` bug instead.
sfan5 [Mon, 4 Mar 2019 22:43:18 +0000 (23:43 +0100)]
Continue with 5.1.0-dev
sfan5 [Mon, 4 Mar 2019 22:43:14 +0000 (23:43 +0100)]
Bump version to 5.0.0
Loïc Blot [Sun, 3 Mar 2019 22:59:24 +0000 (23:59 +0100)]
Bump android version code
adrido [Sat, 2 Mar 2019 09:56:01 +0000 (10:56 +0100)]
Don't include and link to gettext if gettext is not found (#8305)
ANAND [Sat, 2 Mar 2019 03:44:35 +0000 (09:14 +0530)]
README: Remove references to Minecraft and InfiniMiner (#8260)
Loïc Blot [Fri, 1 Mar 2019 19:16:11 +0000 (20:16 +0100)]
Fix particle spawners not visible since CSM spawner implementation (#8289)
* Drop the ID mapper, use a big u64 instead. This will permit to resync server ids properly with the manager code
* Modernize some code parts (std::unordered_map, auto)
* generate id on client part on U32_MAX + 1 ids, lower are for server ids
Loïc Blot [Tue, 26 Feb 2019 07:53:53 +0000 (08:53 +0100)]
Revert "Revert CSM particles commit to fix particle spawner bug for 5.0.0 (#8288)"
This reverts commit
01cd63bd3bca0192dab2834faf414b022706a77e.
Loïc Blot [Tue, 26 Feb 2019 07:52:10 +0000 (08:52 +0100)]
Fix build since translation updates
Paramat [Tue, 26 Feb 2019 04:26:25 +0000 (04:26 +0000)]
Revert CSM particles commit to fix particle spawner bug for 5.0.0 (#8288)
Reverts
5dab7426451842793b183fbd961ad2ae83c8acbd
"[CSM] Add functions to create particles and particlespawners."
Translations [Sun, 24 Feb 2019 17:43:32 +0000 (18:43 +0100)]
Run updatepo.sh
Translations [Thu, 14 Feb 2019 07:31:44 +0000 (07:31 +0000)]
Update translations
Paramat [Sat, 23 Feb 2019 20:24:59 +0000 (20:24 +0000)]
Update minetest.conf.example and settings_translation_file.cpp (#8278)
Nathanaël Courant [Sat, 23 Feb 2019 19:55:54 +0000 (20:55 +0100)]
Fix files with CRLF line endings in translations (#8280)
SmallJoker [Sat, 23 Feb 2019 14:54:49 +0000 (15:54 +0100)]
Minimap: Fix radar restriction broken by
9649e47
Server-side radar restriction is now possible again
Thanks to @pgimeno for this nice catch.
Paramat [Sat, 23 Feb 2019 03:15:56 +0000 (03:15 +0000)]
Settingtypes.txt: Remove 2 lines missed in a recent commit (#8277)
Paramat [Sat, 23 Feb 2019 02:41:36 +0000 (02:41 +0000)]
Attend to LINT sillyness (#8276)
ANAND [Sat, 23 Feb 2019 01:12:33 +0000 (06:42 +0530)]
Remove 's' from 'automatic forwards' (#8272)
rubenwardy [Fri, 22 Feb 2019 03:19:52 +0000 (03:19 +0000)]
Content store: Ignore '_game' in game names in ID generation (#8270)
Fixes 'install' button continuing to be displayed after installing a game whose
name ends with '_game'.
Paul Ouellette [Mon, 18 Feb 2019 21:04:43 +0000 (16:04 -0500)]
Update gamebar on tab enter (#8192)
rubenwardy [Mon, 18 Feb 2019 16:36:13 +0000 (16:36 +0000)]
Fix games not updating on deletion
As reported by @random-geek
Paul Ouellette [Mon, 18 Feb 2019 11:46:55 +0000 (06:46 -0500)]
Fix content store crash (#8244)
Paramat [Mon, 18 Feb 2019 02:53:33 +0000 (02:53 +0000)]
lua_api.txt, settingtypes.txt: Various improvements (#8252)
Wuzzy [Sun, 17 Feb 2019 20:49:51 +0000 (21:49 +0100)]
Update many things in Lua API docs (#8236)
- minetest.get_hit_params
- minetest.get_dig_params
- table.indexof
- Scope of minetest.register_alias
- Vector function parameters
- More explanation of when `minetest.on_player_receive_fields` is called
- Syntax/semantics of the fields in `minetest.on_player_receive_fields`