aboutsummaryrefslogtreecommitdiff
path: root/builtin
Commit message (Collapse)AuthorAge
* Mainmenu: Still support favorites if send_pre_v25_init is disabledest312016-04-15
| | | | | | | | | | | | | | | | | | | | | | | @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"
* mainmenu: Tidy up logic in is_server_protocol_compat() (#3997)SmallJoker2016-04-15
| | | Apply de morgan to simplify the logic.
* Add option to disable entity selectionboxes. (#3992)TriBlade92016-04-14
| | | | Setting only loaded once, default value is to enable them.
* Convert nodeupdate to non-recursiveAuke Kok2016-04-11
| | | | | | | | | | | | | | 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.
* Mainmenu: Refactor tab UI codeRui9142016-04-08
| | | | | | - Use local variables for tabs in place of globals - Merge together if statements where possible - Replace manual table searching code with indexof where possible
* Mainmenu: Move description.txt textbox downRui9142016-03-31
| | | | Additionally, fix misc. code style issues
* Mgv7: Decrease cliff steepnessparamat2016-03-30
|
* stop falling.lua errortenplus12016-03-29
| | | | | | | 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>
* Falling: Set acceleration on step againRui2016-03-25
| | | | | | | | | | | 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.
* Credits: Make that easy to add/removeRui2016-03-24
|
* Make `options` local here.Auke Kok2016-03-24
| | | | | | | | 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. ```
* Builtin/game/falling: Re-add comma removed by recent commitparamat2016-03-19
|
* Set acceleration only once in falling nodeRui9142016-03-19
|
* Allow NodeTimer, ABM and block mgmt interval changes.Auke Kok2016-03-19
| | | | | | | | | | | | | | | | | | | | | | 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.
* Add option to not send pre v25 init packetest312016-03-15
| | | | | | | | | | | | | | | | | 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.
* Add options for screenshot format and qualityDiego Martinez2016-03-12
|
* Documentation: Clarify global and mapgen-specific mapgen flagsparamat2016-03-11
|
* Introduce "protection_bypass" privilege.Auke Kok2016-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 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
|
* Add minetest.register_lbm() to run code on block load onlyest312016-03-07
|
* Settings Tab: Regroup dropdown datas in tablesJean-Patrick Guerrero2016-03-06
|
* Faster insertion into tableRui9142016-03-06
|
* Add forgotten valleys mapgen in mapgen nameMuhammad Rifqi Priyo Susanto2016-03-05
| | | | Missing `valleys` in `settingtypes.txt` and `minetest.conf.example`.
* Update settings tab + some misc. clean-upJean-Patrick Guerrero2016-03-05
|
* Don't generate trailing spaces in minetest.conf.exampleest312016-02-27
| | | | | If the default value of a setting was empty, it previously generated a trailing space.
* Mapblock mesh: Allow to use VBORealBadAngel2016-02-26
|
* Remove new_style_waterRealBadAngel2016-02-26
|
* 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.
* Camera: remove auto tune FPS, single view range settingRealBadAngel2016-02-21
|
* Remove preload_item_visuals codeRealBadAngel2016-02-21
| | | | Closes #3748
* Restore simple settings tab and add advanced settings as dialogBlockMen2016-02-21
|
* Documentation: Remove now unused 'vertical spawn range'paramat2016-02-11
|
* Initialize facedir and wallmounted tables only once.Diego Martinez2016-02-11
| | | | | | | | | | This makes the functions a bit faster since they don't have to recreate the tables every invocation, and makes the code more readable. Also, document `wallmounted_to_dir`. The function was implemented but not documented in `lua_api.txt`.
* Log /clearobjects modeKahrl2016-02-11
|
* Add '/clearobjects quick'Kahrl2016-02-11
|
* Filmic HDR tone mappingRealBadAngel2016-02-09
|
* Cleanup selection mesh code, add shaders for halo and selection boxesRealBadAngel2016-02-08
|
* builtin: Fix `print` crashing on nil "holes".Diego Martinez2016-02-08
| | | | | | | | | | | | | The engine implementation of `print` packs the varargs into a table and passes the table directly to `table.concat`. If you pass any value not supported by `table.concat` (particularly `nil`), the server crashes. This is unexpected behavior, as `print` is supposed to be able to work with anything. This patch changes the implementation so it first converts all arguments using `tostring`, which fixes the issue and makes the custom `print` function compatible with the stock Lua behavior.
* Use meshes to display inventory itemsRealBadAngel2016-02-07
|
* Add admin command which says who the administator is for the server.Splizard2016-02-04
|
* Mgvalleys: use standard cavesDuane Robertson2016-01-31
| | | | | | | | | | Replace simple caves with V5 caves, adding unpredictable water and lava settings and massive caves based on subterrain. Remove fast terrain mode and accompanying settings. Remove superfluous temperature/humidity settings. Remove lava/water height setting. Fix errors in humidity handling and remove humidity_break_point setting. Move cave noises to generateCaves. Fix minor formatting/naming issues and use MYMAX/MYMIN/myround.
* New timer design.Auke Kok2016-01-29
| | | | | | | | | | | | | | | | | | | | | | | I could honestly not make much sense of the timer implementation that was here. Instead I've implemented the type of timer algorithm that I've used before, and tested it instead. The concept is extremely simple: all timers are put in an ordered list. We check every server tick if any of the timers have elapsed, and execute the function associated with this timer. We know that many timers by themselves cause new timers to be added to this list, so we iterate *backwards* over the timer list. This means that new timers being added while timers are being executed, can never be executed in the same function pass, as they are always appended to the table *after* the end of the table, which we will never reach in the current pass over all the table elements. We switch time keeping to minetest.get_us_time(). dtime is likely unreliable and we have our own high-res timer that we can fix if it is indeed broken. This removes the need to do any sort of time keeping.
* Fix world config menu ignoring `name` in `mod.conf`.Diego Martinez2016-01-23
|
* Show infotext with description for item entitiesRealBadAngel2016-01-18
|
* Fix error message in settings tab overlapping 'save' buttonRogier2016-01-16
| | | | | | | | | | The save button is now fully functional again when an error message is shown. After an invalid value is entered in the settings tab dialog, the GUI label for the error message that is shown was partly overlapping the 'save' button, so that the top half of the button could not be clicked on.
* Add Valleys mapgen.Duane Robertson2016-01-14
|
* Mgflat: Set blank default spflags. Unhideparamat2016-01-10
|
* Fix the checking of flags values in the settings tabRogier2016-01-10
| | | | | | | | | | | | Changes: - Accept setting an empty flags-type value in the settings tab if the variable specification permits it - Don't accept substrings of flag values E.g. with values: 'one,two,three', 'hree', 'w', etc. used to be accepted. Not any more - Don't accept flags with random pattern-matching special characters E.g. with values: 'one,two,three', 'on.', '(o)[n]e*' etc. used to be accepted. Not any more.
* Improve parsing of setting types from settingtypes.txt for settings tabRogier2016-01-10
| | | | | | - Accept numbers prefixed with '+' - Accept multiple spaces instead of just a single one where spaces are expected - Allow flags to have an empty default value