aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_nodemeta.cpp
Commit message (Expand)AuthorAge
* Implement minetest.sound_fade()sfan52020-04-11
* Fix some reference counters (memleak) (#8981)SmallJoker2019-09-24
* Send only changed node metadata to clients instead of whole mapblock (#5268)SmallJoker2018-12-04
* Modernize lua read (part 2 & 3): C++ templating assurance (#7410)Loïc Blot2018-06-30
* MetaDataRef: Add contains() and get() (#7214)rubenwardy2018-04-30
* Check argument types inside MetaDataRef Lua API (#7045)sfan52018-02-18
* Code modernization: subfolders (#6283)Loïc Blot2017-08-19
* Optimize headers (part 2) (#6272)Loïc Blot2017-08-18
* Fix CSM crash caused by move to C++11. (#6027)red-0012017-06-22
* C++11 cleanup on constructors (#6000)Vincent Glize2017-06-19
* Private nodemeta (#5702)sfan52017-05-10
* Fix various points reported by cppcheck (#5656)Loïc Blot2017-04-25
* Hardware coloring for itemstacksDániel Juhász2017-04-08
* Replace luaL_reg with luaL_Reg as recent LuaJIT dropped the Lua 5.0 compat (#...Loïc Blot2017-04-08
* [CSM] Add local node meta reference. (#5508)red-0012017-04-04
* Derive NodeMetaRef from MetaDataRefrubenwardy2017-02-04
* Make NodeMetaRef::getmeta a non-static memberrubenwardy2017-02-04
* from_table: Fix crash for missing inventory or fieldSmallJoker2017-01-28
* Environment & IGameDef code refactoring (#4985)Ner'zhul2017-01-09
* Move ServerEnvironment to dedicated cpp/header filesLoic Blot2017-01-08
* SAPI: Mark all Lua API functions requiring envlockkwolekr2015-10-25
* Various style cleanups + unused code removalest312015-09-19
* Replace instances of std::map<std::string, std::string> with StringMapkwolekr2015-05-19
* Record MapBlock modification reasons as flags instead of stringskwolekr2015-05-17
* Fixed potential NULL pointer and leak when setting node metadataMetaDucky2013-11-29
* Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl2013-08-14
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
contains all map blocks that * the function modified */ void update_block_border_lighting(Map *map, MapBlock *block, std::map<v3s16, MapBlock*> &modified_blocks); /*! * Copies back nodes from a voxel manipulator * to the map and updates lighting. * For server use only. * * \param modified_blocks output, contains all map blocks that * the function modified */ void blit_back_with_light(ServerMap *map, MMVManip *vm, std::map<v3s16, MapBlock*> *modified_blocks); /*! * Corrects the light in a map block. * For server use only. * * \param block the block to update */ void repair_block_light(ServerMap *map, MapBlock *block, std::map<v3s16, MapBlock*> *modified_blocks); /*! * This class iterates trough voxels that intersect with * a line. The collision detection does not see nodeboxes, * every voxel is a cube and is returned. * This iterator steps to all nodes exactly once. */ struct VoxelLineIterator { public: //! Starting position of the line in world coordinates. v3f m_start_position; //! Direction and length of the line in world coordinates. v3f m_line_vector; /*! * Each component stores the next smallest positive number, by * which multiplying the line's vector gives a vector that ends * on the intersection of two nodes. */ v3f m_next_intersection_multi { 10000.0f, 10000.0f, 10000.0f }; /*! * Each component stores the smallest positive number, by which * m_next_intersection_multi's components can be increased. */ v3f m_intersection_multi_inc { 10000.0f, 10000.0f, 10000.0f }; /*! * Direction of the line. Each component can be -1 or 1 (if a * component of the line's vector is 0, then there will be 1). */ v3s16 m_step_directions { 1, 1, 1 }; //! Position of the current node. v3s16 m_current_node_pos; //! Index of the current node s16 m_current_index = 0; //! Position of the start node. v3s16 m_start_node_pos; //! Index of the last node s16 m_last_index; /*! * Creates a voxel line iterator with the given line. * @param start_position starting point of the line * in voxel coordinates * @param line_vector length and direction of the * line in voxel coordinates. start_position+line_vector * is the end of the line */ VoxelLineIterator(const v3f &start_position,const v3f &line_vector); /*! * Steps to the next voxel. * Updates m_current_node_pos and * m_previous_node_pos. * Note that it works even if hasNext() is false, * continuing the line as a ray. */ void next(); /*! * Returns true if the next voxel intersects the given line. */ inline bool hasNext() const { return m_current_index < m_last_index; } /*! * Returns how many times next() must be called until * voxel==m_current_node_pos. * If voxel does not intersect with the line, * the result is undefined. */ s16 getIndex(v3s16 voxel); }; } // namespace voxalgo