aboutsummaryrefslogtreecommitdiff
path: root/builtin/game
AgeCommit message (Collapse)Author
2016-03-25Falling: Set acceleration on step againRui
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.
2016-03-24Make `options` local here.Auke Kok
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. ```
2016-03-19Builtin/game/falling: Re-add comma removed by recent commitparamat
2016-03-19Set acceleration only once in falling nodeRui914
2016-03-11Introduce "protection_bypass" privilege.Auke Kok
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.
2016-03-09Add consistent monotonic day counter - get_day_count()Auke Kok
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.
2016-03-07Add AreaStore custom ID APIShadowNinja
2016-03-07Add minetest.register_lbm() to run code on block load onlyest31
2016-03-06Faster insertion into tableRui914
2016-02-22Add Lua interface to HTTPFetchRequestJeija
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.
2016-02-11Initialize facedir and wallmounted tables only once.Diego Martinez
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`.
2016-02-11Log /clearobjects modeKahrl
2016-02-11Add '/clearobjects quick'Kahrl
2016-02-04Add admin command which says who the administator is for the server.Splizard
2016-01-29New timer design.Auke Kok
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.
2016-01-18Show infotext with description for item entitiesRealBadAngel
2016-01-07Liquids: Flow into and destroy 'floodable' nodesparamat
Add new node property 'floodable', default false Define "air" as floodable = true in C++ and lua
2015-12-20Fix missing localization for objHybridDog
2015-12-02Add on_secondary_use when right clicking an item in the airAlex Ford
2015-11-24Simplify regex used in check_modname_prefix and other improvements.Robert Zenz
Simplified the regex used, added comments and changed the error message to contain the correct mod name.
2015-11-21Log static_spawn error only onceRui
2015-11-12Add the player name to dropped itemsRobert Zenz
The player name is now added in the field "dropped_by" on the created entity.
2015-11-07Improve LuaVoxelManip documentationkwolekr
2015-11-02Add callback parameter for core.emerge_area()kwolekr
2015-10-31minetest. to core.Rui914
2015-10-25Check if hitter has inventory when punching itemBlockMen
Fixes #3280
2015-10-22Add more ways to pass data to check_player_privsRobert Zenz
The callback can now be invoked with either the player object or name as the first parameter, and with either a table or a list of strings, like this: minetest.check_player_privs(player_name, { shout = true, fly = true }) minetest.check_player_privs(player_name, "shout", "fly") minetest.check_player_privs(player, { shout = true, fly = true }) minetest.check_player_privs(player, "shout", "fly")
2015-10-14Refactor loggingShadowNinja
- Add warning log level - Change debug_log_level setting to enumeration string - Map Irrlicht log events to MT log events - Encapsulate log_* functions and global variables into a class, Logger - Unify dstream with standard logging mechanism - Unify core.debug() with standard core.log() script API
2015-10-12Localize digprop_err functionRui
2015-10-04Added minetest.wallmounted_to_dirFernando Carmona Varo
2015-09-29Some map border related fixesest31
1. Check for entity addition success in spawn_item implementation 2. Check for success in item_drop callback, so that the player doesn't lose the item if they are outside bounds and try to drop it. 3. When existing player joins game, check that their position is inside map bounds. If not, set their position to the return value of findSpawnPos(). 4. Make findSpawnPos() respect the border 2 fixes a lua crash if a player drops an item outside map bounds. 3 fixes an assertion crash if a player leaves when being outside map bounds, and then rejoins.
2015-09-23Add /emergeblocks command and core.emerge_area() Lua APIkwolekr
2015-09-03Small fixes of minetest.has_featureRui
2015-09-01Minor tweaks __builtin:falling_nodeRui
2015-08-12SAPI: Track last executed mod and include in error messageskwolekr
2015-07-18Add ability to specify coordinates for /spawnentityMarcin
2015-06-14Remove reference to deprecated privilegeCraig Davison
2015-06-13Add minetest.register_on_player_hpchangeTeTpaAka
2015-06-06Decrease minetest.after globalstep lagHybridDog
* abort if theres no active timer * only reduce the timer.time of all timers when its necessary * move updating timers_to_add into a seperate function
2015-06-02Nicer time setting loggingest31
Now logs ACTION[ServerThread]: player sets time to 6:03 instead of ACTION[ServerThread]: player sets time to 6:3
2015-05-16Added hour:minute format to time commandLeMagnesium
* The time command now accepts parameters in the form <hour>:<minute>, and if invoked with no parameters returns the current time in said format.
2015-05-15Add minetest.register_on_punchplayerBrandon
2015-05-15Don't crash if an item gets dropped into unloaded spacetenplus1
Items dropped into unloaded map space will crash game so here's a fix...
2015-05-15Item entity merging refactorest31
Don't ident too much, and add a comment.
2015-05-12Add code to support raillike group namesNovatux
2015-04-26Fix minetest.clear_* creating new LOCAL table instead of clearing the ↵Tomas Brod
existing one. On calling clear_redistered_biomes the registered_biomes table is cleared by creating a new empty table, but the pointer is not updated to point to the new one. So after calling more register_biome, the registered_biome table always contains 0 items, which is an error. Instead, the table is cleared by removing all its items so the pointer (minetest.registered_*) remains valid.
2015-04-05Add reason to kicked log message and use present tenseest31
2015-03-05Radius parameter for /deleteblocks hereSmallJoker
2015-02-27Add /setpassword and /clearpassword loggingest31
2015-02-18Fix unused (and so, broken) enable_rollback_recording. This option must be ↵Loic Blot
reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable) ok @ShadowNinja