oweals/minetest.git
8 years agoCONTRIBUTING: disallow signed git commits 4004/head
est31 [Sun, 17 Apr 2016 16:35:02 +0000 (18:35 +0200)]
CONTRIBUTING: disallow signed git commits

They break bzr-git, and bzr-git breaks the Minetest PPAs.

8 years agoMake logging use a fixed-length buffer to avoid race conditions.
Ekdohibs [Thu, 21 Apr 2016 08:45:42 +0000 (10:45 +0200)]
Make logging use a fixed-length buffer to avoid race conditions.

Previously, race conditions occurred inside logging, that caused
segfaults because a thread was trying to use an old pointer that
was freed when the string was reallocated. Using a fixed-length buffer
avoids this, at the cost of cutting too long messages over seveal lines.

8 years agoBiomes: Make dust fallback 'ignore' to fix y = 63 lighting
paramat [Thu, 21 Apr 2016 07:58:29 +0000 (08:58 +0100)]
Biomes: Make dust fallback 'ignore' to fix y = 63 lighting

The shadow bug at y = 63 was caused by dark air being placed as dust,
when the biome dust was unspecified it was falling back to 'air'
In dustTopNodes only dust == 'ignore' will disable dust placement

8 years agoTextures: Replace menu background fallback dirt_bg.png with empty sky texture
paramat [Wed, 20 Apr 2016 06:24:14 +0000 (07:24 +0100)]
Textures: Replace menu background fallback dirt_bg.png with empty sky texture

8 years agoFix timer initialization.
Auke Kok [Tue, 19 Apr 2016 22:47:14 +0000 (15:47 -0700)]
Fix timer initialization.

This fixes the problem that the first timer tick is an
overrun and causes all timers to expire immediately.

replaces #4003

8 years agoMainmenu: Code cleaning
kilbith [Mon, 18 Apr 2016 20:43:12 +0000 (22:43 +0200)]
Mainmenu: Code cleaning

8 years agoMainmenu: Unify favorite servers with main serverlist
kilbith [Mon, 18 Apr 2016 16:20:04 +0000 (18:20 +0200)]
Mainmenu: Unify favorite servers with main serverlist

8 years agoMgv7: Combine mountain terrain generation with base terrain generation
paramat [Sat, 16 Apr 2016 22:20:20 +0000 (23:20 +0100)]
Mgv7: Combine mountain terrain generation with base terrain generation

Previous mountain terrain generation was by necessity placing
stone in air, this was removing air from any overgenerated
structures such as tunnels, dungeons and large caves
Moving it into the base terrain generation loop ensures that
only 'ignore' is replaced

generateRidgeTerrain: only return if node_max.Y < water_level - 16
Previously, if water level was set a few nodes above a mapchunk
border the river channel was only partially excavated

8 years agofalling: walk 4 additional diagonally down directions.
Auke Kok [Thu, 14 Apr 2016 06:10:37 +0000 (23:10 -0700)]
falling: walk 4 additional diagonally down directions.

This seems very little cost and matches the old behavior more
closely. This will cause some more falling nodes to get added
to falling clusters. With the efficiency of the algorithm, this
really doesn't do much damage.

8 years agoMainmenu: Still support favorites if send_pre_v25_init is disabled 3998/head
est31 [Fri, 15 Apr 2016 02:13:53 +0000 (04:13 +0200)]
Mainmenu: Still support favorites if send_pre_v25_init is disabled

@SmallJoker has noted a bug that servers from the (local) main menu
favorites list can't be opened.

This commit fixes the bug by disabling any main menu based protocol
checks for servers from the favorite list.

Also, it fixes a second bug that happens when a server from the
public serverlist doesn't send its supported protocol versions,
most likely because its running a minetest older than commit [1].
Then we have shown an error msg that the server has enforced
one specific protocol version. This was most likely not the case.

Of course, we can't do anything better than do an assumption on
the protocol versions if they are not known. That assumption
should however be closest to the most often occuring case as
possible.

Also, some little cleanups.

[1]: 5a0ed780f56a5225b3d7c5f64099586e390e5f39 "Server: announce MIN/MAX protocol version supported to serverlist. Client: check serverlist"

8 years agomainmenu: Tidy up logic in is_server_protocol_compat() (#3997)
SmallJoker [Fri, 15 Apr 2016 12:37:09 +0000 (14:37 +0200)]
mainmenu: Tidy up logic in is_server_protocol_compat() (#3997)

Apply de morgan to simplify the logic.

8 years agoAdd option to disable entity selectionboxes. (#3992)
TriBlade9 [Thu, 14 Apr 2016 09:15:41 +0000 (02:15 -0700)]
Add option to disable entity selectionboxes. (#3992)

Setting only loaded once, default value is to enable them.

8 years agoFix inventory hud scaling
rubenwardy [Tue, 12 Apr 2016 11:54:08 +0000 (12:54 +0100)]
Fix inventory hud scaling

8 years agoMgv7, mgflat, mgfractal: Tunnel generation code optimisation
paramat [Tue, 12 Apr 2016 03:43:22 +0000 (04:43 +0100)]
Mgv7, mgflat, mgfractal: Tunnel generation code optimisation

8 years agoMgv5: Optimise tunnels, add biome material in entrances
paramat [Sat, 9 Apr 2016 02:03:46 +0000 (03:03 +0100)]
Mgv5: Optimise tunnels, add biome material in entrances

Place biome top node on tunnel entrance floor
Instead of doing nothing at node_max.Y + 1 use 1-down
overgeneration for tunnel generation and noisemaps

8 years agoMgvalleys: Don't let cavegen place biome nodes everywhere
paramat [Fri, 8 Apr 2016 23:24:36 +0000 (00:24 +0100)]
Mgvalleys: Don't let cavegen place biome nodes everywhere

Fix use of 'air_above' bool so that biome
nodes are only placed in tunnel floors
Minor code improvements
'Continue' when massive cave air is placed

8 years agoFix hotbar placement on displays with low screen density
PilzAdam [Mon, 11 Apr 2016 21:04:42 +0000 (23:04 +0200)]
Fix hotbar placement on displays with low screen density

8 years agoMinimap: revert change from RGBA to Indexed
Auke Kok [Sun, 10 Apr 2016 18:03:16 +0000 (11:03 -0700)]
Minimap: revert change from RGBA to Indexed

@kilbith spotted correctly that I had accidentally removed the
"soft" edging on the minimap overlay by converting it from RGBA
to Indexed, which killed the transparent pixels on the edging.

8 years agoConvert nodeupdate to non-recursive
Auke Kok [Wed, 30 Mar 2016 14:50:10 +0000 (07:50 -0700)]
Convert nodeupdate to non-recursive

This took me a while to figure out. We no longer visit all 9 block
around and with the touched node, but instead visit adjacent plus
self. We then walk -non- recursively through all neigbors and if
they cause a nodeupdate, we just keep walking until it ends. On
the way back we prune the tail.

I've tested this with 8000+ sand nodes. Video result is here:

  https://youtu.be/liKKgLefhFQ

Took ~ 10 seconds to process and return to normal.

8 years agoHud: Cache hud_scaling, fix minor style issues
kwolekr [Mon, 11 Apr 2016 03:51:36 +0000 (23:51 -0400)]
Hud: Cache hud_scaling, fix minor style issues

8 years agoHud: Fix offset being ignored by inventory bar
rubenwardy [Fri, 9 Jan 2015 17:04:25 +0000 (17:04 +0000)]
Hud: Fix offset being ignored by inventory bar

8 years agoUpdate CSRP-GMP to commit deaa11a7c29a73008
est31 [Sun, 10 Apr 2016 02:08:22 +0000 (04:08 +0200)]
Update CSRP-GMP to commit deaa11a7c29a73008

Backports 10 commits, with 8 commits
actually affecting source code:

https://github.com/est31/csrp-gmp/compare/695822e45d9ca48b75b4ec1af1b4eea19139f8b1...deaa11a7c29a730087380da231e785909ad21630

8 years agoDocument hpchange callback ordering thing (#3981)
raymoo [Sun, 10 Apr 2016 11:52:18 +0000 (04:52 -0700)]
Document hpchange callback ordering thing (#3981)

Document hpchange callback ordering thing

Callbacks registered by register_on_player_hpchange are ordered so that non-modifiers are called after modifiers are called. Credit to @TeTpaAka who mentioned this previously-undocumented feature in #3799.

See also commit

aa13baa30a45b0f834c23bd5c0407895eb8ec0ee "Add minetest.register_on_player_hpchange"

8 years agoMinimap: "North" indicator arrow for circle minimap
Auke Kok [Fri, 8 Apr 2016 04:50:33 +0000 (21:50 -0700)]
Minimap: "North" indicator arrow for circle minimap

Related: #3730

This adds a simple, and small "North" indicator to the circular
minimap. The indicator is in a classical triangle-like arrow with a
little bit of shading to accentuate the shape and give it a little
bit depth. The indicator is stuck exactly at the edge as far outwards
as possible, and is not too intrusive but still easy enough to spot.

8 years agoMainmenu: Refactor tab UI code
Rui914 [Thu, 31 Mar 2016 08:26:39 +0000 (17:26 +0900)]
Mainmenu: Refactor tab UI code

 - Use local variables for tabs in place of globals
 - Merge together if statements where possible
 - Replace manual table searching code with indexof where possible

8 years agoFix ncurses lookup on Arch Linux
David Knapp [Wed, 6 Apr 2016 06:53:00 +0000 (23:53 -0700)]
Fix ncurses lookup on Arch Linux

Arch Linux doesn't put it's ncursesw includes inside an ncursesw
directory.  This script ends up setting USE_CURSES as true, but
doesn't pick up any of the headers.

https://bugs.archlinux.org/task/13994

8 years agoMapgen: Optimise cave noises and tunnel excavation
paramat [Sat, 2 Apr 2016 01:05:08 +0000 (02:05 +0100)]
Mapgen: Optimise cave noises and tunnel excavation

Instead of doing nothing at node_max.Y + 1 use 1-down
overgeneration for tunnel generation and noisemaps
Move some old unused code in mgv7 to end of file

8 years agoRe-add and disable blit_with_interpolate_overlay
kwolekr [Thu, 7 Apr 2016 08:01:43 +0000 (04:01 -0400)]
Re-add and disable blit_with_interpolate_overlay

8 years agoClearer explanation of [colorize with alpha
Samuel Sieb [Wed, 6 Apr 2016 07:38:11 +0000 (00:38 -0700)]
Clearer explanation of [colorize with alpha

8 years agoFix #3955 (player dying on login).
Nathanaël Courant [Tue, 5 Apr 2016 23:11:36 +0000 (01:11 +0200)]
Fix #3955 (player dying on login).

It was caused by player not moving because fall was prevented, but their
velocity still increasing, causing fatal fall damage when world was
finally loaded. This commit fixes it by setting player velocity to zero
when the world around them is not loaded.

8 years agoFix compiler warnings from "Add an option to colorize to respect the destination...
Samuel Sieb [Tue, 5 Apr 2016 22:36:24 +0000 (15:36 -0700)]
Fix compiler warnings from "Add an option to colorize to respect the destination alpha"

Fix warnings added by commit 01ae43c48009f816f4649fae2f7f6997452aa6cf

Fixes #3952

8 years agoAdd an option to colorize to respect the destination alpha
Samuel Sieb [Sun, 3 Apr 2016 06:35:42 +0000 (23:35 -0700)]
Add an option to colorize to respect the destination alpha

Also, rework the colorizing code to be more efficient.

8 years agoDungeongen: Update disabled torch placement code
kinokoio [Thu, 31 Mar 2016 18:19:41 +0000 (12:19 -0600)]
Dungeongen: Update disabled torch placement code

8 years agoFix nametag hiding
est31 [Fri, 1 Apr 2016 23:43:34 +0000 (01:43 +0200)]
Fix nametag hiding

Commit

c3b279750ece0b5144bf8e973d55108347462223 "Move object nametags to camera"

has added a regression to still display
a shadow if their alpha got set to 0.

8 years agoMainmenu: Move description.txt textbox down
Rui914 [Tue, 29 Mar 2016 10:53:15 +0000 (19:53 +0900)]
Mainmenu: Move description.txt textbox down

Additionally, fix misc. code style issues

8 years agoRemove expensive copy of ContentFeatures
gregorycu [Wed, 30 Mar 2016 14:07:47 +0000 (01:07 +1100)]
Remove expensive copy of ContentFeatures

8 years agoParticleManager::handleParticleEvent: use switch
Loic Blot [Tue, 29 Mar 2016 22:06:47 +0000 (00:06 +0200)]
ParticleManager::handleParticleEvent: use switch

Use a proper switch with breaks.

8 years agomg_schematic: fix leak in lua API, and small cleanup
est31 [Mon, 28 Mar 2016 12:39:43 +0000 (14:39 +0200)]
mg_schematic: fix leak in lua API, and small cleanup

* Fix leak like behaviour if you load multiple schematics in a loop.

* Cleanup check in for, fixing theoretical out of bounds read if
Schematic::deserializeFromMts reduced the number of elements
in m_nodenames. A != check may need an overflow of the counter
before it hits, if origsize is larger than m_nodenames.size().

* Fix function name passed to errorstream: it was wrong. Also use
__FUNCTION__ instead of manually using the method name at other
places in the function.

* Don't shadow the name member in the loop.

8 years agoMapgen: Don't spread light of nodes outside the desired area
kwolekr [Wed, 30 Mar 2016 03:59:39 +0000 (23:59 -0400)]
Mapgen: Don't spread light of nodes outside the desired area

This fixes #3935, a regression from 0338c2e.
An 'optimization' was performed where an index for the VoxelManip being
operated on was mistakenly used for bounds checking within the incorrect
VoxelArea, namely, the area wherein light should be spread.

8 years agoNodes shader: Decrease amplitude of waving leaves and plants
paramat [Fri, 25 Mar 2016 17:50:26 +0000 (17:50 +0000)]
Nodes shader: Decrease amplitude of waving leaves and plants

Fix initialisation of variable 'disp'
Fix a few minor code style issues
Add independent X motion combining 2 prime frequencies

8 years agoMgv7: Decrease cliff steepness
paramat [Fri, 25 Mar 2016 15:39:24 +0000 (15:39 +0000)]
Mgv7: Decrease cliff steepness

8 years agostop falling.lua error
tenplus1 [Sun, 27 Mar 2016 20:09:35 +0000 (21:09 +0100)]
stop falling.lua error

2016-03-27 15:47:01: ERROR[Main]: ServerError: Lua: Runtime error from mod '*builtin*' in callback luaentity_Step(): Node name is not set or is not a string!
2016-03-27 15:47:01: ERROR[Main]: stack traceback:
2016-03-27 15:47:01: ERROR[Main]:  [C]: in function 'add_node'
2016-03-27 15:47:01: ERROR[Main]:  /usr/share/minetest/builtin/game/falling.lua:96: in function </usr/share/minetest/builtin/game/falling.lua:43>

8 years agoMapgen: Spread both night and day light banks in spreadLight
kwolekr [Tue, 29 Mar 2016 15:31:52 +0000 (11:31 -0400)]
Mapgen: Spread both night and day light banks in spreadLight

8 years agoFix small formatting issue in SRP debug output
sfan5 [Tue, 29 Mar 2016 17:55:39 +0000 (19:55 +0200)]
Fix small formatting issue in SRP debug output

Writing an u8 to verbosestream writes a char, not it's numeric value.

8 years agoRevert "Translated using Weblate (German)"
est31 [Sat, 26 Mar 2016 23:22:22 +0000 (00:22 +0100)]
Revert "Translated using Weblate (German)"

This reverts commit 25da0594eb09bb0e72816aaf8280573a668af00c.

8 years agoAdd CONTRIBUTING.md
Craig Davison [Thu, 3 Sep 2015 18:19:29 +0000 (19:19 +0100)]
Add CONTRIBUTING.md

8 years agoReplace CRLF with LF in shader files
est31 [Fri, 25 Mar 2016 14:57:18 +0000 (15:57 +0100)]
Replace CRLF with LF in shader files

8 years agoFalling: Set acceleration on step again
Rui [Thu, 24 Mar 2016 03:20:00 +0000 (12:20 +0900)]
Falling: Set acceleration on step again

Commit

65c09a96f41705bb8e75fc5ff4276342be91ed11 "Set acceleration only once in falling node"

has made the acceleration being set only once.
But this has introduced a regression.

Fix #3884.

8 years agoUpdate menu header image
Jean-Patrick Guerrero [Sun, 20 Mar 2016 14:43:38 +0000 (15:43 +0100)]
Update menu header image

8 years agoTranslated using Weblate (Portuguese)
Fernando Reis [Thu, 24 Mar 2016 12:49:36 +0000 (13:49 +0100)]
Translated using Weblate (Portuguese)

Currently translated at 34.5% (299 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Polish)
red-001 [Thu, 24 Mar 2016 14:55:48 +0000 (15:55 +0100)]
Translated using Weblate (Polish)

Currently translated at 33.7% (292 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (French)
Jean-Patrick G [Thu, 24 Mar 2016 12:23:00 +0000 (13:23 +0100)]
Translated using Weblate (French)

Currently translated at 93.0% (805 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Portuguese (Brazil))
Ian giestas pauli [Wed, 23 Mar 2016 23:52:46 +0000 (00:52 +0100)]
Translated using Weblate (Portuguese (Brazil))

Currently translated at 70.6% (611 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (French)
Jean-Baptiste [Wed, 23 Mar 2016 10:22:57 +0000 (11:22 +0100)]
Translated using Weblate (French)

Currently translated at 92.4% (800 of 865 strings)

This is a merger of 3 commits.

8 years agoTranslated using Weblate (Chinese (China))
akiyama akira [Mon, 21 Mar 2016 10:27:00 +0000 (11:27 +0100)]
Translated using Weblate (Chinese (China))

Currently translated at 34.4% (298 of 865 strings)

This is a merger of 6 commits.

8 years agoTranslated using Weblate (French)
Thibault Noel [Tue, 15 Mar 2016 20:30:07 +0000 (21:30 +0100)]
Translated using Weblate (French)

Currently translated at 89.1% (771 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Catalan)
Joan Ciprià Moreno Teodoro [Tue, 15 Mar 2016 15:20:58 +0000 (16:20 +0100)]
Translated using Weblate (Catalan)

Currently translated at 36.6% (317 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Japanese)
Rui [Tue, 15 Mar 2016 08:03:59 +0000 (09:03 +0100)]
Translated using Weblate (Japanese)

Currently translated at 51.2% (443 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Spanish)
Lucas Montenegro [Tue, 15 Mar 2016 05:17:38 +0000 (06:17 +0100)]
Translated using Weblate (Spanish)

Currently translated at 46.1% (399 of 865 strings)

This is a merger of 3 commits.

8 years agoTranslated using Weblate (Romanian)
Lordmusic Player [Mon, 14 Mar 2016 18:34:01 +0000 (19:34 +0100)]
Translated using Weblate (Romanian)

Currently translated at 23.2% (201 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Italian)
Elia Zammuto [Sat, 12 Mar 2016 12:59:34 +0000 (13:59 +0100)]
Translated using Weblate (Italian)

Currently translated at 47.9% (415 of 865 strings)

8 years agoTranslated using Weblate (Indonesian)
Muhammad Rifqi Priyo Susanto [Wed, 9 Mar 2016 16:45:13 +0000 (17:45 +0100)]
Translated using Weblate (Indonesian)

Currently translated at 47.9% (415 of 865 strings)

8 years agoTranslated using Weblate (Chinese (Taiwan))
Jeff Huang [Sat, 5 Mar 2016 13:40:03 +0000 (14:40 +0100)]
Translated using Weblate (Chinese (Taiwan))

Currently translated at 100.0% (865 of 865 strings)

This is a merger of 2 commits.

8 years agoTranslated using Weblate (Hungarian)
Kisbenedek Márton [Fri, 4 Mar 2016 07:53:59 +0000 (08:53 +0100)]
Translated using Weblate (Hungarian)

Currently translated at 74.9% (648 of 865 strings)

This is a merger of 3 commits.

8 years agoTranslated using Weblate (Czech)
Jakub Vaněk [Fri, 4 Mar 2016 03:45:18 +0000 (04:45 +0100)]
Translated using Weblate (Czech)

Currently translated at 54.1% (468 of 865 strings)

8 years agoTranslated using Weblate (Spanish)
ShadowNinja [Sun, 28 Feb 2016 08:11:41 +0000 (09:11 +0100)]
Translated using Weblate (Spanish)

Currently translated at 45.3% (392 of 865 strings)

8 years agoTranslated using Weblate (German)
Wuzzy [Sat, 27 Feb 2016 13:48:10 +0000 (14:48 +0100)]
Translated using Weblate (German)

Currently translated at 100.0% (865 of 865 strings)

This is a merger of 3 commits.

8 years agoCredits: Make that easy to add/remove
Rui [Mon, 21 Mar 2016 04:15:50 +0000 (13:15 +0900)]
Credits: Make that easy to add/remove

8 years agoMake `options` local here.
Auke Kok [Wed, 23 Mar 2016 04:59:23 +0000 (21:59 -0700)]
Make `options` local here.

Undoubtably this may cause problems later if unchecked.

```
2016-03-22 21:57:52: WARNING[Server]: Assignment to undeclared global "options" inside a function at .../sofar/git/minetest/bin/../builtin/game/chatcommands.lua:862.
```

8 years agoFix connected nodes' selection boxes.
Auke Kok [Tue, 15 Mar 2016 06:20:56 +0000 (23:20 -0700)]
Fix connected nodes' selection boxes.

This allows the player to more easily target and punch connected
nodeboxes, especially if they have a fixed nodebox that is very
small, like technic cabling, or xpanes. Tried it on fences and
my xpane conversion, and happy with the result.

8 years agoMgv7/flat/fractal: Stop tunnel-floor biome nodes being placed everywhere
paramat [Sat, 19 Mar 2016 19:10:37 +0000 (19:10 +0000)]
Mgv7/flat/fractal: Stop tunnel-floor biome nodes being placed everywhere

A bool for 'in or under tunnel' was missing
1-node-deep stone ledges were being
replaced with biome surface material

8 years agoClean up Strfnd
ShadowNinja [Sat, 19 Mar 2016 16:08:24 +0000 (12:08 -0400)]
Clean up Strfnd

Changes:
  * Fix indentation.
  * Pass strings by const reference.
  * Merge Strfnd and WStrfnd into one class instead of copying them.
  * Remove trailing spaces.
  * Fix variable names.
  * Move to util.
  * Other miscellaneous style fixes.

8 years agoTweak travis script
ShadowNinja [Sat, 19 Mar 2016 05:21:58 +0000 (01:21 -0400)]
Tweak travis script

Exit if cd fails and don't insert '\' in string.

8 years agoBuiltin/game/falling: Re-add comma removed by recent commit
paramat [Sat, 19 Mar 2016 18:36:48 +0000 (18:36 +0000)]
Builtin/game/falling: Re-add comma removed by recent commit

8 years agoSet acceleration only once in falling node
Rui914 [Sat, 19 Mar 2016 12:43:58 +0000 (21:43 +0900)]
Set acceleration only once in falling node

8 years agoMgv7: Limit pseudorandom caves to surface mapchunk or below
paramat [Tue, 15 Mar 2016 17:28:29 +0000 (17:28 +0000)]
Mgv7: Limit pseudorandom caves to surface mapchunk or below

To avoid bright caves at mapchunk borders when generating mapchunks upwards

8 years agoAllow NodeTimer, ABM and block mgmt interval changes.
Auke Kok [Wed, 2 Mar 2016 07:14:26 +0000 (23:14 -0800)]
Allow NodeTimer, ABM and block mgmt interval changes.

ABM's are hardcoded to run every 1.0s, NodeTimers are hard coded to
run at every 1.0s. Block mgmt is running every 2.0sec.

However, these timers can be better tuned for both higher and lower
values by server owners. Some server owners want to, and have the
resources to send more packets per second to clients, and so they
may wish to send smaller updates sooner. Right now all ABM's are
coalesced into 1.0 second intervals, resulting in large send queues
to all clients. By reducing the amount of possible timers, one can
get a far better response rate and lower the perception of lag.

On the other side of the camp, some servers may want to increase
these values, which again isn't easily doable.

The global settings abm_interval and nodetimer_interval are set to
current values by default. I've tested with 0.2/0.5 type values
and noticed a greatly improved response and better scattering of
nodetimers, as well as enjoying not faceplanting into doors with
pressure plates anymore.

8 years agolua_api.txt: improve vector documentation
est31 [Sat, 19 Mar 2016 08:18:22 +0000 (09:18 +0100)]
lua_api.txt: improve vector documentation

Before it rendered very badly in HTML.
Also point out what vector.round does.

8 years agoSet EXAMPLE_CONF_DIR to DOCDIR if DOCDIR gets customized
est31 [Wed, 16 Mar 2016 12:21:34 +0000 (13:21 +0100)]
Set EXAMPLE_CONF_DIR to DOCDIR if DOCDIR gets customized

Before, customisation of DOCDIR did not lead to
changes of the EXAMPLE_CONF_DIR default value.
This was inconsistent with expected behaviour
if you didn't know of the existence of the
EXAMPLE_CONF_DIR variable. The confusion is
very strong, as (for not in place builds) both
DOCDIR and EXAMPLE_CONF_DIR share the same
default value, it is unexpected that setting
CUSTOM_DOCDIR changes the location of all
documentation files but one.

The best meaning of EXAMPLE_CONF_DIR is to
further allow customization of the mt.conf.example
storage place, but otherwise keep defaulting to
whatever DOCDIR is set to, at least for not in
place builds. This patch implements that
behaviour.

Fixes #3863.

8 years agoRemove chat escape sequences from chat messages, for future colored chat.
Ekdohibs [Tue, 15 Mar 2016 12:34:27 +0000 (13:34 +0100)]
Remove chat escape sequences from chat messages, for future colored chat.

8 years agoAdd option to not send pre v25 init packet 3855/head
est31 [Mon, 14 Mar 2016 09:18:29 +0000 (10:18 +0100)]
Add option to not send pre v25 init packet

The legacy init packet (pre v25) sends information about the client's
password that a server could use to log in to other servers if the
username and password are the same. All the other benefits of SRP of
protocol v25 are missed if the legacy init packet is still sent during
connection creation.

This patch adds an option to not send the v25 init packet. Not sending
the v25 packet means breaking compat with pre v25 servers, but as the
option is not enabled by default, no servers are affected unless the
user explicitly flips the switch. More than 90% of the servers on the
serverlist support post v25 protocols.

The patch also fixes a bug with greying out of non compliant servers
being done wrongly, the min and max params were mixed.

8 years agoFix two reconnect bugs
est31 [Tue, 15 Mar 2016 07:55:45 +0000 (08:55 +0100)]
Fix two reconnect bugs

Fix two bugs related to the reconnect feature
introduced by commit

3b50b2766aeb09c9fc0ad0ea07426bb2187df3d7 "Optional reconnect functionality"

1. Set the password to the stored one

Before, we have done the reconnect attempt with a
cleared password, so using the feature would only
work if you had an empty password.
Thanks to @orwell96 for reporting the bug.

2. Reset the reconnect_requested flag after its use

the_game only writes to the reconect_requested flag
if it sets it to true. It never sets it to false.
If the flag is not reset after its use, all "reset"s
to the main menu will look like the server had
requested a reconnect.

8 years agoMuch better API for auth.{cpp, h}
est31 [Wed, 9 Mar 2016 02:12:22 +0000 (03:12 +0100)]
Much better API for auth.{cpp, h}

* No function overloading
* Adhere coding style and with method names following
  lowercase_underscore_style
* Use std::string in external API, handling these is
  much more fun

8 years agoMapgen: Fix light in tunnels at mapchunk borders
paramat [Sun, 13 Mar 2016 07:56:27 +0000 (07:56 +0000)]
Mapgen: Fix light in tunnels at mapchunk borders

Don't excavate the overgenerated stone at node_max.Y + 1,
this creates a 'roof' over the tunnel, preventing light in
tunnels at mapchunk borders when generating mapchunks upwards.

8 years agoFix player teleportation bug whilst sneaking
HybridDog [Mon, 4 Jan 2016 16:21:33 +0000 (17:21 +0100)]
Fix player teleportation bug whilst sneaking

Only set back position when sneaking if player wasn't teleported by adding and using a bool "got_teleported" to player
it fixes #2876

8 years agoConnected nodes: fix 2 minor bugs
Auke Kok [Sun, 13 Mar 2016 21:25:54 +0000 (14:25 -0700)]
Connected nodes: fix 2 minor bugs

1. Copy-paste error: properly test for back-connection.

In the case of two different connected nodebox types, we want to
assure that if A connects to B, that B also connects to A. This test
was accidentally not implemented correctly.

2. Clear the connects_to_ids before deserializing.

With each new connected node, the deserialization code added more
and more targets to the map, since the map wasn't cleared in between
deserialization steps. This caused e.g. wall blocks to connect to
things in the fence connects_to map.

8 years agoResend blocks when modified while sending to client
Jeija [Mon, 15 Feb 2016 15:05:40 +0000 (16:05 +0100)]
Resend blocks when modified while sending to client

8 years agoAdd options for screenshot format and quality
Diego Martinez [Mon, 7 Mar 2016 22:09:07 +0000 (19:09 -0300)]
Add options for screenshot format and quality

8 years agoAllow nodes to specify which sides to connect to.
Auke Kok [Fri, 4 Mar 2016 07:18:04 +0000 (23:18 -0800)]
Allow nodes to specify which sides to connect to.

NDT_CONNECTED attempts to connect to any side of nodes that it can
connect to, which is troublesome for FACEDIR type nodes that generally
may only have one usable face, and can be rotated.

We introduce a node parameter `connect_sides` that is valid for
any node type. If specified, it lists faces of the node (in "top",
"bottom", "front", "left", "back", "right", form, as array) that
connecting nodeboxes can connect to. "front" corresponds to the south
facing side of a node with facedir = 0.

If the node is rotatable using *simple* FACEDIR, then the attached
face is properly rotated before checking. This allows e.g. a chest
to be attached to only from the rear side.

8 years agoNodebox: Allow nodeboxes to "connect"
Auke Kok [Thu, 25 Feb 2016 08:16:31 +0000 (00:16 -0800)]
Nodebox: Allow nodeboxes to "connect"

We introduce a new nodebox type "connected", and allow these nodes to
have optional nodeboxes that connect it to other connecting nodeboxes.

This is all done at scenedraw time in the client. The client will
inspect the surrounding nodes and if they are to be connected to,
it will draw the appropriate connecting nodeboxes to make those
connections.

In the node_box definition, we have to specify separate nodeboxes for
each valid connection. This allows us to make nodes that connect only
horizontally (the common case) by providing optional nodeboxes for +x,
-x, +z, -z directions. Or this allows us to make wires that can connect
up and down, by providing nodeboxes that connect it up and down (+y,
-y) as well.

The optional nodeboxes can be arrays. They are named "connect_top,
"connect_bottom", "connect_front", "connect_left", "connect_back" and
"connect_right". Here, "front" means the south facing side of the node
that has facedir = 0.

Additionally, a "fixed" nodebox list present will always be drawn,
so one can make a central post, for instance. This "fixed" nodebox
can be omitted, or it can be an array of nodeboxes.

Collision boxes are also updated in exactly the same fashion, which
allows you to walk over the upper extremities of the individual
node boxes, or stand really close to them. You can also walk up
node noxes that are small in height, all as expected, and unlike the
NDT_FENCELIKE nodes.

I've posted a screenshot demonstrating the flexibility at
    http://i.imgur.com/zaJq8jo.png
In the screenshot, all connecting nodes are of this new subtype.

Transparent textures render incorrectly, Which I don't think is
related to this text, as other nodeboxes also have issues with this.

A protocol bump is performed in order to be able to send older clients
a nodeblock that is usable for them. In order to avoid abuse of users
we send older clients a "full-size" node, so that it's impossible for
them to try and walk through a fence or wall that's created in this
fashion. This was tested with a pre-bump client connected against a
server running the new protocol.

These nodes connect to other nodes, and you can select which ones
those are by specifying node names (or group names) in the
connects_to string array:
      connects_to = { "group:fence", "default:wood" }
By default, nodes do not connect to anything, allowing you to create
nodes that always have to be paired in order to connect. lua_api.txt
is updated to reflect the extension to the node_box API.

Example lua code needed to generate these nodes can be found here:
    https://gist.github.com/sofar/b381c8c192c8e53e6062

8 years agoFix chat console not opening after formspec opened over it
ShadowNinja [Sat, 12 Mar 2016 16:58:02 +0000 (11:58 -0500)]
Fix chat console not opening after formspec opened over it

The MainMenuManager set the console invisible when a
formspec opened over it, but didn't properly close it,
and the chat console never set itself visible again.

8 years agoDocumentation: Auto-update conf.example and settings_translation_file.cpp
paramat [Fri, 11 Mar 2016 21:56:32 +0000 (21:56 +0000)]
Documentation: Auto-update conf.example and settings_translation_file.cpp

8 years agoFix ask_reconnect_on_crash option being ignored
orwell96 [Fri, 11 Mar 2016 17:41:56 +0000 (18:41 +0100)]
Fix ask_reconnect_on_crash option being ignored

Since commit

3b50b2766aeb09c9fc0ad0ea07426bb2187df3d7 "Optional reconnect functionality"

there is a config option named ask_reconnect_on_crash.
It asks the client to reconnect to the server if the server crashed.
It has been implemeted and works, but due to a function parameter not
being passed it never showed effect. This patch adds the parameter
and fixes the bug.

Also fixes the `reconnect` option of minetest.request_shutdown being ignored.

8 years agoDocumentation: Clarify global and mapgen-specific mapgen flags
paramat [Fri, 11 Mar 2016 16:24:55 +0000 (16:24 +0000)]
Documentation: Clarify global and mapgen-specific mapgen flags

8 years agoIntroduce "protection_bypass" privilege.
Auke Kok [Mon, 29 Feb 2016 05:53:26 +0000 (21:53 -0800)]
Introduce "protection_bypass" privilege.

This privilege allows map protection bypassing for server operators
and world moderators.

Initially I had thought that bypassing protection mods would have been
something that could entirely be done inside mods and minetest_game,
but the concept of protection is defined in core, in the code of
core.is_protected().

I don't feel that it would be logical to introduce a protection
concept in core, but not some way around that for server operators
to maintain map parts that need fixing, de-griefing or cleanup.

Others had noticed the same problems, and proposed a patch to
minetest_game. That patch is fine by itself, but it fails to add
protection bypass functionality for digging normal nodes and placing
nodes.

So, instead, we indroduce the new priv "protection_bypass" in core,
and modify 'on_place_node' and 'node_dig' to allow bypassing node
protections if the player holds this priv.

This priv was tested with protector redo by tenplus1.

A followup patch to Minetest Game will include allowing special checks
for doors, trapdoors, chests in Minetest Game.

Protection mods will likely want to mimic the changes in their relevant
code sections.

8 years agoAvoid try/catch for settings.
Auke Kok [Tue, 8 Mar 2016 04:23:34 +0000 (20:23 -0800)]
Avoid try/catch for settings.

We can just test for the presence of these settings nicely here,
no need to use a try / catch construct.

8 years agoAdd consistent monotonic day counter - get_day_count()
Auke Kok [Sun, 6 Mar 2016 20:02:21 +0000 (12:02 -0800)]
Add consistent monotonic day counter - get_day_count()

I've written several experimental bits of code that revolve around the
need for a consistent calendar, but implementing one is extremely hard
in mods due to time changes and mods overriding core.get_timeofday(),
which will conflict.

The second part of the problem is that doing this from a mod requires
constant maintenance of a settings file.

An implementation in core is trivial, however, and solves all of
these problems at virtually no cost: No extra branches in server
steps, and a single branch when minetest.set_time_of_day(), which is
entirely reasonable.

We store the day_count value in env_meta.txt.

The use case is obvious: This change allows mods to create an actual
virtual calendar, or properly account for seasonal changes, etc..

We add a "/days" chatcommand that displays the current day count. No
permissions are needed. It can only retrieve the day count, not
modify it.

8 years agoAdd AreaStore custom ID API
ShadowNinja [Sat, 31 Oct 2015 00:38:22 +0000 (20:38 -0400)]
Add AreaStore custom ID API

8 years agoImplement AreaStore serialization
ShadowNinja [Fri, 30 Oct 2015 23:27:48 +0000 (19:27 -0400)]
Implement AreaStore serialization

8 years agoFix SpatialAreaStore not freeing removed areas
ShadowNinja [Fri, 30 Oct 2015 14:26:14 +0000 (10:26 -0400)]
Fix SpatialAreaStore not freeing removed areas