aboutsummaryrefslogtreecommitdiff
path: root/builtin
Commit message (Expand)AuthorAge
...
* Sort commands and privs alphabetically in '/help'.Diego Martinez2014-05-24
* Rework dumping functionsShadowNinja2014-05-24
* Fix a bunch of small bugs due to mainmenu cleanupsapier2014-05-24
* Item entity stacks merge on the ground.RealBadAngel2014-05-23
* Fix singleplayer dialogs missing game customizationsapier2014-05-17
* Add formspec toolkit and refactor mainmenu to use itsapier2014-05-16
* Fix old client showing duplicated health bar on new serversapier2014-05-11
* Fix healthbar not beeing hidden on disabled damagesapier2014-05-10
* Use "core" namespace internallyShadowNinja2014-05-08
* Organize builtin into subdirectoriesShadowNinja2014-05-07
* Fix heart + bubble bar size on different texture packssapier2014-05-07
* Fix usage of deprecated functions in builtinsapier2014-04-29
* Add proper lua api deprecated handlingsapier2014-04-29
* Add support for function serialization to minetest.serializeShadowNinja2014-04-27
* Remove dependency on marshal and many other async changesShadowNinja2014-04-27
* Revert "Add backtrace to error function"ShadowNinja2014-04-24
* Remove liquid_finite and weatherproller2014-04-18
* Add checks for nil in minetest.afterShadowNinja2014-04-13
* Fix crash when teleporting near unknown nodeBlockMen2014-04-11
* Fix "ghost stacks" created when a player clicks an item on the ground:Novatux2014-03-22
* Normal maps generation on the fly.RealBadAngel2014-03-21
* Fix error when calling minetest.node_punch without a pointed_thingShadowNinja2014-03-11
* Replace pause and message menu by formspec onessapier2014-03-05
* Remove "Server -!- " prefix from player messagesShadowNinja2014-02-27
* Add the option to bind to a specific addressShadowNinja2014-02-05
* Escape texture pack namesShadowNinja2014-02-03
* Add minetest.kick_player(name, reason)sapier2014-02-03
* Fix error on mod download failureShadowNinja2014-01-24
* Pass pointed_thing to on_punch and minetest.register_on_punchnode callbacksShadowNinja2014-01-23
* Add pointed_thing to minetest.register_on_placenodeShadowNinja2014-01-21
* Fix minetest.rotate_and_place() calling on_rightclick() with nil/random param...PilzAdam2014-01-19
* Fixed mainmenu lua errors because of changes in get_textlist_indexDániel Varga2014-01-18
* Fix spelling of "attempt"ShadowNinja2014-01-13
* Add minetest.override_itemShadowNinja2014-01-13
* Add formspec tableKahrl2014-01-13
* Fix doc and forceloading crash.Novatux2014-01-12
* Add forceloadingNovatux2014-01-11
* Deepcopy pointed_thing for after_place_node, give it to on_rightclick too.Novatux2014-01-11
* Pass pointed_thing to after_place_nodeShadowNinja2014-01-06
* Add protection support to auto-rotated nodesShadowNinja2014-01-06
* Prevent auto-rotated nodes replacing the nodes they are placed onShadowNinja2014-01-06
* Escape error messages in error dialogPilzAdam2014-01-06
* Fix main menu error message dialog: Now multi-line messages aren't cut at hal...Perttu Ahola2014-01-06
* Fix absence of images when compiled with RUN_IN_PLACE=0.Ilya Zhuravlev2014-01-05
* Revert "Fix minetest.facedir_to_dir when param2 is 5 or 7."Novatux2013-12-30
* Add 'on_prejoinplayer' callbackkaeza2013-12-12
* Implement search tab and version pickersapier2013-12-11
* Move script_run_callbacks to LuaShadowNinja2013-12-07
* Only create one alias metatableShadowNinja2013-12-04
* Shaders rework.RealBadAngel2013-12-03
typename T, typename Caller, typename CallerData> class GetResult { public: Key key; T item; std::list<CallerInfo<Caller, CallerData> > callers; }; template<typename Key, typename T, typename Caller, typename CallerData> class ResultQueue: public MutexedQueue< GetResult<Key, T, Caller, CallerData> > { }; template<typename Key, typename T, typename Caller, typename CallerData> class GetRequest { public: GetRequest() { dest = NULL; } GetRequest(ResultQueue<Key,T, Caller, CallerData> *a_dest) { dest = a_dest; } GetRequest(ResultQueue<Key,T, Caller, CallerData> *a_dest, Key a_key) { dest = a_dest; key = a_key; } ~GetRequest() { } Key key; ResultQueue<Key, T, Caller, CallerData> *dest; std::list<CallerInfo<Caller, CallerData> > callers; }; template<typename Key, typename T, typename Caller, typename CallerData> class RequestQueue { public: bool empty() { return m_queue.empty(); } void add(Key key, Caller caller, CallerData callerdata, ResultQueue<Key, T, Caller, CallerData> *dest) { JMutexAutoLock lock(m_queue.getMutex()); /* If the caller is already on the list, only update CallerData */ for(typename std::list< GetRequest<Key, T, Caller, CallerData> >::iterator i = m_queue.getList().begin(); i != m_queue.getList().end(); ++i) { GetRequest<Key, T, Caller, CallerData> &request = *i; if(request.key == key) { for(typename std::list< CallerInfo<Caller, CallerData> >::iterator i = request.callers.begin(); i != request.callers.end(); ++i) { CallerInfo<Caller, CallerData> &ca = *i; if(ca.caller == caller) { ca.data = callerdata; return; } } CallerInfo<Caller, CallerData> ca; ca.caller = caller; ca.data = callerdata; request.callers.push_back(ca); return; } } /* Else add a new request to the queue */ GetRequest<Key, T, Caller, CallerData> request; request.key = key; CallerInfo<Caller, CallerData> ca; ca.caller = caller; ca.data = callerdata; request.callers.push_back(ca); request.dest = dest; m_queue.getList().push_back(request); } GetRequest<Key, T, Caller, CallerData> pop(bool wait_if_empty=false) { return m_queue.pop_front(wait_if_empty); } private: MutexedQueue< GetRequest<Key, T, Caller, CallerData> > m_queue; }; #endif