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 00000000..4362b491 --- /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 00000000..f53ee0d7 --- /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 00000000..cd499ab4 --- /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 00000000..c386c19c --- /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 00000000..c0de3afd --- /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 00000000..f2b9944c --- /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 00000000..e841603d --- /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 00000000..6564eff6 --- /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 00000000..454f153a --- /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 00000000..24042f26 --- /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 00000000..83235130 --- /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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

Q-WOehbNkNz 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 NJYD@<);T3K0RVYa`Go)g literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/sfinv.lua b/mods/HUD/awards/sfinv.lua new file mode 100644 index 00000000..de85998c --- /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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

uLgnu( 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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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 R^9&3O44$rjF6*2UngAR*F#iAm literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_firefighter.png b/mods/HUD/awards/textures/awards_firefighter.png new file mode 100644 index 0000000000000000000000000000000000000000..7c2236bb43165f21b39aa3aaa8f7a76491d95f20 GIT binary patch literal 486 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e47|qRdov}<9J60veqC0ALsa6Sz!VQh zXWhT-j@f1{Lf_c8xK7}0octup*@E@&0$nMUTT)Vs79QYk7HD6gc*@1#=xZD4KBqT5 z!t+@7-(W+^i^jUhMrCOO>#Q*zUsM~pSgZix=`3XL6KYn}M`^ET$$U)Da5q&p2+h*t( zhs3|X(RlpjhrD;QK7Q7An&x_9(~j_M|MfS9o_)pk>kjLb(|g(uSJc{R9aaC%5W;wr z-@tdD5a*tQ3cZ(|A6%?uSvB7*_OigHo+V#OuQRqi{H18g+_FL3ck}nIJFe_&JuhW? z)!Bb-;`_W$k8#zh46W7x5w>G(jjZ1V&wQ6sQ?QXcwaRO2O3C$uCAqylDurp0F=1L~ ho=vx6a#?@>r?fb8Lh|#h8aYr1d%F6$taD0e0sw>(!omOm literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_house.png b/mods/HUD/awards/textures/awards_house.png new file mode 100644 index 0000000000000000000000000000000000000000..e23e30d4ad715f4f651365f8627796f5ad4651e9 GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4+=20xv5*E29Ma29w(7Bet#3xhBt!>l<_p(gsepZ?VhwVFfj0B zhD4M&=jZ08=9Pf;?^(BLCIbWGc25__5R21GC-2S0a!6a?j zr{7MGB0}|I{yfN(y1#73y^<*lOssZ1VvjRvPg}<5QKQmzA=qq7u=fO>W1oMsJos?^ zxTVQ)?gz{f&lxrxe9SDd)I)f7=Cy^5X)8aeE3_Rr-Ro>)y+76UWVP+jrP}NpHI8k4 z&Cjr-;2pd< zZ^0|C8AKHpRp@W6%B^%*yWg*8;se>M|E!kIi`(OW)4-rXfMeoP=O3ol-n%ZixjdY6 zw7T0{ckRx~oJo3jI~mH=;tlG)b0&#Qy_(&j$WV~~NYnh7yso^{z0P7^yM0y62cFsP z4xe|Vd+~9Dr$TS9)vOD>zW(v48yqejcNz4h^cO5k44ofy`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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^PXNr}OT51_lPs z0*}aI1_o|n5N2eUHAjMhfq}im)7O>#E|UapDvMY6FTA=)lvP;t z{}Pr>@811LJiKnPYs)?V!+VXN&#QhX$r#}$VApVMR@LDE4UMpAdg(`REld2{$Ci+N zdqddObIHj(OdIs$Ji8nZ#hlz!udqUAxA<+@!#_7`UM$-AhQWg&Tlk90tU0r0mB?)` zd=2>di-VEnIZxpMV&w5IJr}3{Y6~@K~PqP^h>@9uEtDWEofZ4@Ha*(E=$^qF`5z|ba=YzzR7YED-&!Hr<+`KbT-r|eT<4W47P2li zKVIxq`X}l5z|fev{r%oGpa1Mp>I>GNGqXGM-3*xp7ftxqp86#ENMc=lEX#s`fR=~; zOIqH$+x^vVvXIN?+;DB#iTrz-)7I(ASl4G?H?Y_v+N6`=vT2*FBGq4O#x>=mp>7 PpxF0x^>bP0l+XkKpwsV5 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_miniminer.png b/mods/HUD/awards/textures/awards_miniminer.png new file mode 100644 index 0000000000000000000000000000000000000000..45c72384e995a0b4b540f3996d8cfa67fa14a977 GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^I@&%o!LIx2{;q zz`(#+;1OBOz`!jG!i)^F=14FwFtC?+`ns~;Ws+dfWKs_-Z)0F!4Dobv46!)9bh54Y z;Q*1g`E?x~voFa%cyVpv*60P!0*+RqcdR@d*oBYq#qPEe*=X`WKr2OfPFJ+p+e-&U z=KkeA>f~|2aUoxkp66__CG2|Q=W5><+r8To~2Eb0uPj{txR|GSC=j? zX+O()antFf$WEq&%()>G8+IR7Q(e5^3ztG*+f5H%4wX zTy5qkq5DP4o`1tRf6hZ4%x@=nojWG`f-5U&`E&t)O%CNVt9(_%gZF*&6udw4LG8Dl zwfnpnj1K77d1N*}<|`@N_8{VW82_a|4^C`;CqLKlZlZ^OWHM`b$eP12fBTBpOewQdmgE`FSbhK4f{l!7IgA=- zPapX3#aONPIz!6r#91ON5)x}t1=|ihnHbwG#CBrV{JOM+8y`g$X+$z#RrQ~@^3dUi z*2cz0#{(U`jg5_s4_|V3EZS)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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>lEak-ar)?F#dR$P zBChXwnpnD%xH(k#8d;i?Sv5qw9Tgo+GI#M$J1l3Aexzl-ef zKj{K{>2#Ina~e+H;bM4xhyQt{ns4wSgCpN-A6YD0mwm0Y_T}w2@n)5Bdv|v&y79W& z{KTf7ZMl)tSd)3KMX3n7UbJl9|K_)xCyQgjxd-OQ3sue+t6VI-YucPB;W3HDGbFUt z@YyWK$Y~ynGNsmR&HuTu@p+|3(yV27|6Jku_juvKZ~xeL_T~Lpba1BR9lO8h_+x5P WlJ0HcQ)FOZVDNPHb6Mw<&;$T?BYy(` literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_ui_bags.png b/mods/HUD/awards/textures/awards_ui_bags.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6eb57117a6878bed37feca70f9e3cbcad3f390 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N| z?e4Vz ziKmNWh{frplh0-g2Z|i6*PlG&ywS|CKM^x-1Tari&N6+LSk7Zr6kIXnXyV7{_^F<3wd|oZfFXx|A{ND0=Y+c~`D?$g=+ln>_XP^&i(>3Tg4*pZsH;i&uO5 zRM$UY#Ys&!_BRyC#J#OKHkt3#L=DZrzUE1jo(2^^Q}3v{OA7dy4}5)gaz>=XA=8dDh<7gJ*nX*}PIEzq&STjg1t?;ufZf0CIb8*o}8>s?! zWd^z4lMJ)%>s|BICpqqndVDsn-M;bs9?NE7wuyP~tM_t9I?VYt=RZ@1#Do8Q$A2d= QFfcH9y85}Sb4q9e0KW4LHUIzs literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_ui_icon.png b/mods/HUD/awards/textures/awards_ui_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..239ad71ec9d2c24083386d042e3d851deba4a531 GIT binary patch literal 3514 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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 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>lEak-ar)?F#dR$P zBChXwnpnD%xH(k#8d;i?Sv5qw9Tgo+GI#M$J1l3Aexzl-ef zKj{K{>2#Ina~e+H;bM4xhyQt{ns4wSgCpN-A6YD0mwm0Y_T}w2@n)5Bdv|v&y79W& z{KTf7ZMl)tSd)3KMX3n7UbJl9|K_)xCyQgjxd-OQ3sue+t6VI-YucPB;W3HDGbFUt z@YyWK$Y~ynGNsmR&HuTu@p+|3(yV27|6Jku_juvKZ~xeL_T~Lpba1BR9lO8h_+x5P WlJ0HcQ)FOZVDNPHb6Mw<&;$T?BYy(` literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/triggers.lua b/mods/HUD/awards/triggers.lua new file mode 100644 index 00000000..88a952fd --- /dev/null +++ b/mods/HUD/awards/triggers.lua @@ -0,0 +1,416 @@ +-- 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 + +awards.register_trigger("dig", function(def) + local tmp = { + award = def.name, + node = def.trigger.node, + target = def.trigger.target, + } + table.insert(awards.on.dig, tmp) + def.getProgress = function(self, data) + local itemcount + if tmp.node then + itemcount = awards.get_item_count(data, "count", tmp.node) or 0 + else + itemcount = awards.get_total_item_count(data, "count") + end + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d dug"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.node then + local nname = minetest.registered_nodes[self.trigger.node].description + if nname == nil then + nname = self.trigger.node + end + if self.trigger.target ~= 1 then + return string.format(S("Mine blocks: %d×%s"), self.trigger.target, nname) + else + return string.format(S("Mine a block: %s"), nname) + end + else + return string.format(S("Mine %d block(s)."), self.trigger.target) + end + end +end) + +awards.register_trigger("place", function(def) + local tmp = { + award = def.name, + node = def.trigger.node, + target = def.trigger.target, + } + table.insert(awards.on.place, tmp) + def.getProgress = function(self, data) + local itemcount + if tmp.node then + itemcount = awards.get_item_count(data, "place", tmp.node) or 0 + else + itemcount = awards.get_total_item_count(data, "place") + end + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d placed"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.node then + local nname = minetest.registered_nodes[self.trigger.node].description + if nname == nil then + nname = self.trigger.node + end + if self.trigger.target ~= 1 then + return string.format(S("Place blocks: %d×%s"), self.trigger.target, nname) + else + return string.format(S("Place a block: %s"), nname) + end + else + return string.format(S("Place %d block(s)."), self.trigger.target) + end + end +end) + +awards.register_trigger("eat", function(def) + local tmp = { + award = def.name, + item = def.trigger.item, + target = def.trigger.target, + } + table.insert(awards.on.eat, tmp) + def.getProgress = function(self, data) + local itemcount + if tmp.item then + itemcount = awards.get_item_count(data, "eat", tmp.item) or 0 + else + itemcount = awards.get_total_item_count(data, "eat") + end + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d eaten"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.item then + local iname = minetest.registered_items[self.trigger.item].description + if iname == nil then + iname = self.trigger.iode + end + if self.trigger.target ~= 1 then + return string.format(S("Eat: %d×%s"), self.trigger.target, iname) + else + return string.format(S("Eat: %s"), iname) + end + else + return string.format(S("Eat %d item(s)."), self.trigger.target) + end + end +end) + +awards.register_trigger("death", function(def) + local tmp = { + award = def.name, + target = def.trigger.target, + } + table.insert(awards.on.death, tmp) + def.getProgress = function(self, data) + local itemcount = data.deaths or 0 + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d deaths"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.target ~= 1 then + return string.format(S("Die %d times."), self.trigger.target) + else + return S("Die.") + end + end +end) + +awards.register_trigger("chat", function(def) + local tmp = { + award = def.name, + target = def.trigger.target, + } + table.insert(awards.on.chat, tmp) + def.getProgress = function(self, data) + local itemcount = data.chats or 0 + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d chat messages"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.target ~= 1 then + return string.format(S("Write %d chat messages."), self.trigger.target) + else + return S("Write something in chat.") + end + end +end) + +awards.register_trigger("join", function(def) + local tmp = { + award = def.name, + target = def.trigger.target, + } + table.insert(awards.on.join, tmp) + def.getProgress = function(self, data) + local itemcount = data.joins or 0 + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d game joins"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.target ~= 1 then + return string.format(S("Join the game %d times."), self.trigger.target) + else + return S("Join the game.") + end + end +end) + +awards.register_trigger("craft", function(def) + local tmp = { + award = def.name, + item = def.trigger.item, + target = def.trigger.target, + } + table.insert(awards.on.craft, tmp) + def.getProgress = function(self, data) + local itemcount + if tmp.item then + itemcount = awards.get_item_count(data, "craft", tmp.item) or 0 + else + itemcount = awards.get_total_item_count(data, "craft") + end + return { + perc = itemcount / tmp.target, + label = string.format(S("%d/%d crafted"), itemcount, tmp.target) + } + end + def.getDefaultDescription = function(self) + if self.trigger.item then + local iname = minetest.registered_items[self.trigger.item].description + if iname == nil then + iname = self.trigger.item + end + if self.trigger.target ~= 1 then + return string.format(S("Craft: %d×%s"), self.trigger.target, iname) + else + return string.format(S("Craft: %s"), iname) + end + else + return string.format(S("Craft %d item(s)."), self.trigger.target) + end + end +end) + +-- Backwards compatibility +awards.register_onDig = awards.register_on_dig +awards.register_onPlace = awards.register_on_place +awards.register_onDeath = awards.register_on_death +awards.register_onChat = awards.register_on_chat +awards.register_onJoin = awards.register_on_join +awards.register_onCraft = awards.register_on_craft + +-- Trigger Handles +minetest.register_on_dignode(function(pos, oldnode, digger) + if not digger or not pos or not oldnode then + return + end + + local data = awards.players[digger:get_player_name()] + if not awards.increment_item_counter(data, "count", oldnode.name) then + return + end + awards.run_trigger_callbacks(digger, data, "dig", 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.count[tmod] or not data.count[tmod][titem] then + -- table running failed! + elseif data.count[tmod][titem] > 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 00000000..a4bb02dc --- /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