On world load the collision code can not see node boxes, since the
nodes have not been loaded. Thus it collided only at the next full
node. However, standing on a slab on world load leaded to sinking into
it until the world finished loading. Then one maybe fell further, if
the node below was not walkable.
Now, with this commit, when no node around the player has been loaded
it simply does not move the player.
Because not all circles are round:
* circles using an euclidean metric are what we usually call "round"
* circles using a maximum metric look like euclidean rectangles with equal adjacent sides (squares)
* circles using a manhattan metric look like an euclidean right angled rhombus (squares, but 45° rotated to the former one)
[ci skip]
Fixes#3196. Before, we didn't throw an error, and the engine thought the
block isn't occupied. But in fact it might be that redis is still loading,
and the block does exist in the database. The result was a cheesy map.
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
-> Don't pass pointer to whole IGameDef to NodeMetadata constructors
and deserializers, but only to IItemDefManager, which is needed
-> Remove the unused content_mapnode_get_new_name() method
-> Fix style for MapBlock::deSerialize and MapBlock::deSerialize_pre22,
improving accuracy of error messages a bit
-> Fix style at other serialisation methods too
-> Improve accuracy of some comments
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.
The legacy code added in commit
d879a539cd - "Add minetest.swap_node"
for sending the whole mapblock to older clients on the case of a node
modification with swap_node, had the problem that the block chosen to be
sent to the client was referenced with node coordinates and not with
block coordinates, resulting in getting the wrong block sent to the client.
Entity positions are serialized as F1000. Disallow placing
entities outside safe borders with the minetest.add_entity
call.
Note that this patch only enforces those boundaries for
placing entities, moving entities that move outside boundaries
aren't affected.
Thanks to @nanepiwo for pointing this out.
Fix regression since commit:
915807f8db "Rename doc/mapformat.txt and update doc to match SRP changes"
And add an underscore to doc file name to make it more readable.
1. Do two renames:
* SER_FMT_CLIENT_VER_LOWEST -> SER_FMT_VER_LOWEST_WRITE
* SER_FMT_VER_LOWEST -> SER_FMT_VER_LOWEST_READ
Now the two define values are consistently named with the _WRITE defines
SER_FMT_VER_{HIGHEST,LOWEST}_WRITE, and to better point out what the two
serialisation versions actually are for.
2. wrap some lines in doc/worldformat.txt, and point out that the node
timers are serialized at a later point, as this can cause confusion about
what now happens (if one doesn't strictly read the if block's conditions).
3. some whitespace fixes in NodeTimerList::serialize, and one new comment.
The documentation file contains not just information about the
map itself, but also about further files inside the world's
directory.
Documentation didn't reflect recent SRP addition, now it does.
Modders are now able to select the range of ore column height,
and the midpoint at which they 'grow' starting from.
This commit adds three new parameters for the 'sheet' ore type:
column_height_min, column_height_max, and column_midpoint_factor.
clust_size is now deprecated for this ore type.
After this, it should hopefully not record line numbers anymore,
so the diffs of updatepo.sh runs are smaller. Well, this is theory,
lets see how it will turn out to be in practice.
Currently translated at 97.7% (264 of 270 strings)
This is a combination of 9 consecutive commits by the same author.
Their messages in chronological order are:
Translated using Weblate (Indonesian)
Currently translated at 79.2% (214 of 270 strings)
Translated using Weblate (Indonesian)
Currently translated at 80.0% (216 of 270 strings)
Ini merupakan istilah dan tidak perlu diterjemahkan
Translated using Weblate (Indonesian)
Currently translated at 89.6% (242 of 270 strings)
Penerjemahan
Translated using Weblate (Indonesian)
Currently translated at 94.8% (256 of 270 strings)
Penerjemahan
Translated using Weblate (Indonesian)
Currently translated at 95.9% (259 of 270 strings)
Mencari persamaan makna
Translated using Weblate (Indonesian)
Currently translated at 96.2% (260 of 270 strings)
Penerjemahan
Translated using Weblate (Indonesian)
Currently translated at 96.6% (261 of 270 strings)
Mencari persamaan makna
Translated using Weblate (Indonesian)
Currently translated at 97.0% (262 of 270 strings)
Penerjemahan
Translated using Weblate (Indonesian)
Currently translated at 97.7% (264 of 270 strings)
Istilah tidak diterjemahkan