summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Allow nodes to specify which sides to connect to.Auke Kok2016-03-12
| | | | | | | | | | | | | | | | 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.
* Nodebox: Allow nodeboxes to "connect"Auke Kok2016-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix chat console not opening after formspec opened over itShadowNinja2016-03-12
| | | | | | 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.
* Documentation: Auto-update conf.example and settings_translation_file.cppparamat2016-03-12
|
* Fix ask_reconnect_on_crash option being ignoredorwell962016-03-11
| | | | | | | | | | | | | | 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.
* Avoid try/catch for settings.Auke Kok2016-03-09
| | | | | We can just test for the presence of these settings nicely here, no need to use a try / catch construct.
* Add consistent monotonic day counter - get_day_count()Auke Kok2016-03-09
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Add AreaStore custom ID APIShadowNinja2016-03-07
|
* Implement AreaStore serializationShadowNinja2016-03-07
|
* Fix SpatialAreaStore not freeing removed areasShadowNinja2016-03-07
|
* Add basic AreaStore method documentationShadowNinja2016-03-07
|
* Sort AreaStore headerShadowNinja2016-03-07
|
* Clean up VectorAreaStoreShadowNinja2016-03-07
|
* Move AreaStore container selection logic into getOptimalImplementationShadowNinja2016-03-07
|
* Move AreaStore to utilShadowNinja2016-03-07
|
* Make AreaStore cache setting privateShadowNinja2016-03-07
|
* Simplify AreaStore ID managementShadowNinja2016-03-07
|
* s_env.{cpp, h} cleanupsest312016-03-07
| | | | | | * Replace string by-val passing with const reference * Fix code style * Remove redundant `int table` definition and indentation level
* Add minetest.register_lbm() to run code on block load onlyest312016-03-07
|
* Use LuaErrors in security check macrosShadowNinja2016-03-07
| | | | | Throwing a LuaError calls destructors as it propagates up the stack, wheres lua_error just executes a longjmp.
* Mgvalleys: Correct spawn problemsDuane Robertson2016-03-04
| | | | Increase maximum spawn altitude to reduce spawn issues.
* Decoration API: Allow force_placement of simple decorationsparamat2016-03-04
|
* Require minetest.request_http_api to be called from the mod's main scopeJeija2016-03-03
| | | | Fixes #3764
* Fix main menu being unable to set secure settingsShadowNinja2016-03-03
|
* Remove debug.getupvalue from the Lua sandbox whitelistShadowNinja2016-03-03
| | | | This function could be used to steal insecure environments from trusted mods.
* Add support for non-ASCII characters to chat consoleShadowNinja2016-03-02
| | | | | This still only supports 256 characters, but that's because Irrlicht's clipboard handlers don't support wide characters.
* Add Android chat formShadowNinja2016-03-02
|
* Add text selection and copying to consoleShadowNinja2016-03-02
|
* Unlock cursor when opening consoleShadowNinja2016-03-02
|
* Use the console instead of a dedicated window when pressing keymap_chat/cmdEsteban I. Ruiz Moreno2016-03-02
| | | | keymap_console opens a full window for chat history browsing.
* Revert "Fix jumping at node edge"nerzhul2016-03-01
| | | | | | This reverts commit 60dc01dc258db842e229351b871d0989e3e7d62c. This fixes issue #3773
* Nodedef: Restore smooth lighting to waterparamat2016-02-27
|
* Mgvalleys: Add Dry RiverbedsDuane Robertson2016-02-27
| | | | | | | | | | | | Lower water table where base humidity is low. Alter heat and humidity to compensate for river humidity and altitude chill. Correct misuse of surface_max_y in generateTerrain. Remove sand trails in the water at river mouths. Remove river water below water_level. Correct heat/humidity calculations where noises are less than zero. Correct heightmap errors as much as possible. Make humidity calculations more readable.
* Update po files, minetest.conf.example and settings_translation_file.cppest312016-02-27
|
* Fix minetest.request_insecure_environment() always returning nilJeija2016-02-26
| | | | Fixes #3765
* Mapblock mesh: Allow to use VBORealBadAngel2016-02-26
|
* Remove new_style_waterRealBadAngel2016-02-26
|
* Cache some settingsrubenwardy2016-02-26
|
* Sheet Ore: Eliminate crash caused by PcgRandom range max < minparamat2016-02-23
| | | | | | | | | | | | In the calculation of y_start, when 'column height max' was large it caused nmin.Y + max_height > nmax.Y - max_height Now, in this situation y_start is set to the midpoint between nmin.Y and nmax.Y Limit y0 and y1 to between nmin.Y and nmax.Y, otherwise index calculation, which has no checks for limits, places them at unwanted locations in the voxelmanip
* GOTBLOCKS & DELETEBLOCKS: test packet size only oncenerzhul2016-02-23
|
* Reset block send timer when invoking setBlock(s)NotSent()orwell962016-02-22
| | | | | | | | | | | | | As stated in this forum thread [1], I noticed that there is a 2 second interval in which inventory changes are shown on the client. @yyt16384 found the source of these 2 seconds: m_nothing_to_send_pause_timer is set to 2.0 every time there are no changes to make, but this timer is not reset when SetBlockNotSent or setBlocksNotSent are invoked. So in worst case, the changed block will be sent over 2 seconds too late. With this change, changed inventories are updated almost immediately, but it causes additional connection load.
* Fix getting pointed nodeRealBadAngel2016-02-22
| | | | | Fixes #3719 Closes #3753
* Add Lua interface to HTTPFetchRequestJeija2016-02-22
| | | | | | | | | | This allows mods to perform both asynchronous and synchronous HTTP requests. Mods are only granted access to HTTP APIs if either mod security is disabled or if they are whitelisted in any of the the secure.http_mods and secure.trusted_mods settings. Adds httpfetch_caller_alloc_secure to generate random, non-predictable caller IDs so that lua mods cannot spy on each others HTTP queries.
* Fix HTTPFetchRequest performing a GET request if post_data is suppliedJeija2016-02-22
| | | | Instead, perform a POST request with post_data.
* Camera: remove auto tune FPS, single view range settingRealBadAngel2016-02-21
|
* Remove preload_item_visuals codeRealBadAngel2016-02-21
| | | | Closes #3748
* Dont make fastface if tile is not seamlessRealBadAngel2016-02-21
| | | | | Fixes #3378 Closes #3751
* Little collision.cpp cleanupsLoic Blot2016-02-20
|
* Fix jumping at node edgegregorycu2016-02-19
|
* Don't print locale directory error message when GetText is disabledShadowNinja2016-02-19
| | | | Also, downgrade the error to a warning.