Commit Graph

145 Commits

Author SHA1 Message Date
Wuzzy ce8cdc0333
Cleanup global namespace pollution in builtin (#9451) 2020-03-06 20:19:14 +00:00
sfan5 8d6a0b917c
Fix potential security issue(s), documentation on minetest.deserialize() (#9369)
Also adds an unittest
2020-03-05 22:03:04 +01:00
HybridDog ea5e231959
Add table.shuffle (#8299) 2020-02-01 16:09:45 +01:00
rubenwardy 1173ff0c13
Add Lua unit tests to builtin using busted (#9184) 2020-01-18 02:09:18 +00:00
HybridDog f9c7e46a34 Add table.key_value_swap (#9248) 2020-01-04 15:44:48 +01:00
Aaron Suen 0df646e068 Fix rotate_node to return the correct itemstack.
All on_* hooks that return an itemstack are NOT guaranteed to
modify and return the original stack.  We cannot count on the
behavior of the existing builtin definitions not to be overridden
by game/mod logic.
2019-10-13 17:11:00 +02:00
Tim Myers c413eeb026 Also print help commands to chat for server terminal (#8869) 2019-09-19 00:37:56 +02:00
rubenwardy 8e757859d6
Add luacheck to check builtin (#7895) 2019-08-06 19:30:18 +01:00
SmallJoker 3ad9a8f3a9 Builtin: Forward old return values
Was forgotten in 69bf964.
2019-08-02 10:20:41 +02:00
SmallJoker 69bf964241
Add /help formspec for commands and privileges (#8385)
* Trigger for 'all' as well
* Add description textarea, double-click to copy
2019-07-20 18:22:32 +02:00
HybridDog 41229696be Use vector.dot and vector.cross in vector.angle 2019-07-16 21:44:42 +02:00
HybridDog 71db715ba5 Add vector.dot and vector.cross
Mostly copied from MarkuBu's code
2019-07-16 21:44:42 +02:00
DS ad75dba87b Optimize core.after in a simple way (#8351) 2019-03-27 21:05:50 +01:00
ANAND d50feb89de core.after: Improve assertion message (#8388) 2019-03-17 10:25:47 +01:00
ANAND 7f1c2b8a00 Builtin: Add vector.angle(). Returns the angle between 2 vectors (#7738) 2019-03-17 02:05:03 +00:00
HybridDog a7c5dc50e5 Add math.factorial (#8298) 2019-03-05 10:11:21 +01:00
Pierre-Yves Rollo 0e306c0842 Fix string.split returning an empty table if string starts with sepearator (#7827)
Calling string.split(":A:B:C:D", ":") returns an empty array.
This is due to first empty string not making repeat loop decreasing max_split which has a 0 value when reaching until.
Changing max_splits default value from -1 to -2 fixes that issue.
2018-11-01 21:07:01 +01:00
Paramat 4a2a11262b
Builtin//misc_helpers: Various fixes (#7737)
Remove unused variable 'seplen'.
Fix 'cparam2'->'param2'.
Do not initialise variable 'p' twice.
2018-09-23 21:06:51 +01:00
Paramat 45e48295d2
Pointed_thing_to_face_pos: Avoid crash when player is inside a node (#7342)
Avoid crash in some situations when player is inside a node, causing
'above' to equal 'under'.
In this situation return 'under' which is the node position very close
to the face position that would normally be returned.
2018-05-16 20:49:46 +01:00
rubenwardy 87ad4d8e7f
Add online content repository
Replaces mods and texture pack tabs with a single content tab
2018-04-19 20:14:53 +01:00
SmallJoker 8f827ee680
core.rotate_node: Do not trigger after_place_node (#6900) 2018-03-29 21:44:13 +02:00
you a6bb2c4ea8 Allow dumping userdata (#7012) 2018-02-08 19:17:06 +01:00
Paramat d04c41ad80 Vector functions: Fix vector.direction() function, improve documentation (#6801)
vector.direction() now returns a normalised vector with direction p1 to p2.
2017-12-21 20:57:42 +01:00
Ezhh 649eef9e4f Give subgames the ability to disallow specific mapgens (#6792) 2017-12-16 17:02:08 +01:00
Paramat da298a26ff Pointed thing to face pos: Use 'eye height' object property (#6754) 2017-12-09 14:30:26 +01:00
SmallJoker f7733f41ea
core.rotate_node: Run callbacks like with any regular placed node (#6648) 2017-11-21 20:21:52 +01:00
DTA7 5a3b8e34b3 Set placer to nil instead of a non-functional one in item_OnPlace (#6449)
* Set placer to nil instead of a non-functional one

This requires nil checks in core.rotate_node and core.rotate_and_place.
2017-09-21 21:52:52 +02:00
tenplus1 5b6d4482ee Fix Rotate Node Placement (#6424)
This properly checks for creative mode or privilege when using fixed rotate_node() function.
2017-09-16 22:39:38 +02:00
sfan5 6fa2f6b4aa Fix core.wrap_text and make its behaviour consistent with the docs
Code based on initial implementation by @dsohler.
2017-09-12 19:33:00 +02:00
Nathanaël Courant 5a6618cc57 Add '@n' escape sequences and some documentation on translated strings. 2017-08-26 09:43:08 +02:00
Ekdohibs b24e6433df Add clientside translations. 2017-08-24 17:54:10 +02:00
Gael-de-Sailly bc53c82bcf Add minetest.rgba function that returns ColorString from RGBA or RGB values 2017-06-22 03:11:50 +01:00
Ezhh 2ab09bb486 Improve chatcommand params consistency (#5985)
* Fix and improve params consistency

* Move parenthesis requirement to descriptions
2017-06-15 22:38:41 +02:00
red-001 740b4bec07 Fix sending color codes to clients that don't support them. (#5950)
Also remove `disable_escape_sequences` since it's not needed anymore.
2017-06-09 21:39:25 +02:00
red-001 c91a8c7061 [CSM] Add function to get player privileges (#5933)
* [CSM] Add function to get player privileges + move related help functions to common

* Added @Zeno- const
2017-06-07 09:09:06 +02:00
SmallJoker 9b5effffbb Builtin: Fix subgame mod selection (#5367) 2017-05-17 19:31:57 +02:00
SmallJoker 0120fe16a7 CSM: Document forgotten functions 2017-05-16 21:57:26 +01:00
SmallJoker 6945f807ab minetest.deserialize: Throw error when argument not string (#5738) 2017-05-09 23:11:20 +02:00
ShadowNinja 43d1f375d1 Use a settings object for the main settings
This unifies the settings APIs.

This also unifies the sync and async registration APIs, since the async
registration API did not support adding non-functions to the API table.
2017-05-06 15:33:19 -04:00
MarkuBu efd509f796 Pointed thing to face pos: Fix crash if opening door with slab or stair
Avoids crash caused when 'pointed thing -under' and '-above' are not
face-neighbours, for example in the case of pointing to the top half
of a door.
2017-04-19 02:01:42 +01:00
red-001 eb587996e4 [CSM] Use more gettext (#5553) 2017-04-10 21:14:00 +02:00
Auke Kok 75fb3e4730 minetest.after(): simplify further, pause in singleplayer (#5500)
Using the `dtime` value entirely, this will stop the clock
if the game is paused in singleplayer. Since most of the
clocks were fixed a long time ago, this should again be
safe to use.
2017-04-02 10:51:16 +02:00
MarkuBu 26f4a5c2d1 First commit for fine pointed (#5485) 2017-04-01 16:50:53 +02:00
Diego Martínez 81c3dc32a8 Add functions to strip color information. (#5472) 2017-03-28 21:55:39 +02:00
Loïc Blot 1b299b4039 Fix a type bug in colorize function
This bug was introduced by dd2f1d7551 and reported by @kilbith
2017-03-28 14:50:17 +02:00
red-001 e70e15134c Change command prefix to "." and add "help" command. 2017-03-26 05:51:14 +01:00
Loïc Blot 329d654e37 Typo fix 2017-03-24 08:59:52 +01:00
red-001 dd2f1d7551 Add multiline support to colorize. (#5444) 2017-03-24 08:36:29 +01:00
red-001 2e3778ec0c Block access to the `io` library 2017-03-19 12:34:33 +01:00
red-001 d31750cb93 Give CSM access to use `core.colorize()` (#5113) 2017-03-17 19:20:13 +01:00
red-001 a50d07d39a [CSM] Improve security for client-sided mods (#5100) 2017-03-13 23:56:05 +01:00
red-001 c42c53fccf [CSM] Add local formspecs. (#5094) 2017-03-13 23:56:05 +01:00
Loïc Blot 2c19d51409 [CSM] sound_play & sound_stop support + client_lua_api doc (#5096)
* squashed: CSM: Implement register_globalstep
  * Re-use fatal error mechanism from server to disconnect client on CSM error
  * Little client functions cleanups

* squashed: CSM: add core.after function
  * core.after is shared code between client & server
  * ModApiUtil get_us_time feature enabled for client
2017-03-13 23:56:05 +01:00
red-001 d7bc346981 [CSM] Add client-sided chat commands (#5092) 2017-03-13 23:56:05 +01:00
Auke Kok 2d7a6f2cc0 Vector: Add vector.sort(a, b): return box edges
This function returns the box corners of the smallest box
that includes the two given coordinates.
2017-01-23 07:38:39 +00:00
sfan5 5fd1ef9b58 Revert "Adding particle blend, glow and animation (#4705)"
This reverts commit 93e3555eae.
2016-11-14 15:28:06 +01:00
Foghrye4 93e3555eae Adding particle blend, glow and animation (#4705) 2016-11-15 00:09:59 +10:00
Auke Kok 380a4b6d60 Core.rotate_and_place: Remove unused call to get_look_pitch() 2016-10-31 10:55:36 +00:00
rubenwardy 0d740c5d82 Builtin: Add vector.floor helper function 2016-10-17 22:03:49 +02:00
HybridDog 80cebdc23c Only allow strings to be passed to minetest.global_exists (#4253)
Sometimes you accidentally forget the quotes when using global_exists, this makes minetest abort if you did so.

M  builtin/common/strict.lua
2016-06-28 06:34:22 +02:00
Rui914 24e8b0ac1e Faster insertion into table 2016-03-06 23:42:04 +00:00
ShadowNinja 2139d7d45f Refactor logging
- 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-14 01:03:54 -04:00
kwolekr f062bbd7a1 Add /emergeblocks command and core.emerge_area() Lua API 2015-09-23 15:56:24 -04:00
sfan5 8994913259 Allow random menu images for subgames 2015-07-21 16:58:22 +02:00
est31 e479337c1a Fix wrong replace from previous commit 2015-06-02 00:20:12 +02:00
est31 6df6b2a0e0 Localize inside whole misc_helpers.lua 2015-06-01 18:18:18 +02:00
ShadowNinja 436cb468e9 Add minetest.global_exists() 2015-04-21 22:58:37 +02:00
ShadowNinja cd4324e5a8 Fix serialization of floating point numbers 2015-02-21 13:16:18 -05:00
est31 5a0ed780f5 Server: announce MIN/MAX protocol version supported to serverlist. Client: check serverlist
Client now informs about incompatible servers from the list, this permits to prevent the protocol movements.
Server announces its supported protocol versions to master server
2015-02-18 16:09:59 +01:00
est31 7c5accf605 Fix crash on passing false as value in table to table.copy(t)
Fixes #2293.
2015-02-14 15:18:11 +10:00
rubenwardy b56f1175a2 Change assignment to global in a function to warning 2015-02-04 14:57:06 -05:00
ShadowNinja 47aca6f6d1 Fix imprecise serialization of large numbers 2015-01-25 20:19:35 -05:00
kwolekr 5aeeb219e3 Simplify deleteblocks chat command argument parsing
Add optional core.pos_to_string decimal place rounding
Move core.string_to_pos to builtin/common/misc_helpers.lua for consistency
2015-01-15 18:05:13 -05:00
Diego Martínez c9669e90bb Fix typo in `serialize.lua`. 2015-01-15 16:16:41 -05:00
Diego Martínez 00bca11f59 Fix off-by-one error in `string:split` implementation. 2015-01-04 23:33:55 -05:00
Diego Martinez ab55da589c Faster string.split implementation. 2014-12-28 23:27:07 -05:00
Craig Robbins c151099b79 Revert "Adjust the values of dirs1 and dirs2 so that rotate_and_place orients textures correctly"
This reverts commit 9878e8de4f.

See: https://github.com/minetest/minetest/issues/1939 and IRC log for discussion
2014-12-12 16:21:29 +10:00
paramat f114fc74d6 Fix undeclared globals in functions and shorten lines in misc_helpers.lua. 2014-12-11 21:37:46 -05:00
SmallJoker 2fd14e1bd5 Add Lua helper functions vector.apply(v) math.sign(x, tolerance) 2014-12-06 10:07:25 +01:00
SmallJoker 6a43b3af09 Add minetest.copy_table(table) To get rid off the "table references"
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
2014-11-27 18:19:01 +10:00
dvere 9878e8de4f Adjust the values of dirs1 and dirs2 so that rotate_and_place orients textures correctly
According to doc/lua_api.txt if paramtype2 == "facedir" the two least significant bits of parm2 orient the texture around the axis. For dirs1 (looking at a wall) these would be 0, 1, 2, 3 and for dirs2 (looking at the ceiling) 2, 1, 0, 3
2014-11-25 12:44:47 +10:00
ShadowNinja a1db83e93f Make duplicate warning checks file and line specific 2014-11-23 16:34:49 -05:00
sapier 0dcc4b251f Fix console spaming by debug function on mod checking for global variable to exist. 2014-11-23 15:24:37 +01:00
ShadowNinja a6ba042cf7 Add strict module
Also fix leaking globals found by it.
2014-11-19 12:40:54 -05:00
ShadowNinja 6afdb22ba7 Tweak core.serialize
This adds proper support for nested tables and improves performance a bit.
2014-11-19 12:40:54 -05:00
ShadowNinja 05e7f71b33 Fix dump() indentation with non-tab indents 2014-11-08 12:49:50 -05:00
Ryan Newell 90b6de173e Add last_login field to auth.txt
Also shortens some related code and adds more parameters to string.split.
2014-11-08 12:49:50 -05:00
ShadowNinja 3e7e65885a Make dump's output prettier
Changes:
  * Indentation with tabs by default.
  * Array keys dumped without "[i] = " prefix.
  * String keys that are valid identifiers aren't enclosed in '[""]'.
  * Basic support for multiple references (as specified in the comment).
2014-09-21 15:24:00 -04:00
ShadowNinja 33ca115ae4 Remove vector assertions
These were initially added to get tracebacks for invalid vector errors, but it
didn't work and tracebacks have since been properly fixed in the core.
2014-07-19 23:50:50 -04:00
sapier 65b8b524c0 Add srollbar formspec element 2014-07-16 15:02:56 +02:00
ShadowNinja 882e12f8ab Rework dumping functions
Changes:
  * Add comments to explain the dumping code
  * Add support for dumping values of any type (as '<' <type> '>')
  * Add support for tables as keys in dump2()
  * Make dump2() return it's result (like dump()) rather than printing it
  * Simplify and optimize function serialization via serialize()
2014-05-24 17:32:42 -04:00
sapier f969a91c0a Fix a bunch of small bugs due to mainmenu cleanup
Fix doubleclick not working in singleplayer
Fix of by one issue on accessing raw list
Fix this->self
Fix copy&paste error for scroll button
2014-05-24 11:16:05 +02:00
sapier c3984569c0 Add formspec toolkit and refactor mainmenu to use it
Fix crash on using cursor keys in client menu without selected server
Add support for non fixed size tabviews
2014-05-16 22:57:14 +02:00
ShadowNinja c4359ff65c Use "core" namespace internally 2014-05-08 13:02:04 -04:00
ShadowNinja 1cd512913e Organize builtin into subdirectories 2014-05-07 17:14:23 -04:00