From b05930ca654e08621a7cdb3be0df7f923d34c575 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sat, 4 Mar 2017 00:55:34 +0100 Subject: [PATCH] Add awards mod back --- mods/HUD/awards/LICENSE.txt | 502 ++++++++++ mods/HUD/awards/api.lua | 521 ++++++++++ mods/HUD/awards/api_helpers.lua | 58 ++ mods/HUD/awards/chat_commands.lua | 73 ++ mods/HUD/awards/depends.txt | 13 + mods/HUD/awards/description.txt | 1 + mods/HUD/awards/init.lua | 936 ++++++++++++++++++ mods/HUD/awards/locale/de.txt | 198 ++++ mods/HUD/awards/locale/template.txt | 196 ++++ mods/HUD/awards/mod.conf | 7 + mods/HUD/awards/readme.md | 162 +++ mods/HUD/awards/screenshot.png | Bin 0 -> 63807 bytes mods/HUD/awards/sfinv.lua | 30 + mods/HUD/awards/sounds/awards_got_generic.ogg | Bin 0 -> 76652 bytes .../HUD/awards/textures/awards_bg_default.png | Bin 0 -> 31407 bytes mods/HUD/awards/textures/awards_bg_mining.png | Bin 0 -> 21274 bytes .../awards/textures/awards_firefighter.png | Bin 0 -> 486 bytes mods/HUD/awards/textures/awards_house.png | Bin 0 -> 591 bytes mods/HUD/awards/textures/awards_level1.png | Bin 0 -> 195 bytes mods/HUD/awards/textures/awards_level2.png | Bin 0 -> 194 bytes mods/HUD/awards/textures/awards_level3.png | Bin 0 -> 193 bytes mods/HUD/awards/textures/awards_level4.png | Bin 0 -> 175 bytes mods/HUD/awards/textures/awards_level5.png | Bin 0 -> 177 bytes mods/HUD/awards/textures/awards_level6.png | Bin 0 -> 191 bytes mods/HUD/awards/textures/awards_level7.png | Bin 0 -> 178 bytes mods/HUD/awards/textures/awards_mese.png | Bin 0 -> 564 bytes mods/HUD/awards/textures/awards_miniminer.png | Bin 0 -> 455 bytes .../awards/textures/awards_novicebuilder.png | Bin 0 -> 374 bytes .../awards/textures/awards_progress_gray.png | Bin 0 -> 146 bytes .../awards/textures/awards_progress_green.png | Bin 0 -> 177 bytes mods/HUD/awards/textures/awards_template.png | Bin 0 -> 322 bytes mods/HUD/awards/textures/awards_ui_bags.png | Bin 0 -> 612 bytes mods/HUD/awards/textures/awards_ui_icon.png | Bin 0 -> 3514 bytes mods/HUD/awards/textures/awards_unknown.png | Bin 0 -> 322 bytes mods/HUD/awards/triggers.lua | 416 ++++++++ mods/HUD/awards/unified_inventory.lua | 18 + 36 files changed, 3131 insertions(+) create mode 100644 mods/HUD/awards/LICENSE.txt create mode 100644 mods/HUD/awards/api.lua create mode 100644 mods/HUD/awards/api_helpers.lua create mode 100644 mods/HUD/awards/chat_commands.lua create mode 100644 mods/HUD/awards/depends.txt create mode 100644 mods/HUD/awards/description.txt create mode 100644 mods/HUD/awards/init.lua create mode 100644 mods/HUD/awards/locale/de.txt create mode 100644 mods/HUD/awards/locale/template.txt create mode 100644 mods/HUD/awards/mod.conf create mode 100644 mods/HUD/awards/readme.md create mode 100644 mods/HUD/awards/screenshot.png create mode 100644 mods/HUD/awards/sfinv.lua create mode 100644 mods/HUD/awards/sounds/awards_got_generic.ogg create mode 100644 mods/HUD/awards/textures/awards_bg_default.png create mode 100644 mods/HUD/awards/textures/awards_bg_mining.png create mode 100644 mods/HUD/awards/textures/awards_firefighter.png create mode 100644 mods/HUD/awards/textures/awards_house.png create mode 100644 mods/HUD/awards/textures/awards_level1.png create mode 100644 mods/HUD/awards/textures/awards_level2.png create mode 100644 mods/HUD/awards/textures/awards_level3.png create mode 100644 mods/HUD/awards/textures/awards_level4.png create mode 100644 mods/HUD/awards/textures/awards_level5.png create mode 100644 mods/HUD/awards/textures/awards_level6.png create mode 100644 mods/HUD/awards/textures/awards_level7.png create mode 100644 mods/HUD/awards/textures/awards_mese.png create mode 100644 mods/HUD/awards/textures/awards_miniminer.png create mode 100644 mods/HUD/awards/textures/awards_novicebuilder.png create mode 100644 mods/HUD/awards/textures/awards_progress_gray.png create mode 100644 mods/HUD/awards/textures/awards_progress_green.png create mode 100644 mods/HUD/awards/textures/awards_template.png create mode 100644 mods/HUD/awards/textures/awards_ui_bags.png create mode 100644 mods/HUD/awards/textures/awards_ui_icon.png create mode 100644 mods/HUD/awards/textures/awards_unknown.png create mode 100644 mods/HUD/awards/triggers.lua create mode 100644 mods/HUD/awards/unified_inventory.lua diff --git a/mods/HUD/awards/LICENSE.txt b/mods/HUD/awards/LICENSE.txt new file mode 100644 index 000000000..4362b4915 --- /dev/null +++ b/mods/HUD/awards/LICENSE.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/mods/HUD/awards/api.lua b/mods/HUD/awards/api.lua new file mode 100644 index 000000000..f53ee0d74 --- /dev/null +++ b/mods/HUD/awards/api.lua @@ -0,0 +1,521 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- You should have received a copy of the GNU Lesser General Public License along +-- with this program; if not, write to the Free Software Foundation, Inc., +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +-- + +-- The global award namespace +awards = { + show_mode = "hud" +} +dofile(minetest.get_modpath("awards").."/api_helpers.lua") + +-- Table Save Load Functions +function awards.save() + local file = io.open(minetest.get_worldpath().."/awards.txt", "w") + if file then + file:write(minetest.serialize(awards.players)) + file:close() + end +end + +local S = function(s) return s end +function awards.set_intllib(locale) + S = locale +end + +function awards.init() + awards.players = awards.load() + awards.def = {} + awards.trigger_types = {} + awards.on = {} + awards.on_unlock = {} +end + +function awards.load() + local file = io.open(minetest.get_worldpath().."/awards.txt", "r") + if file then + local table = minetest.deserialize(file:read("*all")) + if type(table) == "table" then + return table + end + end + return {} +end + +function awards.register_trigger(name, func) + awards.trigger_types[name] = func + awards.on[name] = {} + awards['register_on_'..name] = function(func) + table.insert(awards.on[name], func) + end +end + +function awards.run_trigger_callbacks(player, data, trigger, table_func) + for i = 1, #awards.on[trigger] do + local res = nil + local entry = awards.on[trigger][i] + if type(entry) == "function" then + res = entry(player, data) + elseif type(entry) == "table" and entry.award then + res = table_func(entry) + end + + if res then + awards.unlock(player:get_player_name(), res) + end + end +end + +function awards.increment_item_counter(data, field, itemname, count) + local name_split = string.split(itemname, ":") + if #name_split ~= 2 then + return false + end + local mod = name_split[1] + local item = name_split[2] + + if data and field and mod and item then + awards.assertPlayer(data) + awards.tbv(data, field) + awards.tbv(data[field], mod) + awards.tbv(data[field][mod], item, 0) + + data[field][mod][item] = data[field][mod][item] + (count or 1) + return true + else + return false + end +end + +function awards.get_item_count(data, field, itemname) + local name_split = string.split(itemname, ":") + if #name_split ~= 2 then + return false + end + local mod = name_split[1] + local item = name_split[2] + + if data and field and mod and item then + awards.assertPlayer(data) + awards.tbv(data, field) + awards.tbv(data[field], mod) + awards.tbv(data[field][mod], item, 0) + return data[field][mod][item] + end +end + +function awards.get_total_item_count(data, field) + local i = 0 + if data and field then + awards.assertPlayer(data) + awards.tbv(data, field) + for mod,_ in pairs(data[field]) do + awards.tbv(data[field], mod) + for item,_ in pairs(data[field][mod]) do + awards.tbv(data[field][mod], item, 0) + i = i + data[field][mod][item] + end + end + end + return i +end + +function awards.register_on_unlock(func) + table.insert(awards.on_unlock, func) +end + +-- API Functions +function awards._additional_triggers(name, def) + -- Depreciated! +end + +function awards.register_achievement(name, def) + def.name = name + + -- Add Triggers + if def.trigger and def.trigger.type then + local func = awards.trigger_types[def.trigger.type] + + if func then + func(def) + else + awards._additional_triggers(name, def) + end + end + + -- Add Award + awards.def[name] = def + + local tdef = awards.def[name] + if def.description == nil and tdef.getDefaultDescription then + def.description = tdef:getDefaultDescription() + end +end + +function awards.enable(name) + local data = awards.player(name) + if data then + data.disabled = nil + end +end + +function awards.disable(name) + local data = awards.player(name) + if data then + data.disabled = true + end +end + +function awards.clear_player(name) + awards.players[name] = {} +end + +-- This function is called whenever a target condition is met. +-- It checks if a player already has that achievement, and if they do not, +-- it gives it to them +---------------------------------------------- +--awards.unlock(name, award) +-- name - the name of the player +-- award - the name of the award to give +function awards.unlock(name, award) + -- Access Player Data + local data = awards.players[name] + local awdef = awards.def[award] + + -- Perform checks + if not data then + return + end + if not awdef then + return + end + if data.disabled then + return + end + awards.tbv(data,"unlocked") + + -- Don't give the achievement if it has already been given + if data.unlocked[award] and data.unlocked[award] == award then + return + end + + -- Unlock Award + minetest.log("action", name.." has unlocked award "..name) + data.unlocked[award] = award + awards.save() + + -- Give Prizes + if awdef and awdef.prizes then + for i = 1, #awdef.prizes do + local itemstack = ItemStack(awdef.prizes[i]) + if not itemstack:is_empty() then + local receiverref = minetest.get_player_by_name(name) + if receiverref then + receiverref:get_inventory():add_item("main", itemstack) + end + end + end + end + + -- Run callbacks + if awdef.on_unlock and awdef.on_unlock(name, awdef) then + return + end + for _, callback in pairs(awards.on_unlock) do + if callback(name, awdef) then + return + end + end + + -- Get Notification Settings + local title = awdef.title or award + local desc = awdef.description or "" + local background = awdef.background or "awards_bg_default.png" + local icon = awdef.icon or "awards_unknown.png" + local sound = awdef.sound + if sound == nil then + -- Explicit check for nil because sound could be `false` to disable it + sound = {name="awards_got_generic", gain=0.25} + end + local custom_announce = awdef.custom_announce + if not custom_announce then + if awdef.secret then + custom_announce = S("Secret Achievement Unlocked:") + else + custom_announce = S("Achievement Unlocked:") + end + end + + -- Do Notification + if sound then + -- Enforce sound delay to prevent sound spamming + local lastsound = awards.players[name].lastsound + if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then + minetest.sound_play(sound, {to_player=name}) + awards.players[name].lastsound = os.time() + end + end + + if awards.show_mode == "formspec" then + -- use a formspec to send it + minetest.show_formspec(name, "achievements:unlocked", "size[4,2]".. + "image_button_exit[0,0;4,2;"..background..";close1; ]".. + "image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]".. + "label[1.1,1;"..title.."]".. + "label[0.3,0.1;"..custom_announce.."]") + elseif awards.show_mode == "chat" then + local chat_announce + if awdef.secret == true then + chat_announce = S("Secret Achievement Unlocked: %s") + else + chat_announce = S("Achievement Unlocked: %s") + end + -- use the chat console to send it + minetest.chat_send_player(name, string.format(chat_announce, title)) + if desc~="" then + minetest.chat_send_player(name, desc) + end + else + local player = minetest.get_player_by_name(name) + local one = player:hud_add({ + hud_elem_type = "image", + name = "award_bg", + scale = {x = 1, y = 1}, + text = background, + position = {x = 0.5, y = 0}, + offset = {x = 0, y = 138}, + alignment = {x = 0, y = -1} + }) + local hud_announce + if awdef.secret == true then + hud_announce = S("Secret Achievement Unlocked!") + else + hud_announce = S("Achievement Unlocked!") + end + local two = player:hud_add({ + hud_elem_type = "text", + name = "award_au", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = hud_announce, + position = {x = 0.5, y = 0}, + offset = {x = 0, y = 40}, + alignment = {x = 0, y = -1} + }) + local three = player:hud_add({ + hud_elem_type = "text", + name = "award_title", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = title, + position = {x = 0.5, y = 0}, + offset = {x = 30, y = 100}, + alignment = {x = 0, y = -1} + }) + local four = player:hud_add({ + hud_elem_type = "image", + name = "award_icon", + scale = {x = 4, y = 4}, + text = icon, + position = {x = 0.5, y = 0}, + offset = {x = -81.5, y = 126}, + alignment = {x = 0, y = -1} + }) + minetest.after(3, function() + player:hud_remove(one) + player:hud_remove(two) + player:hud_remove(three) + player:hud_remove(four) + end) + end +end + +-- Backwards compatibility +awards.give_achievement = awards.unlock + +--[[minetest.register_chatcommand("gawd", { + params = "award name", + description = "gawd: give award to self", + func = function(name, param) + awards.unlock(name,param) + end +})]]-- + +function awards.getFormspec(name, to, sid) + local formspec = "" + local listofawards = awards._order_awards(name) + local playerdata = awards.players[name] + + if #listofawards == 0 then + formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No awards available.")).."]" + formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]" + return formspec + end + + -- Sidebar + if sid then + local item = listofawards[sid+0] + local def = awards.def[item.name] + + if def and def.secret and not item.got then + formspec = formspec .. "label[1,2.75;"..minetest.formspec_escape(S("(Secret Award)")).."]".. + "image[1,0;3,3;awards_unknown.png]" + if def and def.description then + formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(S("Unlock this award to find out what it is."))..";]" + end + else + local title = item.name + if def and def.title then + title = def.title + end + local status = "%s" + if item.got then + status = S("%s (got)") + end + formspec = formspec .. "label[1,2.75;" .. + string.format(status, minetest.formspec_escape(title)) .. + "]" + if def and def.icon then + formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]" + end + local barwidth = 4.6 + local perc = nil + local label = nil + if def.getProgress and playerdata then + local res = def:getProgress(playerdata) + perc = res.perc + label = res.label + end + if perc then + if perc > 1 then + perc = 1 + end + formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png;false]" + formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png;false]" + if label then + formspec = formspec .. "label[1.75,4.63;" .. minetest.formspec_escape(label) .. "]" + end + end + if def and def.description then + formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(def.description)..";]" + end + end + end + + -- Create list box + formspec = formspec .. "textlist[4.75,0;6,5;awards;" + local first = true + for _,award in pairs(listofawards) do + local def = awards.def[award.name] + if def then + if not first then + formspec = formspec .. "," + end + first = false + + if def.secret and not award.got then + formspec = formspec .. "#707070"..minetest.formspec_escape(S("(Secret Award)")) + else + local title = award.name + if def and def.title then + title = def.title + end + if award.got then + formspec = formspec .. minetest.formspec_escape(title) + else + formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) + end + end + end + end + return formspec .. ";"..sid.."]" +end + +function awards.show_to(name, to, sid, text) + if name == "" or name == nil then + name = to + end + if name == to and awards.player(to).disabled then + minetest.chat_send_player(S("You've disabled awards. Type /awards enable to reenable.")) + return + end + if text then + local listofawards = awards._order_awards(name) + if #listofawards == 0 then + minetest.chat_send_player(to, S("Error: No awards available.")) + return + elseif not awards.players[name] or not awards.players[name].unlocked then + minetest.chat_send_player(to, S("You have not unlocked any awards.")) + return + end + minetest.chat_send_player(to, string.format(S("%s’s awards:"), name)) + + for _, str in pairs(awards.players[name].unlocked) do + local def = awards.def[str] + if def then + if def.title then + if def.description then + minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description)) + else + minetest.chat_send_player(to, def.title) + end + else + minetest.chat_send_player(to, str) + end + end + end + else + if sid == nil or sid < 1 then + sid = 1 + end + local deco = "" + if minetest.global_exists("default") then + deco = default.gui_bg .. default.gui_bg_img + end + -- Show formspec to user + minetest.show_formspec(to,"awards:awards", + "size[11,5]" .. deco .. + awards.getFormspec(name, to, sid)) + end +end +awards.showto = awards.show_to + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "awards:awards" then + return false + end + if fields.quit then + return true + end + local name = player:get_player_name() + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + awards.show_to(name, name, event.index, false) + end + end + + return true +end) + +awards.init() + +minetest.register_on_newplayer(function(player) + local playern = player:get_player_name() + awards.assertPlayer(playern) +end) + +minetest.register_on_shutdown(function() + awards.save() +end) diff --git a/mods/HUD/awards/api_helpers.lua b/mods/HUD/awards/api_helpers.lua new file mode 100644 index 000000000..cd499ab42 --- /dev/null +++ b/mods/HUD/awards/api_helpers.lua @@ -0,0 +1,58 @@ +function awards.tbv(tb,value,default) + if not default then + default = {} + end + if not tb or type(tb) ~= "table" then + if not value then + value = "[NULL]" + end + minetest.log("error", "awards.tbv - table "..dump(value).." is null, or not a table! Dump: "..dump(tb)) + return + end + if not value then + error("[ERROR] awards.tbv was not used correctly!\n".. + "Value: '"..dump(value).."'\n".. + "Dump:"..dump(tb)) + return + end + if not tb[value] then + tb[value] = default + end +end + +function awards.assertPlayer(playern) + awards.tbv(awards.players, playern) + awards.tbv(awards.players[playern], "name", playern) + awards.tbv(awards.players[playern], "unlocked") + awards.tbv(awards.players[playern], "place") + awards.tbv(awards.players[playern], "count") + awards.tbv(awards.players[playern], "craft") + awards.tbv(awards.players[playern], "eat") + awards.tbv(awards.players[playern], "deaths", 0) + awards.tbv(awards.players[playern], "joins", 0) + awards.tbv(awards.players[playern], "chats", 0) +end + +function awards.player(name) + return awards.players[name] +end + +function awards._order_awards(name) + local done = {} + local retval = {} + local player = awards.player(name) + if player and player.unlocked then + for _,got in pairs(player.unlocked) do + if awards.def[got] then + done[got] = true + table.insert(retval,{name=got,got=true}) + end + end + end + for _,def in pairs(awards.def) do + if not done[def.name] then + table.insert(retval,{name=def.name,got=false}) + end + end + return retval +end diff --git a/mods/HUD/awards/chat_commands.lua b/mods/HUD/awards/chat_commands.lua new file mode 100644 index 000000000..c386c19cb --- /dev/null +++ b/mods/HUD/awards/chat_commands.lua @@ -0,0 +1,73 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- You should have received a copy of the GNU Lesser General Public License along +-- with this program; if not, write to the Free Software Foundation, Inc., +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +-- + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +minetest.register_chatcommand("awards", { + params = S("[c|clear|disable|enable]"), + description = S("Show, clear, disable or enable your achievements"), + func = function(name, param) + if param == "clear" then + awards.clear_player(name) + minetest.chat_send_player(name, + S("All your awards and statistics have been cleared. You can now start again.")) + elseif param == "disable" then + awards.disable(name) + minetest.chat_send_player(name, S("You have disabled your achievements.")) + elseif param == "enable" then + awards.enable(name) + minetest.chat_send_player(name, S("You have enabled your achievements.")) + elseif param == "c" then + awards.show_to(name, name, nil, true) + else + awards.show_to(name, name, nil, false) + end + end +}) + +minetest.register_chatcommand("awd", { + params = S(""), + description = S("Show details of an achievement"), + func = function(name, param) + local def = awards.def[param] + if def then + minetest.chat_send_player(name, string.format(S("%s: %s"), def.title, def.description)) + else + minetest.chat_send_player(name, S("Achievement not found.")) + end + end +}) + +minetest.register_chatcommand("awpl", { + privs = { + server = true + }, + params = S(""), + description = S("Get the achievements statistics for the given player or yourself"), + func = function(name, param) + if not param or param == "" then + param = name + end + minetest.chat_send_player(name, param) + local player = awards.player(param) + minetest.chat_send_player(name, dump(player)) + end +}) diff --git a/mods/HUD/awards/depends.txt b/mods/HUD/awards/depends.txt new file mode 100644 index 000000000..c0de3afd3 --- /dev/null +++ b/mods/HUD/awards/depends.txt @@ -0,0 +1,13 @@ +intllib? +sfinv? +unified_inventory? +default? +stairs? +farming? +dye? +beds? +wool? +vessels? +moreblocks? +fire? +flowers? diff --git a/mods/HUD/awards/description.txt b/mods/HUD/awards/description.txt new file mode 100644 index 000000000..f2b9944c7 --- /dev/null +++ b/mods/HUD/awards/description.txt @@ -0,0 +1 @@ +Adds achievements to Minetest, and an API to register new ones. diff --git a/mods/HUD/awards/init.lua b/mods/HUD/awards/init.lua new file mode 100644 index 000000000..e841603d4 --- /dev/null +++ b/mods/HUD/awards/init.lua @@ -0,0 +1,936 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- You should have received a copy of the GNU Lesser General Public License along +-- with this program; if not, write to the Free Software Foundation, Inc., +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +-- + + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("awards").."/api.lua") +dofile(minetest.get_modpath("awards").."/chat_commands.lua") +dofile(minetest.get_modpath("awards").."/sfinv.lua") +dofile(minetest.get_modpath("awards").."/unified_inventory.lua") +dofile(minetest.get_modpath("awards").."/triggers.lua") +awards.set_intllib(S) + +-- Saint-Maclou +if minetest.get_modpath("moreblocks") then + awards.register_achievement("award_saint_maclou",{ + title = S("Saint-Maclou"), + description = S("Place 20 coal checkers."), + icon = "awards_novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:coal_checker", + target = 20 + } + }) + + -- Castorama + awards.register_achievement("award_castorama",{ + title = S("Castorama"), + description = S("Place 20 iron checkers."), + icon = "awards_novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:iron_checker", + target = 20 + } + }) + + -- Sam the Trapper + awards.register_achievement("award_sam_the_trapper",{ + title = S("Sam the Trapper"), + description = S("Place 2 trap stones."), + icon = "awards_novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:trap_stone", + target = 2 + } + }) +end + +-- This award can't be part of Unified Inventory, it would make a circular dependency +if minetest.get_modpath("unified_inventory") then + if minetest.get_all_craft_recipes("unified_inventory:bag_large") ~= nil then + awards.register_achievement("awards_ui_bags", { + title = S("Backpacker"), + description = S("Craft 4 large bags."), + icon = "awards_ui_bags.png", + trigger = { + type = "craft", + item = "unified_inventory:bag_large", + target = 4 + } + }) + end +end + +if minetest.get_modpath("fire") then + awards.register_achievement("awards_pyro", { + title = S("Pyromaniac"), + description = S("Craft 8 times flint and steel."), + icon = "fire_flint_steel.png", + trigger = { + type = "craft", + item = "fire:flint_and_steel", + target = 8 + } + }) + if minetest.setting_getbool("disable_fire") ~= true then + awards.register_achievement("awards_firefighter", { + title = S("Firefighter"), + description = S("Put out 1000 fires."), + icon = "awards_firefighter.png", + trigger = { + type = "dig", + node = "fire:basic_flame", + target = 1000 + } + }) + end +end + +if minetest.get_modpath("default") then + -- Light it up + awards.register_achievement("award_lightitup",{ + title = S("Light It Up"), + description = S("Place 100 torches."), + icon = "awards_novicebuilder.png^awards_level1.png", + trigger = { + type = "place", + node = "default:torch", + target = 100 + } + }) + + -- Light ALL the things! + awards.register_achievement("award_well_lit",{ + title = S("Well Lit"), + description = S("Place 1,000 torches."), + icon = "awards_novicebuilder.png^awards_level2.png", + trigger = { + type = "place", + node = "default:torch", + target = 1000 + } + }) + + awards.register_achievement("award_meselamp",{ + title = S("Really Well Lit"), + description = S("Craft 10 mese lamps."), + icon = "default_meselamp.png", + trigger = { + type = "craft", + item = "default:meselamp", + target = 10 + } + }) + + awards.register_achievement("awards_stonebrick", { + title = S("Outpost"), + description = S("Craft 200 stone bricks."), + icon = "default_stone_brick.png^awards_level1.png", + trigger = { + type = "craft", + item = "default:stonebrick", + target = 200 + } + }) + + awards.register_achievement("awards_stonebrick2", { + title = S("Watchtower"), + description = S("Craft 800 stone bricks."), + icon = "default_stone_brick.png^awards_level2.png", + trigger = { + type = "craft", + item = "default:stonebrick", + target = 800 + } + }) + + awards.register_achievement("awards_stonebrick3", { + title = S("Fortress"), + description = S("Craft 3,200 stone bricks."), + icon = "default_stone_brick.png^awards_level3.png", + trigger = { + type = "craft", + item = "default:stonebrick", + target = 3200 + } + }) + + awards.register_achievement("awards_desert_stonebrick", { + title = S("Desert Dweller"), + description = S("Craft 400 desert stone bricks."), + icon = "default_desert_stone_brick.png", + trigger = { + type = "craft", + item = "default:desert_stonebrick", + target = 400 + } + }) + + awards.register_achievement("awards_desertstonebrick", { + title = S("Pharaoh"), + description = S("Craft 100 sandstone bricks."), + icon = "default_sandstone_brick.png", + trigger = { + type = "craft", + item = "default:sandstonebrick", + target = 100 + } + }) + + awards.register_achievement("awards_bookshelf", { + title = S("Little Library"), + description = S("Craft 7 bookshelves."), + icon = "default_bookshelf.png", + trigger = { + type = "craft", + item = "default:bookshelf", + target = 7 + } + }) + + awards.register_achievement("awards_obsidian", { + title = S("Lava and Water"), + description = S("Mine your first obsidian."), + icon = "default_obsidian.png^awards_level1.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:obsidian", + target = 1 + } + }) + + -- Obsessed with Obsidian + awards.register_achievement("award_obsessed_with_obsidian",{ + title = S("Obsessed with Obsidian"), + description = S("Mine 50 obsidian."), + icon = "default_obsidian.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:obsidian", + target = 50 + } + }) + + -- Proof that player has found lava + awards.register_achievement("award_lavaminer",{ + title = S("Lava Miner"), + description = S("Mine any block while being very close to lava."), + background = "awards_bg_mining.png", + icon = "default_lava.png", + }) + awards.register_on_dig(function(player,data) + local pos = player:getpos() + if pos and (minetest.find_node_near(pos, 1, "default:lava_source") ~= nil or + minetest.find_node_near(pos, 1, "default:lava_flowing") ~= nil) then + return "award_lavaminer" + end + return nil + end) + + -- On the way + awards.register_achievement("award_on_the_way", { + title = S("On The Way"), + description = S("Place 100 rails."), + icon = "default_rail.png", + trigger = { + type = "place", + node = "default:rail", + target = 100 + } + }) + + awards.register_achievement("award_lumberjack_firstday", { + title = S("First Day in the Woods"), + description = S("Dig 6 tree blocks."), + icon = "default_tree.png^awards_level1.png", + trigger = { + type = "dig", + node = "default:tree", + target = 6 + } + }) + + -- Lumberjack + awards.register_achievement("award_lumberjack", { + title = S("Lumberjack"), + description = S("Dig 36 tree blocks."), + icon = "default_tree.png^awards_level2.png", + trigger = { + type = "dig", + node = "default:tree", + target = 36 + } + }) + + -- Semi-pro Lumberjack + awards.register_achievement("award_lumberjack_semipro", { + title = S("Semi-pro Lumberjack"), + description = S("Dig 216 tree blocks."), + icon = "default_tree.png^awards_level3.png", + trigger = { + type = "dig", + node = "default:tree", + target = 216 + } + }) + + -- Professional Lumberjack + awards.register_achievement("award_lumberjack_professional", { + title = S("Professional Lumberjack"), + description = S("Dig 1,296 tree blocks."), + icon = "default_tree.png^awards_level4.png", + trigger = { + type = "dig", + node = "default:tree", + target = 1296 + } + }) + + -- Junglebaby + awards.register_achievement("award_junglebaby", { + title = S("Junglebaby"), + description = S("Dig 100 jungle tree blocks."), + icon = "default_jungletree.png^awards_level1.png", + trigger = { + type = "dig", + node = "default:jungletree", + target = 100 + } + }) + + -- Jungleman + awards.register_achievement("award_jungleman", { + title = S("Jungleman"), + description = S("Dig 1,000 jungle tree blocks."), + icon = "default_jungletree.png^awards_level2.png", + trigger = { + type = "dig", + node = "default:jungletree", + target = 1000 + } + }) + + -- Found some Mese! + awards.register_achievement("award_mesefind", { + title = S("First Mese Find"), + description = S("Mine your first mese ore."), + icon = "default_stone.png^default_mineral_mese.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_mese", + target = 1 + } + }) + + -- Mese Block + awards.register_achievement("award_meseblock", { + secret = true, + title = S("Mese Mastery"), + description = S("Mine a mese block."), + icon = "default_mese_block.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:mese", + target = 1 + } + }) + + -- You're a copper + awards.register_achievement("award_youre_a_copper", { + title = S("You’re a copper"), + description = S("Dig 1,000 copper ores."), + icon = "default_stone.png^default_mineral_copper.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_copper", + target = 1000 + } + }) + + -- Found a Nyan cat! + awards.register_achievement("award_nyanfind", { + secret = true, + title = S("A Cat in a Pop-Tart?!"), + description = S("Mine a nyan cat."), + icon = "nyancat_front.png", + trigger = { + type = "dig", + node = "default:nyancat", + target = 1 + } + }) + + -- Mini Miner + awards.register_achievement("award_mine2", { + title = S("Mini Miner"), + description = S("Dig 100 stone blocks."), + icon = "awards_miniminer.png^awards_level1.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 100 + } + }) + + -- Hardened Miner + awards.register_achievement("award_mine3", { + title = S("Hardened Miner"), + description = S("Dig 1,000 stone blocks."), + icon = "awards_miniminer.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 1000 + } + }) + + -- Master Miner + awards.register_achievement("award_mine4", { + title = S("Master Miner"), + description = S("Dig 10,000 stone blocks."), + icon = "awards_miniminer.png^awards_level3.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 10000 + } + }) + + -- Marchand de sable + awards.register_achievement("award_marchand_de_sable", { + title = S("Marchand De Sable"), + description = S("Dig 1,000 sand."), + icon = "default_sand.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:sand", + target = 1000 + } + }) + + awards.register_achievement("awards_crafter_of_sticks", { + title = S("Crafter of Sticks"), + description = S("Craft 100 sticks."), + icon = "default_stick.png", + trigger = { + type = "craft", + item = "default:stick", + target = 100 + } + }) + + awards.register_achievement("awards_junglegrass", { + title = S("Jungle Discoverer"), + description = S("Mine your first jungle grass."), + icon = "default_junglegrass.png", + trigger = { + type = "dig", + node = "default:junglegrass", + target = 1 + } + }) + + awards.register_achievement("awards_grass", { + title = S("Grasslands Discoverer"), + description = S("Mine some grass."), + icon = "default_grass_3.png", + trigger = { + type = "dig", + node = "default:grass_1", + target = 1 + } + }) + + awards.register_achievement("awards_dry_grass", { + title = S("Savannah Discoverer"), + description = S("Mine some dry grass."), + icon = "default_dry_grass_3.png", + trigger = { + type = "dig", + node = "default:dry_grass_3", + target = 1 + } + }) + + awards.register_achievement("awards_cactus", { + title = S("Desert Discoverer"), + description = S("Mine your first cactus."), + icon = "default_cactus_side.png", + trigger = { + type = "dig", + node = "default:cactus", + target = 1 + } + }) + + awards.register_achievement("awards_dry_shrub", { + title = S("Far Lands"), + description = S("Mine your first dry shrub."), + icon = "default_dry_shrub.png", + trigger = { + type = "dig", + node = "default:dry_shrub", + target = 1 + } + }) + + awards.register_achievement("awards_ice", { + title = S("Glacier Discoverer"), + description = S("Mine your first ice."), + icon = "default_ice.png", + trigger = { + type = "dig", + node = "default:ice", + target = 1 + } + }) + + -- Proof that player visited snowy lands + awards.register_achievement("awards_snowblock", { + title = S("Very Simple Snow Man"), + description = S("Place two snow blocks."), + icon = "default_snow.png", + trigger = { + type = "place", + node = "default:snowblock", + target = 2 + } + }) + + awards.register_achievement("awards_gold_ore", { + title = S("First Gold Find"), + description = S("Mine your first gold ore."), + icon = "default_stone.png^default_mineral_gold.png^awards_level1.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_gold", + target = 1 + } + }) + + awards.register_achievement("awards_gold_rush", { + title = S("Gold Rush"), + description = S("Mine 45 gold ores."), + icon = "default_stone.png^default_mineral_gold.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_gold", + target = 45 + } + }) + + awards.register_achievement("awards_diamond_ore", { + title = S("Wow, I am Diamonds!"), + description = S("Mine your first diamond ore."), + icon = "default_stone.png^default_mineral_diamond.png^awards_level1.png", + trigger = { + type = "dig", + node = "default:stone_with_diamond", + target = 1 + } + }) + + awards.register_achievement("awards_diamond_rush", { + title = S("Girl's Best Friend"), + description = S("Mine 18 diamond ores."), + icon = "default_stone.png^default_mineral_diamond.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_diamond", + target = 18 + } + }) + + awards.register_achievement("awards_diamondblock", { + title = S("Hardest Block on Earth"), + description = S("Craft a diamond block."), + icon = "default_diamond_block.png", + trigger = { + type = "craft", + item = "default:diamondblock", + target = 1 + } + }) + + awards.register_achievement("awards_mossycobble", { + title = S("In the Dungeon"), + description = S("Mine a mossy cobblestone."), + icon = "default_mossycobble.png", + trigger = { + type = "dig", + node = "default:mossycobble", + target = 1 + } + }) + + awards.register_achievement("award_furnace", { + title = S("Smelter"), + description = S("Craft 10 furnaces."), + icon = "default_furnace_front.png", + trigger = { + type = "craft", + item= "default:furnace", + target = 10 + } + }) + + awards.register_achievement("award_chest", { + title = S("Treasurer"), + description = S("Craft 15 chests."), + icon = "default_chest_front.png", + trigger = { + type = "craft", + item= "default:chest", + target = 15 + } + }) + + awards.register_achievement("award_chest2", { + title = S("Bankier"), + description = S("Craft 30 locked chests."), + icon = "default_chest_lock.png", + trigger = { + type = "craft", + item= "default:chest_locked", + target = 30 + } + }) + + awards.register_achievement("award_brick", { + title = S("Bricker"), + description = S("Craft 200 brick blocks."), + icon = "default_brick.png", + trigger = { + type = "craft", + item= "default:brick", + target = 200 + } + }) + + awards.register_achievement("award_obsidianbrick", { + title = S("House of Obsidian"), + description = S("Craft 100 obsidian bricks."), + icon = "default_obsidian_brick.png", + trigger = { + type = "craft", + item= "default:obsidianbrick", + target = 100 + } + }) + + awards.register_achievement("award_placestone", { + title = S("Build a Cave"), + description = S("Place 100 stone."), + icon = "default_stone.png", + trigger = { + type = "place", + node = "default:stone", + target = 100 + } + }) + + awards.register_achievement("award_woodladder", { + title = S("Long Ladder"), + description = S("Place 400 wooden ladders."), + icon = "default_ladder_wood.png", + trigger = { + type = "place", + node = "default:ladder_wood", + target = 400 + } + }) + + awards.register_achievement("award_steelladder", { + title = S("Industrial Age"), + description = S("Place 40 steel ladders."), + icon = "default_ladder_steel.png", + trigger = { + type = "place", + node = "default:ladder_steel", + target = 40 + } + }) + + awards.register_achievement("award_apples", { + title = S("Yummy!"), + description = S("Eat 80 apples."), + icon = "default_apple.png", + trigger = { + type = "eat", + item = "default:apple", + target = 80 + } + }) +end + +if minetest.get_modpath("vessels") then + awards.register_achievement("award_vessels_shelf", { + title = S("Glasser"), + icon = "vessels_shelf.png", + description = S("Craft 14 vessels shelves."), + trigger = { + type = "craft", + item= "vessels:shelf", + target = 14 + } + }) +end + +if minetest.get_modpath("farming") then + awards.register_achievement("awards_farmer", { + title = S("Farming Skills Aquired"), + description = S("Harvest a fully grown wheat plant."), + icon = "farming_wheat_8.png^awards_level1.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 1 + } + }) + awards.register_achievement("awards_farmer2", { + title = S("Field Worker"), + description = S("Harvest 25 fully grown wheat plants."), + icon = "farming_wheat_8.png^awards_level2.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 25 + } + }) + + awards.register_achievement("awards_farmer3", { + title = S("Aspiring Farmer"), + description = S("Harvest 125 fully grown wheat plants."), + icon = "farming_wheat_8.png^awards_level3.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 125 + } + }) + + awards.register_achievement("awards_farmer4", { + title = S("Wheat Magnate"), + description = S("Harvest 625 fully grown wheat plants."), + icon = "farming_wheat_8.png^awards_level4.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 625 + } + }) + + awards.register_achievement("award_bread", { + title = S("Baker"), + description = S("Eat 10 loaves of bread."), + icon = "farming_bread.png", + trigger = { + type = "eat", + item = "farming:bread", + target = 10 + } + }) + +end + +if minetest.get_modpath("wool") and minetest.get_modpath("farming") then + awards.register_achievement("awards_wool", { + title = S("Wool Over Your Eyes"), + description = S("Craft 250 white wool."), + icon = "wool_white.png", + trigger = { + type = "craft", + item = "wool:white", + target = 250 + } + }) +end + +if minetest.get_modpath("beds") then + awards.register_achievement("award_bed", { + title = S("Hotelier"), + description = S("Craft 15 fancy beds."), + icon = "beds_bed_fancy.png", + trigger = { + type = "craft", + item= "beds:fancy_bed_bottom", + target = 15 + } + }) +end + +if minetest.get_modpath("stairs") then + awards.register_achievement("award_stairs_goldblock", { + title = S("Filthy Rich"), + description = S("Craft 24 gold block stairs."), + icon = "default_gold_block.png", + trigger = { + type = "craft", + item= "stairs:stair_goldblock", + target = 24 + } + }) +end + +if minetest.get_modpath("dye") then + awards.register_achievement("awards_dye_red", { + title = S("Roses Are Red"), + description = S("Craft 400 red dyes."), + icon = "dye_red.png", + trigger = { + type = "craft", + item = "dye:red", + target = 400 + } + }) + + awards.register_achievement("awards_dye_yellow", { + title = S("Dandelions are Yellow"), + description = S("Craft 400 yellow dyes."), + icon = "dye_yellow.png", + trigger = { + type = "craft", + item = "dye:yellow", + target = 400 + } + }) + + awards.register_achievement("awards_dye_blue", { + title = S("Geraniums are Blue"), + description = S("Craft 400 blue dyes."), + icon = "dye_blue.png", + trigger = { + type = "craft", + item= "dye:blue", + target = 400 + } + }) + + awards.register_achievement("awards_dye_white", { + title = S("White Color Stock"), + description = S("Craft 100 white dyes."), + icon = "dye_white.png", + trigger = { + type = "craft", + item= "dye:white", + target = 100 + } + }) +end + +if minetest.get_modpath("flowers") then + awards.register_achievement("awards_brown_mushroom1", { + title = S("Tasty Mushrooms"), + description = S("Eat 3 brown mushrooms."), + icon = "flowers_mushroom_brown.png^awards_level1.png", + trigger = { + type = "eat", + item= "flowers:mushroom_brown", + target = 3, + } + }) + awards.register_achievement("awards_brown_mushroom2", { + title = S("Mushroom Lover"), + description = S("Eat 33 brown mushrooms."), + icon = "flowers_mushroom_brown.png^awards_level2.png", + trigger = { + type = "eat", + item= "flowers:mushroom_brown", + target = 33, + } + }) + awards.register_achievement("awards_brown_mushroom3", { + title = S("Underground Mushroom Farmer"), + description = S("Eat 333 brown mushrooms."), + icon = "flowers_mushroom_brown.png^awards_level3.png", + trigger = { + type = "eat", + item= "flowers:mushroom_brown", + target = 333, + } + }) +end + +-- This ensures the following code is executed after all items have been registered +minetest.after(0, function() + -- Check whether there is at least one node which can be built by the player + local building_is_possible = false + for _, def in pairs(minetest.registered_nodes) do + if (def.description and def.pointable ~= false and not def.groups.not_in_creative_inventory) then + building_is_possible = true + break + end + end + + -- The following awards require at least one node which can be built + if not building_is_possible then + return + end + + awards.register_achievement("awards_builder1", { + title = S("Builder"), + icon = "awards_house.png^awards_level1.png", + trigger = { + type = "place", + target = 1000, + }, + }) + awards.register_achievement("awards_builder2", { + title = S("Constructor"), + icon = "awards_house.png^awards_level2.png", + trigger = { + type = "place", + target = 5000, + }, + }) + awards.register_achievement("awards_builder3", { + title = S("Architect"), + icon = "awards_house.png^awards_level3.png", + trigger = { + type = "place", + target = 10000, + }, + }) + awards.register_achievement("awards_builder4", { + title = S("Master Architect"), + icon = "awards_house.png^awards_level4.png", + trigger = { + type = "place", + target = 25000, + }, + }) +end) diff --git a/mods/HUD/awards/locale/de.txt b/mods/HUD/awards/locale/de.txt new file mode 100644 index 000000000..6564eff6b --- /dev/null +++ b/mods/HUD/awards/locale/de.txt @@ -0,0 +1,198 @@ +A Cat in a Pop-Tart?! = Eine Katze im Pop-Tart?! +Aspiring Farmer = Aufstrebender Bauer +Backpacker = Rucksacktourist +Bankier = Bankier +Bricker = Ziegler +Build a Cave = Höhlenbauer +Castorama = Gießmeister +Craft 10 furnaces. = Fertigen Sie 10 Öfen. +Craft 10 mese lamps. = Fertigen Sie 10 Meselampen. +Craft 100 obsidian bricks. = Fertigen Sie 100 Obsidianziegel. +Craft 100 sandstone bricks. = Fertigen Sie 100 Sandsteinziegel. +Craft 100 sticks. = Fertigen Sie 100 Stöcke. +Craft 100 white dyes. = Fertigen Sie 100 weiße Farbstoffe. +Craft 14 vessels shelves. = Fertigen Sie 14 Gefäßregale. +Craft 15 chests. = Fertigen Sie 15 Truhen. +Craft 15 fancy beds. = Fertigen Sie 15 schicke Betten. +Craft 200 brick blocks. = Fertigen Sie 200 Ziegelblöcke. +Craft 200 stone bricks. = Fertigen Sie 200 Steinziegel. +Craft 24 gold block stairs. = Fertigen Sie 24 Goldblockstufen. +Craft 250 white wool. = Fertigen Sie 250 weiße Wolle. +Craft 3,200 stone bricks. = Fertigen Sie 3200 Steinziegel. +Craft 30 locked chests. = Fertigen Sie 30 abgeschlossene Truhen. +Craft 4 large bags. = Fertigen Sie 4 große Taschen. +Craft 400 blue dyes. = Fertigen Sie 400 blaue Farbstoffe. +Craft 400 desert stone bricks. = Fertigen Sie 400 Wüstensteinziegel. +Craft 400 red dyes. = Fertigen Sie 400 rote Farbstoffe. +Craft 400 yellow dyes. = Fertigen Sie 400 gelbe Farbstoffe. +Craft 7 bookshelves. = Fertigen Sie 7 Bücherregale. +Craft 8 times flint and steel. = Fertigen Sie 8 mal einen Feuerstein und Stahl an. +Craft 800 stone bricks. = Fertigen Sie 800 Steinziegel an. +Craft a diamond block. = Fertigen Sie einen Diamantblock an. +Crafter of Sticks = Stockmacher +Dandelions are Yellow = Löwenzahn ist gelb +Desert Discoverer = Wüstenerkunder +Desert Dweller = Wüstenbewohner +Dig 1,000 copper ores. = Bauen Sie 1000 Kupfererze ab. +Dig 1,000 jungle tree blocks. = Bauen Sie 1000 Dschungelbaumblöcke ab. +Dig 1,000 sand. = Bauen Sie 1000 Sand ab. +Dig 1,000 stone blocks. = Bauen Sie 1000 Steine ab. +Dig 1,296 tree blocks. = Bauen Sie 1296 Baumblöcke ab. +Dig 10,000 stone blocks. = Bauen Sie 10000 Steine ab. +Dig 100 jungle tree blocks. = Bauen Sie 100 Dschungelbaumblöcke ab. +Dig 100 stone blocks. = Bauen Sie 100 Steinblöcke ab. +Dig 216 tree blocks. = Bauen Sie 216 Baumblöcke ab. +Dig 36 tree blocks. = Bauen Sie 36 Baumblöcke ab. +Dig 6 tree blocks. = Bauen Sie 6 Baumblöcke ab. +Far Lands = Ferne Lande +Farming Skills Aquired = Landwirtschaft erlernt +Field Worker = Feldarbeiter +Filthy Rich = Stinkreich +Firefighter = Feuerwehr +First Day in the Woods = Erster Tag im Wald +First Gold Find = Erster Goldfund +First Mese Find = Erster Mesefund +Fortress = Burg +Geraniums are Blue = Geranien sind blau +Girl's Best Friend = Bester Freund der Mädchen +Glacier Discoverer = Gletschererkunder +Glasser = Glasmacher +Gold Rush = Goldrausch +Grasslands Discoverer = Prärieerkunder +Hardened Miner = Abhehärteter Bergarbeiter +Hardest Block on Earth = Härtester Block der Welt +Harvest 125 fully grown wheat plants. = Ernten Sie 125 voll ausgewachsene Getreidepflanzen. +Harvest 25 fully grown wheat plants. = Ernten Sie 25 voll ausgewachsene Getreidepflanzen. +Harvest 625 fully grown wheat plants. = Ernten Sie 625 voll ausgewachsene Getreidepflanzen. +Harvest a fully grown wheat plant. = Ernten Sie eine voll ausgewachsene Getreidepflanze. +Hotelier = Hotelier +House of Obsidian = Haus aus Obsidian +In the Dungeon = Im Verlies +Industrial Age = Industriezeitalter +Jungle Discoverer = Dschungelerkunder +Junglebaby = Dschungelbaby +Jungleman = Dschungelmann +Lava Miner = Lavagräber +Lava and Water = Lava und Wasser +Light It Up = Licht an! +Little Library = Kleine Bücherei +Long Ladder = Lange Leiter +Lumberjack = Holzfäller +Marchand De Sable = +Master Miner = Profibergarbeiter +Mese Mastery = Mesemeister +Mine 18 diamond ores. = Bauen Sie 18 Diamanterze ab. +Mine 45 gold ores. = Bauen Sie 18 Diamanterze ab. +Mine 50 obsidian. = Bauen Sie 50 Obsidian ab. +Mine a mese block. = Bauen Sie einen Meseblock ab. +Mine a mossy cobblestone. = Bauen Sie ein bemoostes Kopfsteinpflaster ab. +Mine a nyan cat. = Bauen Sie eine Nyan Cat ab. +Mine any block while being very close to lava. = Bauen Sie einen beliebigen Block ab, während Sie sehr nahe an der Lava stehen. +Mine some dry grass. = Bauen Sie etwas trockenes Gras ab. +Mine some grass. = Bauen Sie etwas Gras ab. +Mine your first cactus. = Bauen Sie Ihren ersten Kaktus ab. +Mine your first diamond ore. = Bauen Sie Ihr erstes Diamanterz ab. +Mine your first dry shrub. = Bauen Sie Ihren ersten vertrockneten Strauch ab. +Mine your first gold ore. = Bauen Sie Ihr erstes Golderz ab. +Mine your first ice. = Bauen Sie Ihr erstes Eis ab. +Mine your first jungle grass. = Bauen Sie Ihr erstes Dschungelgras ab. +Mine your first mese ore. = Bauen Sie Ihr erstes Meseerz ab. +Mine your first obsidian. = Bauen Sie Ihr erstes Obsidian ab. +Mini Miner = Berganfänger +Obsessed with Obsidian = Von Obsidian besessen +On The Way = Auf dem Weg +Outpost = Außenposten +Pharaoh = Pharao +Place 1,000 torches. = Platzieren Sie 1000 Fackeln. +Place 100 rails. = Platzieren Sie 100 Gleise. +Place 100 stone. = Platzieren Sie 100 Steine. +Place 100 torches. = Platzieren Sie 100 Fackeln. +Place 2 trap stones. = Platzieren Sie 2 Fallensteine. +Place 20 coal checkers. = Platzieren Sie 20 Kohlenschachbrettmuster. +Place 20 iron checkers. = Platzieren Sie 20 Eisenschachbrettmuster. +Place 40 steel ladders. = Platzieren Sie 40 Stahlleitern. +Place 400 wooden ladders. = Platzieren Sie 400 Holzleitern. +Place two snow blocks. = Platzieren Sie zwei Schneeblöcke. +Professional Lumberjack = Profiholzfäller +Put out 1000 fires. = Löschen Sie 1000 Flammen. +Pyromaniac = Pyromane +Really Well Lit = Sehr gute Beleuchtung +Roses Are Red = Rosen sind rot +Saint-Maclou = Saint-Maclou +Sam the Trapper = Sam der Fallensteller +Savannah Discoverer = Savannenerkunder +Semi-pro Lumberjack = Fortgeschrittener Holzfäller +Smelter = Schmelzer +Treasurer = Schatzmeister +Very Simple Snow Man = Sehr simpler Schneemann +Watchtower = Wachturm +Well Lit = Gut ausgeleuchtet +Wheat Magnate = Getreidemagnat +White Color Stock = Weißer Farbstoffvorrat +Wool Over Your Eyes = Wollige Augen +Wow, I am Diamonds! = Wow, ich bin Diamanten! +You’re a copper = Du Kupfer! +%s: %s = %s: %s +%s (got) = %s (erhalten) +%s’s awards: = %ss Auszeichnungen: +(Secret Award) = (Geheime Auszeichnung) +Achievement Unlocked! = Auszeichnung erhalten! +Achievement Unlocked: = Auszeichnung erhalten: +Achievement Unlocked: %s = Auszeichnung erhalten: %s +Secret Achievement Unlocked! = Geheime Auszeichnung erhalten! +Secret Achievement Unlocked: = Geheime Auszeichnung erhalten: +Secret Achievement Unlocked: %s = Geheime Auszeichnung erhalten: %s +Unlock this award to find out what it is. = Verdienen Sie sich diese Auszeichnung, um herauszufinden, was sie ist. +You have not unlocked any awards. = Sie haben noch keine Auszeichnungen. +You've disabled awards. Type /awards enable to reenable. = Sie haben die Auszeichnungen deaktiviert. Geben Sie »/awards enable« ein, um sie wieder zu aktivieren. + = + = +Achievement not found. = Auszeichnung nicht gefunden. +All your awards and statistics have been cleared. You can now start again. = All Ihre Auszeichnugen und Statistiken wurden zurückgesetzt. Sie können nun von vorne anfangen. +Get the achievements statistics for the given player or yourself = Die Statistik der Auszeichnungen eines Spielers zeigen +List awards in chat (deprecated) = Auszeichnungen im Chat anzeigen (veraltet) +Show, clear, disable or enable your achievements = Zeigen, löschen, deaktivieren oder aktivieren Sie Ihre Auszeichnungen +You have disabled your achievements. = Sie haben Ihre Auszeichnungen deaktiviert. +You have enabled your achievements. = Sie haben Ihre Auszeichnungen aktiviert. +[c|clear|disable|enable] = [c|clear|disable|enable] +Awards = Auszeichnungen +%d/%d crafted = %d/%d gefertigt +%d/%d deaths = %d/%d Tode +%d/%d dug = %d/%d abgebaut +%d/%d game joins = %d/%d Spielen beigetreten +%d/%d lines of chat = %d/%d Chatzeilen +%d/%d placed = %d/%d platziert +Die %d times. = Sterben Sie %d mal. +Die. = Sterben Sie. +Craft: %d×%s = Fertigen Sie an: %d×%s +Craft: %s = Fertigen Sie an: %s +Mine a block: %s = Bauen Sie einen Block ab: %s +Mine blocks: %d×%s = Bauen Sie Blöcke ab: %d×%s +Place a block: %s = Platzieren Sie einen Block: %s +Place blocks: %d×%s = Platzieren Sie Blöcke: %d×%s +Join the game. = Treten Sie dem Spiel bei. +Join the game %d times. = Treten Sie dem Spiel %d mal bei. +Show details of an achievement = Details einer Auszeichnung anzeigen +OK = OK +Error: No awards available. = Fehler: Keine Auszeichnungen vorhanden. +Eat: %d×%s = Essen Sie: %d×%s +Eat: %s = Essen Sie: %s +%d/%d eaten = %d/%d gegessen +Yummy! = Lecker! +Baker = Bäcker +Eat 10 loaves of bread. = Essen Sie 10 Brote. +Eat 80 apples. = Essen Sie 80 Äpfel. +Tasty Mushrooms = Leckere Pilze +Mushroom Lover = Pilzfreund +Underground Mushroom Farmer = Unterirdischer Pilzbauer +Eat 3 brown mushrooms. = Essen Sie 3 braune Pilze. +Eat 33 brown mushrooms. = Essen Sie 33 braune Pilze. +Eat 333 brown mushrooms. = Essen Sie 333 braune Pilze. +Builder = Bauarbeiter +Constructor = Konstrukteur +Architect = Architekt +Master Architect = Meisterarchitekt +Place %d block(s). = Platzieren Sie %d Blöcke. +Dig %d block(s). = Bauen Sie %d Blöcke ab. +Eat %d item(s). = Essen Sie %d Dinge. +Craft %d item(s). = Fertigen Sie %d Gegenstände. diff --git a/mods/HUD/awards/locale/template.txt b/mods/HUD/awards/locale/template.txt new file mode 100644 index 000000000..454f153a6 --- /dev/null +++ b/mods/HUD/awards/locale/template.txt @@ -0,0 +1,196 @@ +%d/%d chat messages = +%d/%d crafted = +%d/%d deaths = +%d/%d dug = +%d/%d game joins = +%d/%d placed = +%s (got) = +%s: %s = +%s’s awards: = +(Secret Award) = + = + = +A Cat in a Pop-Tart?! = +Achievement Unlocked! = +Achievement Unlocked: = +Achievement Unlocked: %s = +Achievement not found. = +All your awards and statistics have been cleared. You can now start again. = +Aspiring Farmer = +Awards = +Backpacker = +Bankier = +Bricker = +Build a Cave = +Castorama = +Craft 10 furnaces. = +Craft 10 mese lamps. = +Craft 100 obsidian bricks. = +Craft 100 sandstone bricks. = +Craft 100 sticks. = +Craft 100 white dyes. = +Craft 14 vessels shelves. = +Craft 15 chests. = +Craft 15 fancy beds. = +Craft 200 brick blocks. = +Craft 200 stone bricks. = +Craft 24 gold block stairs. = +Craft 250 white wool. = +Craft 3,200 stone bricks. = +Craft 30 locked chests. = +Craft 4 large bags. = +Craft 400 blue dyes. = +Craft 400 desert stone bricks. = +Craft 400 red dyes. = +Craft 400 yellow dyes. = +Craft 7 bookshelves. = +Craft 8 times flint and steel. = +Craft 800 stone bricks. = +Craft a diamond block. = +Craft: %d×%s = +Craft: %s = +Crafter of Sticks = +Dandelions are Yellow = +Desert Discoverer = +Desert Dweller = +Die %d times. = +Die. = +Dig 1,000 copper ores. = +Dig 1,000 jungle tree blocks. = +Dig 1,000 sand. = +Dig 1,000 stone blocks. = +Dig 1,296 tree blocks. = +Dig 10,000 stone blocks. = +Dig 100 jungle tree blocks. = +Dig 100 stone blocks. = +Dig 216 tree blocks. = +Dig 36 tree blocks. = +Dig 6 tree blocks. = +Far Lands = +Farming Skills Aquired = +Field Worker = +Filthy Rich = +Firefighter = +First Day in the Woods = +First Gold Find = +First Mese Find = +Fortress = +Geraniums are Blue = +Get the achievements statistics for the given player or yourself = +Girl's Best Friend = +Glacier Discoverer = +Glasser = +Gold Rush = +Grasslands Discoverer = +Hardened Miner = +Hardest Block on Earth = +Harvest 125 fully grown wheat plants. = +Harvest 25 fully grown wheat plants. = +Harvest 625 fully grown wheat plants. = +Harvest a fully grown wheat plant. = +Hotelier = +House of Obsidian = +In the Dungeon = +Industrial Age = +Join the game %d times. = +Join the game. = +Jungle Discoverer = +Junglebaby = +Jungleman = +Lava Miner = +Lava and Water = +Light It Up = +List awards in chat (deprecated) = +Little Library = +Long Ladder = +Lumberjack = +Marchand De Sable = +Master Miner = +Mese Mastery = +Mine 18 diamond ores. = +Mine 45 gold ores. = +Mine 50 obsidian. = +Mine a block: %s = +Mine a mese block. = +Mine a mossy cobblestone. = +Mine a nyan cat. = +Mine any block while being very close to lava. = +Mine blocks: %d×%s = +Mine some dry grass. = +Mine some grass. = +Mine your first cactus. = +Mine your first diamond ore. = +Mine your first dry shrub. = +Mine your first gold ore. = +Mine your first ice. = +Mine your first jungle grass. = +Mine your first mese ore. = +Mine your first obsidian. = +Mini Miner = +Obsessed with Obsidian = +On The Way = +Outpost = +Pharaoh = +Place 1,000 torches. = +Place 100 rails. = +Place 100 stone. = +Place 100 torches. = +Place 2 trap stones. = +Place 20 coal checkers. = +Place 20 iron checkers. = +Place 40 steel ladders. = +Place 400 wooden ladders. = +Place a block: %s = +Place blocks: %d×%s = +Place two snow blocks. = +Professional Lumberjack = +Put out 1000 fires. = +Pyromaniac = +Really Well Lit = +Roses Are Red = +Saint-Maclou = +Sam the Trapper = +Savannah Discoverer = +Secret Achievement Unlocked! = +Secret Achievement Unlocked: = +Secret Achievement Unlocked: %s = +Semi-pro Lumberjack = +Show details of an achievement = +Show, clear, disable or enable your achievements = +Smelter = +Treasurer = +Unlock this award to find out what it is. = +Very Simple Snow Man = +Watchtower = +Well Lit = +Wheat Magnate = +White Color Stock = +Wool Over Your Eyes = +Wow, I am Diamonds! = +Write %d chat messages. = +Write something in chat. = +You have disabled your achievements. = +You have enabled your achievements. = +You have not unlocked any awards. = +You've disabled awards. Type /awards enable to reenable. = +You’re a copper = +[c|clear|disable|enable] = +OK = +Error: No awards available. = +Eat: %d×%s = +Eat: %s = +%d/%d eaten = +Place %d block(s). = +Dig %d block(s). = +Eat %d item(s). = +Craft %d item(s). = +Yummy! = +Baker = +Eat 10 loaves of bread. = +Eat 80 apples. = +Tasty Mushrooms = +Mushroom Lover = +Underground Mushroom Farmer = +Eat 3 brown mushrooms. = +Eat 33 brown mushrooms. = +Eat 333 brown mushrooms. = diff --git a/mods/HUD/awards/mod.conf b/mods/HUD/awards/mod.conf new file mode 100644 index 000000000..24042f267 --- /dev/null +++ b/mods/HUD/awards/mod.conf @@ -0,0 +1,7 @@ +name = awards +title = Achievements +author = rubenwardy +description = Adds achievements to Minetest, and an API to register new ones. +license = LGPL 2.1 or later +forum = https://forum.minetest.net/viewtopic.php?t=4870 +version = 2.3.0 diff --git a/mods/HUD/awards/readme.md b/mods/HUD/awards/readme.md new file mode 100644 index 000000000..83235130a --- /dev/null +++ b/mods/HUD/awards/readme.md @@ -0,0 +1,162 @@ +# Awards + +by Andrew "Rubenwardy" Ward, LGPL 2.1 or later. + +This mod adds achievements to Minetest. + +Majority of awards are back ported from Calinou's +old fork in Carbone, under same license. + + +# Basic API + +* awards.register_achievement(name, def) + * name + * desciption + * sound [optional] - set a custom sound (SimpleSoundSpec) or `false` to play no sound. + If not specified, a default sound is played + * image [optional] - texture name, eg: award_one.png + * background [optional] - texture name, eg: award_one.png + * trigger [optional] [table] + * type - "dig", "place", "craft", "death", "chat", "join" or "eat" + * dig type: Dig a node. + * node: the dug node type. If nil, all dug nodes are counted + * place type: Place a node. + * node: the placed node type. If nil, all placed nodes are counted + * eat type: Eat an item. + * item: the eaten item type. If nil, all eaten items are counted + * craft type: Craft something. + * item: the crafted item type. If nil, all crafted items are counted + * death type: Die. + * chat type: Write a chat message. + * join type: Join the server. + * (for all types) target - how many times to dig/place/craft/etc. + * See Triggers + * secret [optional] - if true, then player needs to unlock to find out what it is. + * on_unlock [optional] - func(name, def) + * name is player name + * return true to cancel register_on_unlock callbacks and HUD +* awards.register_trigger(name, func(awardname, def)) + * Note: awards.on[name] is automatically created for triggers +* awards.run_trigger_callbacks(player, data, trigger, table_func(entry)) + * Goes through and checks all triggers registered to a trigger type, + unlocking the award if conditions are met. + * data is the player's award data, ie: awards.players[player_name] + * trigger is the name of the trigger type. Ie: awards.on[trigger] + * table_func is called if the trigger is a table - simply return an + award name to unlock it + * See triggers.lua for examples +* awards.increment_item_counter(data, field, itemname) + * add to an item's statistic count + * for example, (data, "place", "default:stone") will add 1 to the number of + times default:stone has been placed. + * data is the player's award data, ie: awards.players[player_name] + * returns true on success, false on failure (eg: cannot get modname and item from itemname) +* awards.register_on_unlock(func(name, def)) + * name is the player name + * def is the award def. + * return true to cancel HUD +* awards.unlock(name, award) + * gives an award to a player + * name is the player name + +# Included in the Mod + +The API, above, allows you to register awards +and triggers (things that look for events and unlock awards, they need +to be registered in order to get details from award_def.trigger). + +However, all awards and triggers are separate from the API. +They can be found in init.lua and triggers.lua + +## Triggers + +Callbacks (register a function to be run) + +### dig + + trigger = { + type = "dig", + node = "default:dirt", + target = 50 + } + +### place + + trigger = { + type = "place", + node = "default:dirt", + target = 50 + } + +### death + + trigger = { + type = "death", + target = 5 + } + +### chat + + trigger = { + type = "chat", + target = 100 + } + +### join + + trigger = { + type = "join", + target = 100 + } + +### eat + + trigger = { + type = "eat", + item = "default:apple", + target = 100 + } + +## Callbacks relating to triggers + +* awards.register_on_dig(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_place(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_eat(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_death(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_chat(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_join(func(player, data) + * data is player data (see below) + * return award name or null + + +# Player Data + +A list of data referenced/hashed by the player's name. +* player name + * name [string] + * count [table] - dig counter + * modname [table] + * itemname [int] + * place [table] - place counter + * modname [table] + * itemname [int] + * craft [table] - craft counter + * modname [table] + * itemname [int] + * eat [table] - eat counter + * modname [table] + * itemname [int] + * deaths + * chats + * joins diff --git a/mods/HUD/awards/screenshot.png b/mods/HUD/awards/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9e19e5672d4c1a2380cec52c6a1002f648987c GIT binary patch literal 63807 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/sfinv.lua b/mods/HUD/awards/sfinv.lua new file mode 100644 index 000000000..de85998c3 --- /dev/null +++ b/mods/HUD/awards/sfinv.lua @@ -0,0 +1,30 @@ +if minetest.get_modpath("sfinv") then + local S + if minetest.get_modpath("intllib") then + S = intllib.Getter() + else + S = function ( s ) return s end + end + + sfinv.register_page("awards:awards", { + title = S("Awards"), + on_enter = function(self, player, context) + context.awards_idx = 1 + end, + get = function(self, player, context) + local name = player:get_player_name() + return sfinv.make_formspec(player, context, + awards.getFormspec(name, name, context.awards_idx or 1), + false, "size[11,5]") + end, + on_player_receive_fields = function(self, player, context, fields) + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + context.awards_idx = event.index + sfinv.set_player_inventory_formspec(player, context) + end + end + end + }) +end diff --git a/mods/HUD/awards/sounds/awards_got_generic.ogg b/mods/HUD/awards/sounds/awards_got_generic.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3ae982b3a8859006d4e76463cdef7fe8c527344c GIT binary patch literal 76652 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

X*$oVbdn~f!1haka=R8QA{kGN!k~X0B|Us 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

ytqO;SrqdaS;SzvnvMImfsI2!5t5 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_bg_default.png b/mods/HUD/awards/textures/awards_bg_default.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f57d322068eb3c5871686642bf128fa74e6dee GIT binary patch literal 31407 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level1.png b/mods/HUD/awards/textures/awards_level1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f628f3386cf0e01df5cf772be34d4f5f565f142 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4ER6i?vsOkA>EyloG+#Mduh{w6 r5pP0LLPElhijPXnM!wgTe~DWM4fciuR0 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level2.png b/mods/HUD/awards/textures/awards_level2.png new file mode 100644 index 0000000000000000000000000000000000000000..9f9564facde18e565f69ab985db231c79a58d3f5 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4vf&}Yf1_L9R-~F0dM?IPtd3bnuiYM@RCN9}7u2I6cc;38w^(D;uvAbNh nF#3Qbqs5#|4!jV2#>8NwCbis7NA?5*0|SGntDnm{r-UW|jU_VI literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level3.png b/mods/HUD/awards/textures/awards_level3.png new file mode 100644 index 0000000000000000000000000000000000000000..8931454ad3ac6b46e5a57e7307d928dae8e3775a GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4vf&}Yf1_L9R-~F0dM?IPtd3bnuiYM@RCaRoet*WZ}f01`j$xES&YzBq~ o1_pDuDvvby^zUjor^mpsbe;llN{9Gr1_lNOPgg&ebxsLQ0Bia*egFUf literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level4.png b/mods/HUD/awards/textures/awards_level4.png new file mode 100644 index 0000000000000000000000000000000000000000..68e393f045a6405de145f1d883fe8dc699a4aea5 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4jxHe_I6VDNPHb6Mw<&;$TQG%vgW literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level5.png b/mods/HUD/awards/textures/awards_level5.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a05bcc9aee4a0f0ba6082b282a437cc14ad7e1 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4Z1dv-Ov(_>)R ZzfN!VLcLXg7#J8BJYD@<);T3K0RX_&FrWYc literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level6.png b/mods/HUD/awards/textures/awards_level6.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6482fdf9aa0d5a2da6885a5cff308d4108db8d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4vg2bnWK!5-D_D1s?8yg>9TI%g0ec;G}0|!3L{4Kz2k44ofy`glX=O&z`&N| z?e4Ewh30tT;MzWnR{%-F!dAZAxdX9n{O2?+@aJ=q-x8+`hAC0t=$tS7-B&cLuK W$no(}`6D1(7(8A5T-G@yGywoCS24=~ literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_mese.png b/mods/HUD/awards/textures/awards_mese.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc800ec3055f5ff9f7a1fe8fbcf8821bcc09107 GIT binary patch literal 564 zcmV-40?Yl0P)1z&mS8tXX(;uRq9FJX)-rhzQA$gyk*Wospb(py8q<_OpCqHG zPodSK6$KL&|D*)6?(X*%6gx*iXy));Yd+r$lSWXZ=fYzFN!%!$FR+cVj#oDG} z{f-7;Yum6^)y`vM3<9t(UP+2U!d%I+e;}wVyBFIX!}+r*(Q>)$07w996VybSoSK?+ z9=CQ4)2HBQnCCZYCOb<2&-1YsdY=W#AGtI7iX;Jn;N@!pz`b?t0z^^7Xat@I!So~# zTX_c|JfsId1|y;<2j1F#nu~a|k|K8Yp401%h$0C>qai{T6F;!i>S5! z@3s97nu&P7ZnEOPqTVpe&=6ZRHyXC&`rkx0000dNTcAS_K{^%OI!HhV6T}W(yE+uHG~f^_WD}f< zTNdro!4#eS3&lc6z(Ju7axO`m7NiF*7tVd}b3X358DPd5mIrVyyrqJYQNVX5sb@w{ zCmVNkhs_1ivddywi2`70om7#4yTc|WqoDK(AW>ewABh8RUM>@0OY7h}lSEeec%;#2 zL|LmV!S41ZuHRDUjnZ{`31Sk-^;@`pi|$>YAdJ)!SiD!+w5|gLVT4sHviI|WS+y~% zHbEFI^eR6Ou+C2j!iWRykV?+R9q0;bVyBl7Pbml^%&JW#S5v?5;8^!o57PYL$g}ProiY7_Cr@Af3UWb8DsR*i`_f4i6Jfl|0&CPf x+7It43-M=w*?2tW?SA_2pJ?>-KfpTQ`4^IxiicdvO9cP`002ovPDHLkV1gJLxC8(I literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_novicebuilder.png b/mods/HUD/awards/textures/awards_novicebuilder.png new file mode 100644 index 0000000000000000000000000000000000000000..f24d843ca45900fa57080e854df0b65a0a702e9e GIT binary patch literal 374 zcmV-+0g3*JP)YWU|=ut^mS!_z`-cYsy+96?5(ej@)Wnk16ovB4k_-iR wPv3y>Mm}){1_mBa7sn8e>&XcVco-NM92gkW#FIBLFfcH9y85}Sb4q9e0Hi@7ssI20 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_progress_green.png b/mods/HUD/awards/textures/awards_progress_green.png new file mode 100644 index 0000000000000000000000000000000000000000..54b4e5d5a49d267f8dc5987bde274c351303bc81 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU=ZM7Vqjp1_}lb=fq{Xuz$3Dlfq`2Xgc%uT z&5>YWU|=ut^mS!_z`-bFE&s=bBb0%GL9)a(qQp5rH#aq}gu%HeHL)Z$MWH;iBtya7 z(>EZzkx!g~fkE5T#W95Ay6?%2f(!~ghaKj&r(EH2mvNr$baeiLz8UIOEy`6-BjfH1 anjiYP&Q|W&b73_G5b$*Mb6Mw<&;$VPQZUZ| literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_template.png b/mods/HUD/awards/textures/awards_template.png new file mode 100644 index 0000000000000000000000000000000000000000..b2904548033fb064e051011d057dc569dde3315c GIT binary patch literal 322 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_unknown.png b/mods/HUD/awards/textures/awards_unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..b2904548033fb064e051011d057dc569dde3315c GIT binary patch literal 322 zcmV-I0lof-P) entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "count") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_placenode(function(pos, node, digger) + if not digger or not pos or not node or not digger:get_player_name() or digger:get_player_name()=="" then + return + end + local data = awards.players[digger:get_player_name()] + if not awards.increment_item_counter(data, "place", node.name) then + return + end + + awards.run_trigger_callbacks(digger, data, "place", function(entry) + if entry.target then + if entry.node then + local tnodedug = string.split(entry.node, ":") + local tmod = tnodedug[1] + local titem = tnodedug[2] + if not tmod or not titem or not data.place[tmod] or not data.place[tmod][titem] then + -- table running failed! + elseif data.place[tmod][titem] > entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "place") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_item_eat(function(hp_change, replace_with_item, itemstack, user, pointed_thing) + if not user or not itemstack or not user:get_player_name() or user:get_player_name()=="" then + return + end + local data = awards.players[user:get_player_name()] + if not awards.increment_item_counter(data, "eat", itemstack:get_name()) then + return + end + awards.run_trigger_callbacks(user, data, "eat", function(entry) + if entry.target then + if entry.item then + local titemstring = string.split(entry.item, ":") + local tmod = titemstring[1] + local titem = titemstring[2] + if not tmod or not titem or not data.eat[tmod] or not data.eat[tmod][titem] then + -- table running failed! + elseif data.eat[tmod][titem] > entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "eat") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if not player or not itemstack then + return + end + + local data = awards.players[player:get_player_name()] + if not awards.increment_item_counter(data, "craft", itemstack:get_name(), itemstack:get_count()) then + return + end + + awards.run_trigger_callbacks(player, data, "craft", function(entry) + if entry.target then + if entry.item then + local titemcrafted = string.split(entry.item, ":") + local tmod = titemcrafted[1] + local titem = titemcrafted[2] + if not tmod or not titem or not data.craft[tmod] or not data.craft[tmod][titem] then + -- table running failed! + elseif data.craft[tmod][titem] > entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "craft") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_dieplayer(function(player) + -- Run checks + local name = player:get_player_name() + if not player or not name or name=="" then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + + -- Increment counter + data.deaths = data.deaths + 1 + + awards.run_trigger_callbacks(player, data, "death", function(entry) + if entry.target and entry.award and data.deaths and + data.deaths >= entry.target then + return entry.award + end + end) +end) + +minetest.register_on_joinplayer(function(player) + -- Run checks + local name = player:get_player_name() + if not player or not name or name=="" then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + + -- Increment counter + data.joins = data.joins + 1 + + awards.run_trigger_callbacks(player, data, "join", function(entry) + if entry.target and entry.award and data.joins and + data.joins >= entry.target then + return entry.award + end + end) +end) + +minetest.register_on_chat_message(function(name, message) + -- Run checks + local idx = string.find(message,"/") + if not name or (idx ~= nil and idx <= 1) then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + local player = minetest.get_player_by_name(name) + + -- Increment counter + data.chats = data.chats + 1 + + awards.run_trigger_callbacks(player, data, "chat", function(entry) + if entry.target and entry.award and data.chats and + data.chats >= entry.target then + return entry.award + end + end) +end) diff --git a/mods/HUD/awards/unified_inventory.lua b/mods/HUD/awards/unified_inventory.lua new file mode 100644 index 000000000..a4bb02dc3 --- /dev/null +++ b/mods/HUD/awards/unified_inventory.lua @@ -0,0 +1,18 @@ +if minetest.get_modpath("unified_inventory") ~= nil then + local S + if minetest.get_modpath("intllib") then + S = intllib.Getter() + else + S = function ( s ) return s end + end + + unified_inventory.register_button("awards", { + type = "image", + image = "awards_ui_icon.png", + tooltip = S("Awards"), + action = function(player) + local name = player:get_player_name() + awards.show_to(name, name, nil, false) + end, + }) +end