SmallJoker [Wed, 18 Sep 2019 16:47:09 +0000 (18:47 +0200)]
Inventory: Properly revert client predictions (#8945)
Caused by incremental inventory sending
Previously everything was overwritten by serializing the entire inventory
Hugo Locurcio [Tue, 17 Sep 2019 04:13:17 +0000 (06:13 +0200)]
Improve undersampling settings
The setting now accepts values between 1 and 8 in the
Advanced Settings menu.
Values 0 and 1 now behave the same way (setting it to 1 won't
disable MSAA anymore), so there's no need to expose 0 as a value.
This closes #8939.
SmallJoker [Tue, 17 Sep 2019 17:02:01 +0000 (19:02 +0200)]
Inventory: Undo prediction on drop
DS [Sun, 15 Sep 2019 16:14:31 +0000 (18:14 +0200)]
Fix the bgcolor formspec element (#8716)
rubenwardy [Sun, 15 Sep 2019 15:56:11 +0000 (16:56 +0100)]
Fix formspec version backup in prepends losing data
Paramat [Sat, 14 Sep 2019 22:02:07 +0000 (23:02 +0100)]
Dungeons: Clean up parameters, improve structure variety (#8918)
While preserving the general character of dungeon structure.
Slightly increase the range of standard room horizontal size, while
preserving the average horizontal size.
Return to classic maximum large room size of 16x16x16.
Make 1 in 4 dungeons have a 1 in 8 chance for each room being 'large',
making multiple large rooms possible for the first time.
Make 1 in 8 dungeons allow diagonal corridors, to make these a little
more common.
Make corridor width vary from 1 to 2, but forced to 2 if diagonal
corridors are allowed, to make them passable.
Add some comments.
SmallJoker [Sat, 14 Sep 2019 18:31:07 +0000 (20:31 +0200)]
Built-in formspecs: Force version 1
ANAND [Fri, 13 Sep 2019 06:04:06 +0000 (11:34 +0530)]
client.h: Add missing const's
ANAND [Wed, 21 Aug 2019 14:23:48 +0000 (19:53 +0530)]
LocalPlayer: Fix code-style
ANAND [Wed, 21 Aug 2019 13:08:41 +0000 (18:38 +0530)]
client.cpp: Fix code-style in Client::sendPlayerPos
ANAND [Wed, 21 Aug 2019 13:04:47 +0000 (18:34 +0530)]
Fix LocalPlayer::isDead always returning false if player is immortal
ANAND [Sun, 25 Aug 2019 00:54:21 +0000 (06:24 +0530)]
Send ActiveObjects once right after Init2
SmallJoker [Tue, 10 Sep 2019 19:18:42 +0000 (21:18 +0200)]
Formspecs: Introduce formspec_version to mods
SmallJoker [Wed, 26 Jun 2019 17:37:14 +0000 (19:37 +0200)]
CSM: Fix itemstack:get_meta() 'metadata' indexing error
SmallJoker [Tue, 25 Jun 2019 19:18:08 +0000 (21:18 +0200)]
Load CSM environment after the restrictions are known
Safety-guards for CSM callbacks to abort on a bad implementation
Only run callbacks when the mods are loaded (and with it: builtin)
Duplication checks inside constructors
SmallJoker [Mon, 9 Sep 2019 18:35:45 +0000 (20:35 +0200)]
InventoryManager: Fix virtual function overload warning
SmallJoker [Sun, 25 Aug 2019 08:55:27 +0000 (10:55 +0200)]
Send cumulated inventory changes only each step (#8856)
Applies to player and detached inventories
updatepo.sh [Sun, 8 Sep 2019 07:21:59 +0000 (09:21 +0200)]
Update minetest.conf.example
updatepo.sh [Sun, 8 Sep 2019 07:21:36 +0000 (09:21 +0200)]
Update translation strings
Translators [Sun, 8 Sep 2019 07:19:17 +0000 (09:19 +0200)]
Update from Weblate
Paramat [Sun, 8 Sep 2019 16:51:34 +0000 (17:51 +0100)]
Dungeons: Remove non-functional 'projecting dungeons' setting (#8897)
SmallJoker [Sun, 8 Sep 2019 16:43:49 +0000 (18:43 +0200)]
Lua API documentation: Various fixes (#8914)
Remove unusable 'minetest.setting_*' from client_lua_api.txt
lua_api.txt:
- Define the 'mod.conf' format
- More precise 'settingtypes.txt' format reference
- Document special sound files 'player_*damage'
- Group, sort and add 'not_in_creative_inventory' special group
- Define the 'Settings' format
- Warning about incorrect byte saving in 'StorageRef'
- Note about non-persistent player definitions fields
- Better 'leveldiff' and 'level' group description
ANAND [Sun, 8 Sep 2019 10:34:44 +0000 (18:34 +0800)]
lua_api.txt: Improve privilege definition (#8912)
HybridDog [Sat, 7 Sep 2019 17:38:54 +0000 (19:38 +0200)]
Move debug.txt after it grows too big (#8904)
Before opening the file for writing, its file size is tested. If it exceeds 50 MB, it is moved to debut.txt.1, otherwise the log is appended to the old messages. An old debut.txt.1 is removed if it already exists.
SmallJoker [Sat, 7 Sep 2019 09:15:12 +0000 (11:15 +0200)]
label[]: Fix cut-off translated text
sfan5 [Fri, 6 Sep 2019 16:29:29 +0000 (18:29 +0200)]
Fix Irrlicht 1.9 support
Paul m. p. P [Thu, 5 Sep 2019 11:06:22 +0000 (13:06 +0200)]
doc/client_lua_api: Clarify how client side api and mods start (#8822)
sfan5 [Wed, 4 Sep 2019 20:21:40 +0000 (22:21 +0200)]
Force item entities out of solid nodes (simpler) (#8885)
sfan5 [Tue, 3 Sep 2019 14:36:46 +0000 (16:36 +0200)]
Fix Inventory::moveItemSomewhere()
SmallJoker [Mon, 2 Sep 2019 17:30:36 +0000 (19:30 +0200)]
Inventory: Handle removeItem leftovers (#8884)
Muhammad Rifqi Priyo Susanto [Sun, 1 Sep 2019 21:43:41 +0000 (04:43 +0700)]
'All Settings': Don't use checkboxes for 'no...' mapgen flags (#7847)
DS [Sun, 1 Sep 2019 18:12:22 +0000 (20:12 +0200)]
Various fixes to lua_api.txt (#8878)
ANAND [Sat, 17 Aug 2019 06:39:40 +0000 (12:09 +0530)]
particles.cpp: Fix code-style
Mainly spacing and pointer placement
ANAND [Fri, 16 Aug 2019 17:07:49 +0000 (22:37 +0530)]
clientobject.h: Fix code-style
Pedro Gimeno [Fri, 9 Aug 2019 08:51:17 +0000 (14:21 +0530)]
Fix rotation of attached particlespawner
Co-authored-by: ANAND <ClobberXD@gmail.com>
DS [Sat, 31 Aug 2019 12:47:13 +0000 (14:47 +0200)]
Document world format version 28 (private nodemeta) (#8857)
DS [Fri, 30 Aug 2019 17:40:32 +0000 (19:40 +0200)]
Document luaentity pitch and roll in world format (#8864)
Beha [Fri, 30 Aug 2019 17:40:08 +0000 (13:40 -0400)]
Clarify docs regarding pointed_thing and get_pointed_thing_position (#8766)
Paramat [Wed, 28 Aug 2019 00:39:33 +0000 (01:39 +0100)]
Various settingtypes.txt improvements (#8867)
Improve 'readable' setting names for waving water settings.
Change 'near plane' to 'near clipping plane'.
Document physics settings.
mgv6_spflags:
Change 'new biome system' to 'snowbiomes flag' for clarity.
Add missing 'noflat' flag to default flags.
SmallJoker [Sun, 25 Aug 2019 07:46:54 +0000 (09:46 +0200)]
Inventory: Fix missing setModified calls
Previously inv:remove_item and inv:set_list did not trigger an inventory update
Paramat [Sat, 24 Aug 2019 19:06:31 +0000 (20:06 +0100)]
Mapgen v6: Various mudflow code improvements and bugfixes (#8805)
Calculate 'i' inside 'y' loop to avoid 'i' and 'y' becoming
out of step due to the uses of 'continue'.
Simplify calculation of 'p2d' when coordinates are inverted.
Remove some unnecessary and unreliable 'index out of
voxelmanip' checks.
Move calculation of '&em' out of loops.
For 'Loop further down until not air' code, use y coordinate
to detect being out of voxelmanip, instead of checking index
which did not detect that.
Add and improve comments.
Indent the 'for (;; y--) {' loop.
Improve format and fix codestyle issues.
SmallJoker [Sat, 24 Aug 2019 16:54:51 +0000 (18:54 +0200)]
fontengine: Fix non-gettext builds
SmallJoker [Sat, 24 Aug 2019 17:07:38 +0000 (19:07 +0200)]
Inventory: Send dirty lists where appropriate (#8742)
This change reduces the amount of sent data towards clients. Inventory lists that are already known to the player are skipped, saving quite some data over time.
Raises protocol version to 38 to ensure correct backwards-compatible code.
Paul Ouellette [Sat, 24 Aug 2019 16:38:02 +0000 (12:38 -0400)]
Add ItemStack:get_description() to get tooltip (#8847)
sfan5 [Thu, 22 Aug 2019 22:14:45 +0000 (00:14 +0200)]
Improve occlusion culling in corridors with additional check
sfan5 [Fri, 23 Aug 2019 19:52:11 +0000 (21:52 +0200)]
Restore approximate occlusion check
While less precise, it worked better which is what matters in the end.
DS [Fri, 23 Aug 2019 20:16:50 +0000 (22:16 +0200)]
Make Mapgen::spreadLight use a queue (#8838)
Wuzzy [Fri, 23 Aug 2019 01:16:07 +0000 (03:16 +0200)]
Fix default hand definition not using wieldhand.png
SmallJoker [Sat, 17 Aug 2019 13:42:36 +0000 (15:42 +0200)]
Occlusion: Check for light_propagates and do mapblock bounds checks
SmallJoker [Sat, 17 Aug 2019 12:21:22 +0000 (14:21 +0200)]
Occlusion: Begin cleanup
sfan5 [Wed, 21 Aug 2019 13:30:52 +0000 (15:30 +0200)]
Revert "Don't send position update packet if player is dead"
This reverts commit
fb6f1fdcbe3ee2321cc33eb00f2c6da86744d00a.
Paramat [Tue, 20 Aug 2019 20:09:44 +0000 (21:09 +0100)]
Add player sprite textures back into the engine as a fallback (#8823)
'player.png' and 'player_back.png' are hardcoded into the engine as
the default appearence of the player object, so the textures should
be present in the engine.
This results in a functional fallback sprite player for when a game
has no player appearence related code.
ANAND [Tue, 20 Aug 2019 19:15:12 +0000 (03:15 +0800)]
lua_api.txt: Add link to Minetest Modding Book (#8826)
SmallJoker [Tue, 20 Aug 2019 17:25:46 +0000 (19:25 +0200)]
remove_detached_inventory: Fix segfault during mod load
ANAND [Sat, 4 May 2019 07:33:51 +0000 (13:03 +0530)]
Don't send position update packet if player is dead
ANAND [Sat, 4 May 2019 07:13:31 +0000 (12:43 +0530)]
Disable autoforward if player is dead
theviper121 [Mon, 19 Aug 2019 17:18:11 +0000 (12:18 -0500)]
Restore intended functionality to minimap markers (#8819)
Unknown [Sun, 18 Aug 2019 08:08:57 +0000 (10:08 +0200)]
Find LuaJIT headers on vcpkg
luajit headers were moved into a subdirectory to avoid conflicts with plain lua
SmallJoker [Sat, 17 Aug 2019 11:27:28 +0000 (13:27 +0200)]
ClientInterface: Use recursive mutex to prevent freeze in on_newplayer() (#8808)
sfan5 [Thu, 15 Aug 2019 18:47:32 +0000 (20:47 +0200)]
Remove unused function in ReliablePacketBuffer
sfan5 [Thu, 15 Aug 2019 18:14:44 +0000 (20:14 +0200)]
Minor refactor of IncomingSplitBuffer
sfan5 [Thu, 15 Aug 2019 17:54:40 +0000 (19:54 +0200)]
Drop m_list_size from ReliablePacketBuffer
It's not required and, worse, can lead to bugs.
Paramat [Thu, 15 Aug 2019 19:32:28 +0000 (20:32 +0100)]
Mapgen v6: Fix mudflow iteration and iterate twice (#8795)
In MapgenV6::flowMud(), the previous implementation of coordinate
inversion caused the 2 inverted mudflow iterations (out of the 3
iterations) to not loop over the area, so only 1 non-inverted
iteration occurred.
Fix this bug but only iterate mudflow twice, as mapgen v6 has only
had 1 iteration for many years. There is now a good balance of 1
non-inverted iteration and 1 inverted iteration.
sfan5 [Thu, 15 Aug 2019 14:11:01 +0000 (16:11 +0200)]
network: Stricter handling of split packets
sfan5 [Thu, 15 Aug 2019 15:17:17 +0000 (17:17 +0200)]
network: Fix crash in ReliablePacketBuffer on mismatching packets
In the error condition the exception would be thrown before m_list_size
is decremented, causing a nullptr dereference in e.g. popFirst().
DS [Wed, 14 Aug 2019 21:35:47 +0000 (23:35 +0200)]
Fix undeclared global warning because of _ (#8798)
upsilon [Wed, 18 Apr 2018 16:27:08 +0000 (18:27 +0200)]
Add function `minetest.read_schematic`
Jozef Behran [Tue, 13 Aug 2019 18:02:50 +0000 (20:02 +0200)]
Fix unnecessary exception use in 3 more methods (#8791)
* Fix unnecessary exception use in Server::SendBlocks
The code in this method calls getBlockNoCreate and then
messes around with try...catch to skip blocks which are not
in the memory. Additionally, it repeatedly calls
m_env.getMap() inside this loop. Speed the code up by
extracting the m_env.getMap() out of the loop and getting
rid of the try...catch.
* Fix unnecessary exception use in Server::SendBlock
Another unnecessary try...catch is slowing down
Server::SendBlock. Remove that to speed it up and get a nice
side effect of simplifying the code in question.
* Fix unnecessary exception use in MMVManip::initialEmerge
Remove another unneeded exception usage from
MMVManip::initialEmerge to speed that code up and simplify
it but be careful to not remove the braces as there is a
TimeTaker in use there.
Jozef Behran [Tue, 13 Aug 2019 17:58:27 +0000 (19:58 +0200)]
Fix unnecessary exception use in Map::getSectorXXX (#8792)
The Map::getSectorNoGenerate throws an exception but no other
code is really dependent on that. Fix the odd instance of
misuse in ClientMap::emergeSector and remove the exception
throwing version of the method along with the "NoEx" suffixes
in the names of these methods.
SmallJoker [Tue, 13 Aug 2019 17:56:55 +0000 (19:56 +0200)]
Better F6 profiler (#8750)
Update the profiler names to make more sense of what they actually represent
Move the profiler code from header to its source file
Use monospace font to align lines
Format the statistics line to align better with surrounding values
Refresh the profiler each 3 seconds (roughly)
Jozef Behran [Wed, 7 Aug 2019 10:06:45 +0000 (12:06 +0200)]
Fix unnecessary exception use in Map::isNodeUnderground
The isNodeUnderground calls getBlockNoCreate which calls
getBlockNoCreateNoEx and throws InvalidPositionException
if the returned value is nullptr, which isNodeUnderground
then catches to return "false". Remove the try..catch in
isNodeUnderground by calling getBlockNoCreateNoEx instead
of getBlockNoCreate and checking the returned value for
nullptr.
Jozef Behran [Tue, 13 Aug 2019 12:26:37 +0000 (14:26 +0200)]
Fix compare between pointer and 0 in unittests
Pointers shall be set to nullptr, not 0, according to the
coding standards. By implication they shall be compared with
nullptr, not 0, too. Fix this code to match that.
Beha [Mon, 12 Aug 2019 17:18:52 +0000 (13:18 -0400)]
Clear old item groups when they are overridden. (#8753)
This fixes overridden items keeping their old groups in the group to
items mapping even after their groups have been changed in lua.
It also prevents a more widespread issue where overriding an item
will add its content ID *twice* to the mapping, resulting in odd
behaviour in features such as ABMs.
rubenwardy [Mon, 12 Aug 2019 17:16:35 +0000 (18:16 +0100)]
Add support for set_formspec_prepend in main menu (#8611)
Rogier [Sun, 11 Dec 2016 17:47:50 +0000 (18:47 +0100)]
Handle multiple deserialization of a block's entities
This fix consists of two parts:
- Clear the list of stored entities. This has no side-effects.
- Catch the case where active entities exist and print a message.
Clearing the active entitiy list has side-effects that should
be handled. (those entities are known to the environment and
to clients).
As avoiding those side-effects is more complex, and as this
problem is not expected to occur (with PR #4847 merged), there
is no real incentive to implement this ATM.
This issue was a contributing factor to bug #4217. With the other
contributing factor removed (PR #4847), this commit makes sure this
factor does not go unnoticed if it ever happens again.
hannesa2 [Mon, 12 Aug 2019 16:59:53 +0000 (18:59 +0200)]
Update Gradle to 5.5.1 (#8771)
Jozef Behran [Sat, 10 Aug 2019 21:32:47 +0000 (23:32 +0200)]
Fix breakage of non-GLES2 setups (#8774)
The commit
526a9e4b66abaf83eb6b1aaa3e93375acd87b830 breaks
the non-GLES2 setups because the code that is intended to
handle that is behind "elseif()" which is interpreted as
"elseif(false)" and thus the code never gets executed. Fix
that by changing the offending line to else().
Additionally, to avoid breaking the server only build
(which shall not have a dependency on GL/GLU/GLES at all),
enclose the entire block code in if(BUILD_CLIENT).
Paul Ouellette [Sat, 10 Aug 2019 21:28:00 +0000 (17:28 -0400)]
Fix some issues with minetest.clear_craft (#8712)
* Fix some issues with minetest.clear_craft
- Fix memory leak
- Fix crafts with an output count not being cleared when clearing by
input.
- Fix recipe list being reversed when clearing by input.
* Add CraftInput::empty()
Jozef Behran [Sat, 10 Aug 2019 17:45:44 +0000 (19:45 +0200)]
Merge pull request #8776 from osjc/FixGetNode
Finish getNode cleanup
sfan5 [Tue, 16 Jul 2019 17:20:06 +0000 (19:20 +0200)]
Add player knockback on punch to builtin
sfan5 [Tue, 16 Jul 2019 12:00:42 +0000 (14:00 +0200)]
Implement adding velocity to player from Lua
The intended usecase is knockback, but there's potential for more.
SmallJoker [Thu, 1 Aug 2019 12:43:31 +0000 (14:43 +0200)]
Builtin UI: Move box element to ensure correct draw order
ANAND [Thu, 8 Aug 2019 16:04:46 +0000 (21:34 +0530)]
Allow customizing chat message format (#8529)
ANAND [Thu, 8 Aug 2019 15:41:23 +0000 (21:11 +0530)]
guiVolumeChange: Fix child not being removed
Paramat [Wed, 7 Aug 2019 21:07:51 +0000 (22:07 +0100)]
Avoid crash caused by, and improve, 'findSpawnPos()' (#8728)
Avoid an unsuitable spawn position (which if outside mapgen limits can
cause a crash) if the main 0-3999 loop reaches its end. Fallback to a
spawn at 0,0,0.
Check the mapgen-returned 'spawn_level' value for being outside limits.
When 'air_count' reaches 2, move back down 1 to spawn in the lower
empty node.
If the spawn position is disallowed by 'objectpos_over_limit()', 'break'
from loop instead of 'continue' because positions above are probably
also over limit.
Reset 'air_count' to 0 if an obstruction is found, to make 'air_count'
consecutive empty nodes.
Allow spawn in 'airlike' drawtype nodes such as mod-added vacuum,
alien atmospheres, fog etc.
Add clarifying comments and improve codestyle.
SmallJoker [Wed, 7 Aug 2019 19:17:17 +0000 (21:17 +0200)]
Game: Fix double BS multiplication
Beha [Wed, 7 Aug 2019 18:32:40 +0000 (14:32 -0400)]
Fix usage of wrong variable in builtin chat command handling (#8762)
This was introduced in commit
8e75785 and resulted in chat commands not
returning their output text.
ANAND [Sun, 4 Aug 2019 04:53:59 +0000 (10:23 +0530)]
Client::Interact: Use InteractAction enum instead of numeric constants
This replaces the magic numbers used as interaction modes both client-side and server-side, primarily for the sake of ease-of-readability.
SmallJoker [Wed, 7 Aug 2019 17:16:31 +0000 (19:16 +0200)]
Unify wield item handling (#8677)
This moves the wield item functions to Player and the tool utils for range calculation
Also 'local_inventory' was removed due to redundancy in Client
ANAND [Wed, 7 Aug 2019 17:15:46 +0000 (22:45 +0530)]
guiConfirmRegistration: Set focus to text field (#8761)
ANAND [Wed, 7 Aug 2019 17:15:33 +0000 (22:45 +0530)]
Hide chat when console is open (#8656)
DS [Wed, 7 Aug 2019 10:07:30 +0000 (12:07 +0200)]
Fix inventory_overlay for nodes without inventory_image (#8433)
sfan5 [Wed, 7 Aug 2019 08:31:12 +0000 (10:31 +0200)]
Optimize usage of TOSERVER_GOTBLOCKS packet
Beha [Wed, 7 Aug 2019 08:48:04 +0000 (04:48 -0400)]
Do not add group values of zero to group lists. (#8751)
This fixes an issue where when the engine looked up groups (for example,
in ABM node names), NodeDefManager's m_group_to_items would contain nodes
with a group value of zero, resulting in nodes with flammable = 0 being
burned by a fire mod with a group:flammable checking ABM.
It brings consistency to the behaviour described in the api
documentation, where zero and nil groups should be the same.
SmallJoker [Tue, 6 Aug 2019 19:33:13 +0000 (21:33 +0200)]
Clean up and fix freetype=false crashes (#8641)
A IGUIFont of type bitmap/vector cannot be converted to CGUITTFont
Fixes various segfaults in gameplay
Shorter font cache code, cleaned up (?)
rubenwardy [Tue, 6 Aug 2019 18:30:18 +0000 (19:30 +0100)]
Add luacheck to check builtin (#7895)
Paramat [Tue, 6 Aug 2019 01:30:28 +0000 (02:30 +0100)]
Mapgen Flat: Fix and improve getSpawnLevelAtPoint() (#8756)
Previously, this wrongly returned ground level (a position containing
a solid node) as spawn level.
Return ground level + 2 (+ 2 to spawn above biome 'dust' nodes).
Improve codestyle and make more consistent with generateTerrain().
sfan5 [Mon, 5 Aug 2019 09:25:02 +0000 (11:25 +0200)]
Update curl dependency in buildbot
sfan5 [Sun, 4 Aug 2019 18:40:35 +0000 (20:40 +0200)]
Fix binary-string confusion in client network code
sfan5 [Thu, 25 Jul 2019 17:55:40 +0000 (19:55 +0200)]
Clean up FindOpenGLES2.cmake