* 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>
Fixes two bugs:
* The camera offset was not applied to an object while detaching, briefly placing the irrlicht matrixnode in world space.
* When attaching, the matrixnode's absolute position was evaluated without evaluating the parent first, resulting in zeroed positions.
Incorrect parameter types are logged as errors, taking coercion into account.
This is a workaround to ensure mod compatibility.
Duplicate warnings are ignored per server instance.
Games often and increasingly do not use this mapgen alias, as it
is only required for Mapgen V6. Such games were triggering the
recently added error message.
Even if this mapgen alias was defined, dirt nodes placed under a
wide trunk were inconsistent with biomes that do not use dirt
surface nodes.
Place trunk nodes below a wide trunk instead of 'mapgen_dirt'.
On sloping ground, the trunk then extends down to the surface,
instead of the surface rising up to meet the trunk. This looks
more natural and does not alter the terrain.