oweals/minetest.git
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

8 years agoAdd basic AreaStore method documentation
ShadowNinja [Fri, 30 Oct 2015 05:25:44 +0000 (01:25 -0400)]
Add basic AreaStore method documentation

8 years agoSort AreaStore header
ShadowNinja [Fri, 30 Oct 2015 04:52:45 +0000 (00:52 -0400)]
Sort AreaStore header

8 years agoClean up VectorAreaStore
ShadowNinja [Fri, 30 Oct 2015 04:04:10 +0000 (00:04 -0400)]
Clean up VectorAreaStore

8 years agoMove AreaStore container selection logic into getOptimalImplementation
ShadowNinja [Fri, 30 Oct 2015 03:38:36 +0000 (23:38 -0400)]
Move AreaStore container selection logic into getOptimalImplementation

8 years agoMove AreaStore to util
ShadowNinja [Fri, 30 Oct 2015 03:26:03 +0000 (23:26 -0400)]
Move AreaStore to util

8 years agoMake AreaStore cache setting private
ShadowNinja [Fri, 30 Oct 2015 03:17:44 +0000 (23:17 -0400)]
Make AreaStore cache setting private

8 years agoSimplify AreaStore ID management
ShadowNinja [Fri, 30 Oct 2015 03:08:32 +0000 (23:08 -0400)]
Simplify AreaStore ID management

8 years agos_env.{cpp, h} cleanups 3677/head
est31 [Mon, 7 Mar 2016 18:34:48 +0000 (19:34 +0100)]
s_env.{cpp, h} cleanups

* Replace string by-val passing with const reference
* Fix code style
* Remove redundant `int table` definition and indentation level

8 years agoAdd minetest.register_lbm() to run code on block load only
est31 [Tue, 9 Feb 2016 06:08:31 +0000 (07:08 +0100)]
Add minetest.register_lbm() to run code on block load only

8 years agoUse LuaErrors in security check macros
ShadowNinja [Sun, 6 Mar 2016 19:41:26 +0000 (14:41 -0500)]
Use LuaErrors in security check macros

Throwing a LuaError calls destructors as it propagates up the stack,
wheres lua_error just executes a longjmp.

8 years agoSettings Tab: Regroup dropdown datas in tables
Jean-Patrick Guerrero [Sat, 5 Mar 2016 10:48:02 +0000 (11:48 +0100)]
Settings Tab: Regroup dropdown datas in tables

8 years agoFaster insertion into table
Rui914 [Sun, 6 Mar 2016 15:53:45 +0000 (00:53 +0900)]
Faster insertion into table

8 years agoAdd forgotten valleys mapgen in mapgen name
Muhammad Rifqi Priyo Susanto [Sat, 5 Mar 2016 06:21:51 +0000 (13:21 +0700)]
Add forgotten valleys mapgen in mapgen name

Missing `valleys` in `settingtypes.txt` and `minetest.conf.example`.

8 years agoUpdate settings tab + some misc. clean-up
Jean-Patrick Guerrero [Thu, 3 Mar 2016 20:48:18 +0000 (21:48 +0100)]
Update settings tab + some misc. clean-up

8 years agoUpdate Android dependencies, -O3 optimization, remove old ARMv5 config
Maksim Gamarnik [Fri, 5 Feb 2016 18:56:56 +0000 (20:56 +0200)]
Update Android dependencies, -O3 optimization, remove old ARMv5 config

* Update OpenSSL (thanks @sapier, i use his patch!), Curl and SQLite3.
* Remove old arm config. Almost all phones that use ARMv5 have 1 core and 256-512 RAM, it's about 2-5 FPS.
* Do -O3 optimization for libs and remove -fexpensive-optimizations for Minetest (-O3 includes this! Read gcc docs).
* OpenSSL fix - thanks @sapier, again.

8 years agoMgvalleys: Correct spawn problems
Duane Robertson [Wed, 2 Mar 2016 01:50:35 +0000 (19:50 -0600)]
Mgvalleys: Correct spawn problems

Increase maximum spawn altitude to reduce spawn issues.

8 years agoDecoration API: Allow force_placement of simple decorations
paramat [Sat, 27 Feb 2016 23:49:53 +0000 (23:49 +0000)]
Decoration API: Allow force_placement of simple decorations

8 years agoRequire minetest.request_http_api to be called from the mod's main scope
Jeija [Thu, 25 Feb 2016 09:22:54 +0000 (10:22 +0100)]
Require minetest.request_http_api to be called from the mod's main scope

Fixes #3764

8 years agoFix main menu being unable to set secure settings
ShadowNinja [Thu, 3 Mar 2016 05:57:19 +0000 (00:57 -0500)]
Fix main menu being unable to set secure settings

8 years agoRemove debug.getupvalue from the Lua sandbox whitelist
ShadowNinja [Thu, 3 Mar 2016 04:59:42 +0000 (23:59 -0500)]
Remove debug.getupvalue from the Lua sandbox whitelist

This function could be used to steal insecure environments from trusted mods.

8 years agoAdd support for non-ASCII characters to chat console
ShadowNinja [Sun, 28 Feb 2016 18:27:54 +0000 (13:27 -0500)]
Add support for non-ASCII characters to chat console

This still only supports 256 characters, but that's because
Irrlicht's clipboard handlers don't support wide characters.

8 years agoAdd Android chat form
ShadowNinja [Sun, 28 Feb 2016 01:10:35 +0000 (20:10 -0500)]
Add Android chat form

8 years agoAdd text selection and copying to console
ShadowNinja [Sat, 27 Feb 2016 21:04:44 +0000 (16:04 -0500)]
Add text selection and copying to console

8 years agoUnlock cursor when opening console
ShadowNinja [Sat, 27 Feb 2016 20:51:09 +0000 (15:51 -0500)]
Unlock cursor when opening console

8 years agoUse the console instead of a dedicated window when pressing keymap_chat/cmd
Esteban I. Ruiz Moreno [Mon, 3 Jun 2013 00:16:32 +0000 (21:16 -0300)]
Use the console instead of a dedicated window when pressing keymap_chat/cmd

keymap_console opens a full window for chat history browsing.

8 years agoFix a mistake in the world format documentation
Aleksey Vorona [Wed, 2 Mar 2016 18:13:11 +0000 (10:13 -0800)]
Fix a mistake in the world format documentation

Fixed a minor mistake that made it appear as if the inventory
is serialized multiple times - once per each variable. In fact
it is serialized once per each node.

8 years agoRevert "Fix jumping at node edge"
nerzhul [Tue, 1 Mar 2016 10:15:08 +0000 (11:15 +0100)]
Revert "Fix jumping at node edge"

This reverts commit 60dc01dc258db842e229351b871d0989e3e7d62c.

This fixes issue #3773

8 years agoResize object_marker_red.png to 16x16
ShadowNinja [Sun, 28 Feb 2016 01:11:32 +0000 (20:11 -0500)]
Resize object_marker_red.png to 16x16

Having a non-power-of-two image broke the Android app.