Commit Graph

103 Commits

Author SHA1 Message Date
DS
28e87ce9d5
Add vector.offset (#10321) 2020-08-29 16:41:29 +01:00
NetherEran
7148834440
Some vector functions useful for working with rotations (#9572)
* added vector.rotate

* added vector.forward_from_rotation and vector.up_from_rotation

* added vector.forward_up_to_rotatiton

* fixed some bugs and formatting with vector functions

* shortened name of some new vector functions and added documentation

* made vector.rotate not require a unit vector as axis

* fixed crash with vector.forward_up_to_rot

* renamed new vector functions, made vector.rotate apply a rotation matrix, old vector.rotate is now called vector.rotate_around_axis

* documented vector function changes

* removed some whitespace to appease luacheck

* implemented and fixed optimization of vector.rotate_around_axis by SmallJoker

* added some unit tests for rotation vector functions

* clarified that rotation vectors are in radians and according to the left hand rule

* hopefully appeased luacheck

* renamed rotation_to_horizontal to forward_at_rotation, rotation_to_vertical to up_at_rotation

* handled cases where sin or cos are 0 in rotation vector functions

* added more comments

* clarified documentation of rotation vector functions

* added more unit tests

* changed way in which vector.rotate_around_axis is adjusted for left handed coordinate systems

* made vector.rotate_around_axis actually left handed

* unrolled matrix multiplication

* removed vector.forward_at_rotation and vector.up_at_rotation

* prettified vector.rotate_around_axis, made previous commits not break anything

* removed references to removed vector.forward_at_rotation and vector.up_at_rotation

* removed documentation of removed vector functions

* clarified documentation and fixed styling of rotation vector functions

* restyled comments minorly

* spelling fixes and some hopefully better comments

* allowed 'up' to be missing from vector.directions_to_rotation and removed requirement for unit vectors as arguments

* made vector.rotate_around_axis() right handed again for consistency

* documented previous changes

* made matrix multiplication actually multiply

* renamed vector.directions_to_rotation() to vector.dir_to_rotation()

* optimized a distance comparison

* Fixed potential false positive in unit tests.

Co-authored-by: NetherEran <nethereran@hotmail.com>
2020-06-09 19:38:39 +02:00
Paul Ouellette
b16f841756
LuaItemStack: Add __tostring metamethod (#8785)
* LuaItemStack: Add __tostring metamethod

* Clean up LuaItemStack::checkobject
2020-06-09 19:37:25 +02:00
Wuzzy
65a6a316d0 Add minetest.is_creative_enabled 2020-05-29 22:45:40 +02:00
sfan5
11723cffe0 builtin: Move common/async_event.lua to mainmenu/async_event.lua
It only works in the context of the mainmenu.
2020-05-17 21:37:01 +02:00
Yaman Qalieh
6c607e2082
Allow placing auto-rotating nodes on other nodes in on_rightclick (#9859) 2020-05-13 13:57:05 +02:00
HybridDog
5355cb1d87
minetest.serialize: Reversible number serialization (#9722)
* minetest.serialize: Reversible number to string conversion

The %a format is not supported in Lua 5.1.
This commit also adds two tests for number serialization.
2020-04-22 16:43:48 +02:00
Wuzzy
1441281809
Fix some chatcommands not returning a value (#9503) 2020-03-14 15:01:22 +01:00
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