4970 Commits

Author SHA1 Message Date
paramat
6e54aa7492 Mapnode: Replace rotateAlongYAxis with improved version
Get facedir by using lowest 5 bits of param2 and limiting to 23
More robust, frees up higher param2 bits for other uses
Change lookup table and table index to u8
2015-10-02 06:03:36 +01:00
est31
67c1695c16 Fix some SRP issues
-> Remove memory allocation bugs
-> Merge changes from upstream, enabling customizeable memory allocation
2015-09-30 09:19:40 +02:00
est31
2a2707e629 Some map border related fixes
1. Check for entity addition success in spawn_item implementation
2. Check for success in item_drop callback, so that the player
doesn't lose the item if they are outside bounds and try to drop it.
3. When existing player joins game, check that their position is inside
map bounds. If not, set their position to the return value of findSpawnPos().
4. Make findSpawnPos() respect the border

2 fixes a lua crash if a player drops an item outside map bounds.
3 fixes an assertion crash if a player leaves when being outside map bounds,
and then rejoins.
2015-09-29 23:06:15 +02:00
Kahrl
2f7fcfd074 Don't serialize StaticObjectList with > 65535 objects
Because the count is serialized as u16, this would cause overflow.

If minetest later deserialized a mapblock with an incorrect
static object count, it would be unable to find the NameIdMapping
(which comes after the StaticObjectList) and abort with an error
such as "Invalid block data in database: unsupported NameIdMapping
version" (issue #2610).
2015-09-29 01:55:12 +02:00
paramat
30829e350e Decorations: Remove error message 'chunksize not divisable by sidelen'
Sidelen larger than 16 is essential for low density decorations
With sidelen > 16 chunksize may not be divisable by sidelen if
chunksize is changed, in this situation setting sidelen = chunksize
is desirable and should not create error messages.
2015-09-26 23:58:56 +01:00
est31
8cdb95a157 Abort at uncatched exceptions
Change a remaining assert(0) call to FATAL_ERROR(msg).
There was a regression since commit

ced6d20295a8263757d57c02a07ffcb66688a163 "For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives"

where when an "uncatched" exception is thrown inside a "side thread",
the program doesn't abort anymore.

This led to the problem @netinetwalker experienced where the emergethread
got an unhandled exception for loading a mapblock while redis was loading,
(see #3196) and then jmped outside its loop to work down its queue.
This resulted in the server not doing any emerges anymore.
2015-09-27 00:27:36 +02:00
est31
801f7aa7f5 Fix redis erroring on non found blocks
Thanks to @netinetwalker for spotting the error, proposing a fix, and testing it.

Error due to @est31's merging changes to PR #3202 to add more error reporting for invalid reply types, commit:

524a7656e3e5cd671b05c13e2ad69cb84bad0423 "redis: throw error if block request failed"

Now we branch out on the valid reply type "not found".
2015-09-26 23:42:55 +02:00
Igor Gnatenko
abca008d9a FindJson: use PATH_SUFFIXES jsoncpp to find incdir
For example, on Fedora systems jsoncpp headers is installed in `/usr/include/jsoncpp`.
2015-09-26 21:43:01 +02:00
Christof Kaufmann
6af42510bc Fix falling through nodes on world load (fixes #2784)
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.
2015-09-26 21:40:45 +02:00
Tim
0b892a0499 Clarify radii and distance types in documentation
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]
2015-09-26 21:28:50 +02:00
Tim
a950df7bc2 Update .gitignore to ignore symlinks to non-static Minetest directories and sort into an editor section
[ci skip]
2015-09-26 21:28:50 +02:00
netinetwalker
cf87a13080 redis: throw error if block request failed
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.
2015-09-26 17:36:59 +02:00
kwolekr
23316c9f92 Add /emergeblocks command and core.emerge_area() Lua API 2015-09-23 15:56:24 -04:00
Loic Blot
5bd2c138d6 Save and remove player by pointer
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
2015-09-23 19:37:05 +02:00
paramat
7ac5989c12 Mapnode: Add rotateAlongYAxisFull supporting 24 facedirs 2015-09-22 20:54:25 +01:00
est31
30b83ad1a6 Replace "self program" with "this program" in fstk boilerplates
... and remove trailing whitespace.
2015-09-21 20:05:17 +02:00
Kahrl
1abfb3cfe1 Fix another typo in doc/world_format.txt 2015-09-21 19:26:54 +02:00
est31
3b175acadd lua_api.txt: fix typo
Thanks to @kaadmy (NeD) for pointing this out.
2015-09-21 18:10:05 +02:00
est31
41bdbf33f9 Various style cleanups + unused code removal
-> 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
2015-09-19 20:57:29 +02:00
Loic Blot
d81f15c1e9 Little optimization on getAdded/Removed activeobjects per player loop.
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.
2015-09-19 20:57:07 +02:00
paramat
f312681cf4 Mgv5/6/7: Re-add #include profiler.h as commented-out option 2015-09-19 02:27:21 +01:00
paramat
51c1d419c5 Blob ore: Fix partial blobs 2015-09-19 02:27:00 +01:00
est31
b55622a4bb Document current node metadata format
Document the node metadata changes of the commit (serialisation version >=23):

704782c95b8a4194a9383da55d93f37fd0f7278f "WIP node metadata, node timers"
2015-09-18 16:47:13 +02:00
est31
8e21da183c Send proper block to old clients for swap_node calls
The legacy code added in commit

d879a539cd19ddd1ee34afec2512fb2238de2822 - "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.
2015-09-17 20:23:31 +02:00
kwolekr
6831884d5c Ore: Add puff ore type 2015-09-17 03:04:50 -04:00
est31
e7b604a029 Fix object position border checking
Borders have to be converted into BS format in order to be accurately comparable to
object positions.
2015-09-16 17:39:49 +02:00
est31
5c3e2175ff Disallow placing entities outside safe boundaries
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.
2015-09-15 19:45:17 +02:00
paramat
d3aa8df67b Firelike drawtype: Improve code
Remove unusable fine rotation by param2
Remove unused and redundant code
Fix code style issues
2015-09-14 08:04:01 +01:00
Rui914
96bd2c3b4d Minor tweaks handle_settings_buttons 2015-09-14 08:29:15 +02:00
est31
3f24b0bc01 Fix "make install" and add underscore to doc file name
Fix regression since commit:

915807f8db1f3721ad9ffc00a4863ad940010c45 "Rename doc/mapformat.txt and update doc to match SRP changes"

And add an underscore to doc file name to make it more readable.
2015-09-14 07:51:31 +02:00
est31
69399235ef Serialisation: documentation fixes, clarifying renames and whitespace fixes
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.
2015-09-14 07:02:15 +02:00
est31
8959fd9944 Rename doc/mapformat.txt and update doc to match SRP changes
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.
2015-09-14 00:32:06 +02:00
kwolekr
f24947f903 Ore: Add ore sheet column height range selection
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.
2015-09-13 00:11:50 -04:00
est31
d2ed6d9182 Run updatepo.sh
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.
2015-09-12 23:24:19 +02:00
Tim
24e86da6ef Translated using Weblate (Esperanto)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:18:41 +02:00
Kisbenedek Márton
27925cd96c Translated using Weblate (Hungarian)
Currently translated at 91.1% (246 of 270 strings)
2015-09-12 23:18:41 +02:00
Alex “XShell” Schekoldin
7e80fc8a5d Translated using Weblate (Russian)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:18:41 +02:00
Alex “XShell” Schekoldin
3292465848 Translated using Weblate (Russian)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:18:40 +02:00
Muhammad Rifqi Priyo Susanto
52d4ee07fa Translated using Weblate (Indonesian)
Currently translated at 98.1% (265 of 270 strings)

Penerjemahan
2015-09-12 23:18:40 +02:00
E. Kastelijn
e40707d346 Translated using Weblate (Dutch)
Currently translated at 97.0% (262 of 270 strings)
2015-09-12 23:18:40 +02:00
Muhammad Rifqi Priyo Susanto
be7b802e7f Translated using Weblate (Indonesian)
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
2015-09-12 23:16:43 +02:00
Tim
c7e2971062 Translated using Weblate (Esperanto)
Currently translated at 73.7% (199 of 270 strings)
2015-09-12 23:16:41 +02:00
E. Kastelijn
9b422a92c2 Translated using Weblate (Dutch)
Currently translated at 90.7% (245 of 270 strings)
2015-09-12 23:16:41 +02:00
Tim
9ff4ded696 Translated using Weblate (German)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:16:41 +02:00
Tim
0717070270 Translated using Weblate (Esperanto)
Currently translated at 44.8% (121 of 270 strings)
2015-09-12 23:16:41 +02:00
Tim
20e8114b1c Translated using Weblate (Esperanto)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2015-09-12 23:16:40 +02:00
Jakub Vaněk
ca9a293b7c Translated using Weblate (Czech)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:16:40 +02:00
shadowninja
944ea8c33a Translated using Weblate (Spanish)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:16:40 +02:00
shadowninja
f847eb44af Translated using Weblate (Spanish)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:16:40 +02:00
Jakub Vaněk
71dafff287 Translated using Weblate (Czech)
Currently translated at 100.0% (270 of 270 strings)
2015-09-12 23:16:40 +02:00