mirror of
				https://gitlab.com/rubenwardy/awards.git
				synced 2025-11-03 22:35:27 +01:00 
			
		
		
		
	Compare commits
	
		
			126 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					0a8deaa88d | ||
| 
						 | 
					4c4820d314 | ||
| 
						 | 
					457eedb913 | ||
| 
						 | 
					c4709de60f | ||
| 
						 | 
					1ef4a98247 | ||
| 
						 | 
					93b6da0edf | ||
| 
						 | 
					2b90b18fe9 | ||
| 
						 | 
					b769e93412 | ||
| 
						 | 
					5514c35409 | ||
| 
						 | 
					7bac284f80 | ||
| 
						 | 
					23c7ca57b7 | ||
| 
						 | 
					eed3964d32 | ||
| 
						 | 
					37082d1186 | ||
| 
						 | 
					6dc91cf893 | ||
| 
						 | 
					9c74a3f85a | ||
| 
						 | 
					b4a4a1fd74 | ||
| 
						 | 
					4e8d175714 | ||
| 
						 | 
					c7b60be880 | ||
| 
						 | 
					ce58720493 | ||
| 
						 | 
					d542042a50 | ||
| 
						 | 
					7e3064ef93 | ||
| 
						 | 
					9d98f950b8 | ||
| 
						 | 
					8a34ea8055 | ||
| 
						 | 
					da3d9b3980 | ||
| 
						 | 
					8f46d5b37d | ||
| 
						 | 
					1ffa8f10ac | ||
| 
						 | 
					fb1670abc6 | ||
| 
						 | 
					38b7d9aa91 | ||
| 
						 | 
					805720b4af | ||
| 
						 | 
					29a1b97b38 | ||
| 
						 | 
					b856aea54d | ||
| 
						 | 
					570fd3a206 | ||
| 
						 | 
					417ac0fe46 | ||
| 
						 | 
					1ab08d68c9 | ||
| 
						 | 
					32150bdd66 | ||
| 
						 | 
					8c0bb00b1a | ||
| 
						 | 
					237525b518 | ||
| 
						 | 
					21e1ce6675 | ||
| 
						 | 
					0ae58ad0c3 | ||
| 
						 | 
					7d462c6aa5 | ||
| 
						 | 
					f0052386c8 | ||
| 
						 | 
					08f654cf94 | ||
| 
						 | 
					3fc12eb689 | ||
| 
						 | 
					98fca7914b | ||
| 
						 | 
					37275963df | ||
| 
						 | 
					75c01a188a | ||
| 
						 | 
					a5768efbc0 | ||
| 
						 | 
					4e6ade249e | ||
| 
						 | 
					e110bbbc7a | ||
| 
						 | 
					2f49d895ed | ||
| 
						 | 
					d67d19ec50 | ||
| 
						 | 
					4764568f6d | ||
| 
						 | 
					ee4931ae6e | ||
| 
						 | 
					51ccb8c1b6 | ||
| 
						 | 
					7f156db0df | ||
| 
						 | 
					0017a174bd | ||
| 
						 | 
					0574d0375e | ||
| 
						 | 
					07997a54f4 | ||
| 
						 | 
					f84e6d8db5 | ||
| 
						 | 
					f571f9d6eb | ||
| 
						 | 
					6c79a2f73f | ||
| 
						 | 
					f7956d97e2 | ||
| 
						 | 
					cca278024d | ||
| 
						 | 
					eaab883e71 | ||
| 
						 | 
					28c59340ea | ||
| 
						 | 
					d82972b448 | ||
| 
						 | 
					72cc346c35 | ||
| 
						 | 
					5de9dcb797 | ||
| 
						 | 
					7c5fd79b57 | ||
| 
						 | 
					c579f862b6 | ||
| 
						 | 
					eeee4a8398 | ||
| 
						 | 
					ef19940edc | ||
| 
						 | 
					8b024accdd | ||
| 
						 | 
					dd2a5d2d1f | ||
| 
						 | 
					2c4da0b88a | ||
| 
						 | 
					81aa0f1c82 | ||
| 
						 | 
					81590b5773 | ||
| 
						 | 
					3854565fa2 | ||
| 
						 | 
					096fe16c97 | ||
| 
						 | 
					3dd7a5e66a | ||
| 
						 | 
					9a02873b59 | ||
| 
						 | 
					e919355bec | ||
| 
						 | 
					ccd9a01424 | ||
| 
						 | 
					1049280eeb | ||
| 
						 | 
					7fd56ac3d0 | ||
| 
						 | 
					c994978683 | ||
| 
						 | 
					38c504e938 | ||
| 
						 | 
					ab7206e150 | ||
| 
						 | 
					f4a5eb25f6 | ||
| 
						 | 
					43da09620e | ||
| 
						 | 
					ae01ea01dd | ||
| 
						 | 
					a04f3df1e2 | ||
| 
						 | 
					90bf9b061a | ||
| 
						 | 
					0e48cd8675 | ||
| 
						 | 
					ed09abd868 | ||
| 
						 | 
					13eb5dcdae | ||
| 
						 | 
					67946bf0c4 | ||
| 
						 | 
					50349917e5 | ||
| 
						 | 
					963c5772df | ||
| 
						 | 
					92c43d1c04 | ||
| 
						 | 
					0692d1cc85 | ||
| 
						 | 
					1bd96e662b | ||
| 
						 | 
					5b416c61c4 | ||
| 
						 | 
					d4c47775c9 | ||
| 
						 | 
					20eaf3b34f | ||
| 
						 | 
					cdf59bb9fd | ||
| 
						 | 
					743cb4ce8d | ||
| 
						 | 
					9264c75f0a | ||
| 
						 | 
					fd79fe6521 | ||
| 
						 | 
					7767cff0bf | ||
| 
						 | 
					94304a4a90 | ||
| 
						 | 
					ae09298ea2 | ||
| 
						 | 
					6a7ea1a70d | ||
| 
						 | 
					d38ba4e8a0 | ||
| 
						 | 
					f5ea95ad35 | ||
| 
						 | 
					9b6e93dd9a | ||
| 
						 | 
					49f251136e | ||
| 
						 | 
					9308b95163 | ||
| 
						 | 
					f6515c12b8 | ||
| 
						 | 
					00eeeb3eef | ||
| 
						 | 
					5dec2fd60b | ||
| 
						 | 
					7eeebf0f40 | ||
| 
						 | 
					b689dc8eaf | ||
| 
						 | 
					f5cf49af2e | ||
| 
						 | 
					48bb2e9656 | ||
| 
						 | 
					c79f13a4a3 | 
							
								
								
									
										8
									
								
								.gitlab-c.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.gitlab-c.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
image: abaez/luarocks
 | 
			
		||||
 | 
			
		||||
test:
 | 
			
		||||
  stage: test
 | 
			
		||||
  before_script:
 | 
			
		||||
    - luarocks install --local luacheck
 | 
			
		||||
  script:
 | 
			
		||||
    - $HOME/.luarocks/bin/luacheck .
 | 
			
		||||
							
								
								
									
										14
									
								
								.luacheckrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.luacheckrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
unused_args = false
 | 
			
		||||
allow_defined_top = true
 | 
			
		||||
 | 
			
		||||
globals = {
 | 
			
		||||
	"minetest", "awards",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
read_globals = {
 | 
			
		||||
	string = {fields = {"split"}},
 | 
			
		||||
	table = {fields = {"copy", "getn"}},
 | 
			
		||||
	"vector", "default", "ItemStack",
 | 
			
		||||
	"dump", "sfinv", "intllib",
 | 
			
		||||
	"unified_inventory",
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										521
									
								
								LICENSE.txt
									
									
									
									
									
								
							
							
						
						
									
										521
									
								
								LICENSE.txt
									
									
									
									
									
								
							@@ -1,502 +1,19 @@
 | 
			
		||||
                  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.
 | 
			
		||||
 | 
			
		||||
    <one line to give the library's name and a brief idea of what it does.>
 | 
			
		||||
    Copyright (C) <year>  <name of author>
 | 
			
		||||
 | 
			
		||||
    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.
 | 
			
		||||
 | 
			
		||||
  <signature of Ty Coon>, 1 April 1990
 | 
			
		||||
  Ty Coon, President of Vice
 | 
			
		||||
 | 
			
		||||
That's all there is to it!
 | 
			
		||||
Copyright (c) 2013-8 rubenwardy
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
 | 
			
		||||
this software and associated documentation files (the "Software"), to deal in
 | 
			
		||||
the Software without restriction, including without limitation the rights to
 | 
			
		||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 | 
			
		||||
of the Software, and to permit persons to whom the Software is furnished to do
 | 
			
		||||
so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 | 
			
		||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 | 
			
		||||
DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										330
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										330
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,330 @@
 | 
			
		||||
# Awards
 | 
			
		||||
 | 
			
		||||
Adds awards/achievements to Minetest (plus a very good API).
 | 
			
		||||
 | 
			
		||||
by [rubenwardy](https://rubenwardy.com), licensed under MIT.
 | 
			
		||||
With thanks to Wuzzy, kaeza, and MrIbby.
 | 
			
		||||
 | 
			
		||||
Majority of awards are back ported from Calinou's old fork in Carbone, under same license.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Introduction
 | 
			
		||||
 | 
			
		||||
## Awards and Triggers
 | 
			
		||||
 | 
			
		||||
An award is a single unlockable unit, registered like so:
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
awards.register_award("mymod:award", {
 | 
			
		||||
	description = "My Example Award",
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Awards are unlocked either using `awards.unlock()` or by a trigger being
 | 
			
		||||
fullfilled. A trigger is a condition which unlocks an award. Triggers are
 | 
			
		||||
registered at the same time as an award is registered:
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
awards.register_award("mymod:award", {
 | 
			
		||||
	description = "My Example Award",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type   = "dig",
 | 
			
		||||
		node   = "default:stone",
 | 
			
		||||
		target = 10,
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The above trigger type is an example of a counted_key trigger:
 | 
			
		||||
rather than a single counter there's a counter per key - in this
 | 
			
		||||
case the key is the value of the `node` field.
 | 
			
		||||
 | 
			
		||||
If you leave out the key in a `counted_key` trigger, then the total will be used
 | 
			
		||||
instead. For example, here is an award which unlocks after you've placed 10
 | 
			
		||||
nodes of any type:
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
awards.register_award("mymod:award", {
 | 
			
		||||
	description = "Place 10 nodes!",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type   = "place",
 | 
			
		||||
		target = 10,
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You can also register an *Unlock Function*, which can return the name of an
 | 
			
		||||
award to unlock it:
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
awards.register_award("mymod:award", {
 | 
			
		||||
	title = "Lava Miner",
 | 
			
		||||
	description = "Mine any block while being very close to lava.",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
awards.register_on_dig(function(player, data)
 | 
			
		||||
	local pos = player:get_pos()
 | 
			
		||||
	if pos and (minetest.find_node_near(pos, 1, "default:lava_source") or
 | 
			
		||||
			minetest.find_node_near(pos, 1, "default:lava_flowing")) then
 | 
			
		||||
		return "mymod:award"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The above is a bad example as you don't actually need the stats data given.
 | 
			
		||||
It would be better to register a `dignode` callback and call `awards.unlock()`
 | 
			
		||||
if the condition is met.
 | 
			
		||||
 | 
			
		||||
## Trigger Types
 | 
			
		||||
 | 
			
		||||
The trigger type is used to determine which event will cause the trigger will be
 | 
			
		||||
fulfilled. The awards mod comes with a number of predefined types, documented
 | 
			
		||||
in [Builtin Trigger Types](#builtin-trigger-types).
 | 
			
		||||
 | 
			
		||||
Trigger types are registered like so:
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
awards.register_trigger("chat", {
 | 
			
		||||
	type = "counted",
 | 
			
		||||
	progress = "@1/@2 chat messages",
 | 
			
		||||
	auto_description = { "Send a chat message", "Chat @1 times" },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_on_chat_message(function(name, message)
 | 
			
		||||
	local player = minetest.get_player_by_name(name)
 | 
			
		||||
	if not player or string.find(message, "/")  then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	awards.notify_chat(player)
 | 
			
		||||
end)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
A trigger type has a type as well, which determines how the data is stored and
 | 
			
		||||
also how the trigger is fulfilled.
 | 
			
		||||
 | 
			
		||||
**Trigger Type Types:**
 | 
			
		||||
 | 
			
		||||
* **custom** requires you handle the calling of awards.unlock() yourself. You also
 | 
			
		||||
  need to implement on_register() yourself. You'll also probably want to implement
 | 
			
		||||
  `on_register()` to catch awards registered with your trigger type.
 | 
			
		||||
* **counted** stores a single counter for each player which is incremented by calling
 | 
			
		||||
  `trigger:notify(player)`. Good for homogenous actions like number of chat messages,
 | 
			
		||||
  joins, and the like.
 | 
			
		||||
* **counted_key** stores a table of counters each indexed by a key. There is also
 | 
			
		||||
  a total field (`__total`) which stores the sum of all counters. A counter is
 | 
			
		||||
  incremented by calling `trigger:notify(player, key)`. This is good for things like
 | 
			
		||||
  placing nodes or crafting items, where the key will be the item or node name.
 | 
			
		||||
  If `key` is an item, then you should also add `key_is_item = true` to the
 | 
			
		||||
  trigger type definition.
 | 
			
		||||
 | 
			
		||||
As said, you could use a custom trigger if none of the other ones match your needs.
 | 
			
		||||
Here's an example.
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
awards.register_trigger("foo", {
 | 
			
		||||
	type             = "custom",
 | 
			
		||||
	progress         = "@1/@2 foos",
 | 
			
		||||
	auto_description = { "Do a foo", "Foo @1 times" },
 | 
			
		||||
 | 
			
		||||
	on_register = function(self, award)
 | 
			
		||||
		print(award.name .. " was registered with foo trigger type")
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_on_foo(function()
 | 
			
		||||
	for _, trigger in pairs(awards.on.foo) do
 | 
			
		||||
		-- trigger is either a trigger tables or
 | 
			
		||||
		--   or an unlock function.
 | 
			
		||||
 | 
			
		||||
		-- some complex logic
 | 
			
		||||
		if condition then
 | 
			
		||||
			awards.unlock(trigger)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Award Difficulty
 | 
			
		||||
 | 
			
		||||
Difficulty is used to determine how awards are sorted in awards lists.
 | 
			
		||||
 | 
			
		||||
If the award trigger is counted, ie: the trigger requires a `target` property,
 | 
			
		||||
then the difficulty multipler is timesd by `target` to get the overall difficulty.
 | 
			
		||||
If the award isn't a counted type then the difficulty multiplier is used as the
 | 
			
		||||
overal difficulty. Award difficulty affects how awards are sorted in a list -
 | 
			
		||||
more difficult awards are further down the list.
 | 
			
		||||
 | 
			
		||||
In real terms, `difficulty` is a relative difficulty to do one unit of the trigger
 | 
			
		||||
if its counted, otherwise it's the relative difficulty of completely doing the
 | 
			
		||||
award (if not-counted). For the `dig` trigger type, 1 unit would be 1 node dug.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Actual code used to calculate award difficulty:
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
local difficulty = def.difficulty or 1
 | 
			
		||||
if def.trigger and def.trigger.target then
 | 
			
		||||
	difficulty = difficulty * def.trigger.target
 | 
			
		||||
end
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# API
 | 
			
		||||
 | 
			
		||||
## Awards
 | 
			
		||||
 | 
			
		||||
* `awards.register_award(name, def)`, the def table has the following fields:
 | 
			
		||||
	* `title` - title of the award (defaults to name)
 | 
			
		||||
	* `description` - longer description of the award, displayed in Awards tab
 | 
			
		||||
	* `difficulty` - see [Award Difficulty](#award-difficulty).
 | 
			
		||||
	* `requires` - list of awards that need to be unlocked before this one
 | 
			
		||||
		is visible.
 | 
			
		||||
	* `prizes` - list of items to give when you earn the award
 | 
			
		||||
	* `secret` - boolean if this award is secret (i.e. showed on awards list)
 | 
			
		||||
	* `sound` - `SimpleSoundSpec` table to play on unlock.
 | 
			
		||||
		`false` to disable unlock sound.
 | 
			
		||||
	* `icon` - the icon image. Defaults to `awards_unknown.png`.
 | 
			
		||||
	* `hud_background` - the background image used in the HUD to contain the text and icon.
 | 
			
		||||
	                 Defaults to `awards_bg_default.png`.
 | 
			
		||||
	* `trigger` - trigger definition, see [Builtin Trigger Types](#builtin-trigger-types).
 | 
			
		||||
	* `on_unlock(name, def)` - callback on unlock.
 | 
			
		||||
* `awards.registered_awards` - table of award name to definition.
 | 
			
		||||
* `awards.register_on_unlock(func(name, def))`
 | 
			
		||||
	* `name` is the player name
 | 
			
		||||
	* `def` is the award def.
 | 
			
		||||
	* return true to cancel HUD from appearing.
 | 
			
		||||
* `awards.unlock(player_name, award_name)`
 | 
			
		||||
	* gives an award to a player
 | 
			
		||||
* `awards.remove(player_name, award_name)`
 | 
			
		||||
	* removes an award from a player
 | 
			
		||||
* `awards.get_award_states(player_name)`
 | 
			
		||||
	* Returns list of tables, sorted by `score`, each having the fields:
 | 
			
		||||
 | 
			
		||||
		```lua
 | 
			
		||||
		{
 | 
			
		||||
			name     = "mymod:awardname",
 | 
			
		||||
			def      = {}, -- Award definition
 | 
			
		||||
			unlocked = true, -- Whether award has been unlocked
 | 
			
		||||
			started  = true, -- Whether any progress has been made
 | 
			
		||||
			score    = 0, -- Score used in sorting
 | 
			
		||||
 | 
			
		||||
			-- Either a table or nil
 | 
			
		||||
			-- Will be nil if progress is indeterminable or
 | 
			
		||||
			-- if the award is unlocked
 | 
			
		||||
			progress = {
 | 
			
		||||
				current = 5,
 | 
			
		||||
				target  = 10,
 | 
			
		||||
				label   = "label", -- Label to show over progress bar
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		```
 | 
			
		||||
 | 
			
		||||
## Triggers
 | 
			
		||||
 | 
			
		||||
* `awards.register_trigger(name, def)`, the def table has the following fields:
 | 
			
		||||
	* `type` - see trigger type types in [Trigger Types](#trigger-types).
 | 
			
		||||
	* `progress` - used to format progress, defaults to "%1/%2".
 | 
			
		||||
	* `auto_description` - a table of two elements. Each element is a format string. Element 1 is singular, element 2 is plural. Used for the award description (not title) if none is given.
 | 
			
		||||
	* `on_register(self, award_def)` - called when an award registers with this type.
 | 
			
		||||
	* "counted_key" only:
 | 
			
		||||
		* `auto_description_total` - Used if the trigger is for the total.
 | 
			
		||||
		* `get_key(self, def)` - get key for particular award, return nil for a total.
 | 
			
		||||
		* `key_is_item` - true if the key is an item name. On notify(),
 | 
			
		||||
			any watched groups will also be notified as `group:groupname` keys.
 | 
			
		||||
* `awards.registered_triggers` - table of trigger name to definition.
 | 
			
		||||
 | 
			
		||||
## Builtin Trigger Types
 | 
			
		||||
 | 
			
		||||
Callbacks (register a function to be run)
 | 
			
		||||
 | 
			
		||||
* 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
 | 
			
		||||
* craft type: Craft something.
 | 
			
		||||
	* item: the crafted item type. If nil, all crafted items are counted
 | 
			
		||||
* death type: Die.
 | 
			
		||||
	* reason: the death reason, one of the types in PlayerHPChangeReason (see lua_api.txt)
 | 
			
		||||
				or nil for total deaths.
 | 
			
		||||
* chat type: Write a chat message.
 | 
			
		||||
* join type: Join the server.
 | 
			
		||||
* eat type: Eat an item.
 | 
			
		||||
	* item: the eaten item type. If nil, all eaten items are counted
 | 
			
		||||
 | 
			
		||||
(for all types) target - how many times to dig/place/craft/etc.
 | 
			
		||||
 | 
			
		||||
Each type has a register function like so:
 | 
			
		||||
 | 
			
		||||
* awards.register_on_TRIGGERTYPE(func(player, data))
 | 
			
		||||
	* data is the player stats data
 | 
			
		||||
	* return award name or null
 | 
			
		||||
 | 
			
		||||
### dig
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "dig",
 | 
			
		||||
	node   = "default:dirt", -- item, alias, or group
 | 
			
		||||
	target = 50,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### place
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "place",
 | 
			
		||||
	node   = "default:dirt", -- item, alias, or group
 | 
			
		||||
	target = 50,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### craft
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "craft",
 | 
			
		||||
	item   = "default:dirt", -- item, alias, or group
 | 
			
		||||
	target = 50,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### death
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "death",
 | 
			
		||||
	reason = "fall",
 | 
			
		||||
	target = 5,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### chat
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "chat",
 | 
			
		||||
	target = 100,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### join
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "join",
 | 
			
		||||
	target = 100,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### eat
 | 
			
		||||
 | 
			
		||||
```lua
 | 
			
		||||
trigger = {
 | 
			
		||||
	type   = "eat",
 | 
			
		||||
	item   = "default:apple",
 | 
			
		||||
	target = 100,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										413
									
								
								api.lua
									
									
									
									
									
								
							
							
						
						
									
										413
									
								
								api.lua
									
									
									
									
									
								
							@@ -1,413 +0,0 @@
 | 
			
		||||
-- 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)
 | 
			
		||||
	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] + 1
 | 
			
		||||
		return true
 | 
			
		||||
	else
 | 
			
		||||
		return false
 | 
			
		||||
	end
 | 
			
		||||
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
 | 
			
		||||
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] = nil
 | 
			
		||||
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 "bg_default.png"
 | 
			
		||||
	local icon = awdef.icon or "unknown.png"
 | 
			
		||||
	local custom_announce = awdef.custom_announce or S("Achievement Unlocked:")
 | 
			
		||||
 | 
			
		||||
	-- Do Notification
 | 
			
		||||
	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
 | 
			
		||||
		-- use the chat console to send it
 | 
			
		||||
		minetest.chat_send_player(name, S("Achievement Unlocked:")..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 two = player:hud_add({
 | 
			
		||||
			hud_elem_type = "text",
 | 
			
		||||
			name = "award_au",
 | 
			
		||||
			number = 0xFFFFFF,
 | 
			
		||||
			scale = {x = 100, y = 20},
 | 
			
		||||
			text = "Achievement Unlocked!",
 | 
			
		||||
			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 = "size[11,5]"
 | 
			
		||||
	local listofawards = awards._order_awards(name)
 | 
			
		||||
 | 
			
		||||
	-- 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;Secret Award]"..
 | 
			
		||||
								"image[1,0;3,3;unknown.png]"
 | 
			
		||||
			if def and def.description then
 | 
			
		||||
				formspec = formspec	.. "label[0,3.25;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 = ""
 | 
			
		||||
			if item.got then
 | 
			
		||||
				status = " (got)"
 | 
			
		||||
			end
 | 
			
		||||
			formspec = formspec .. "label[1,2.75;" .. title .. status .. "]"
 | 
			
		||||
			if def and def.icon then
 | 
			
		||||
				formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]"
 | 
			
		||||
			end
 | 
			
		||||
			if def and def.description then
 | 
			
		||||
				formspec = formspec	.. "label[0,3.25;"..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 .. "#ACACACSecret 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("You've disabled awards. Type /awards" ..
 | 
			
		||||
				" enable to reenable")
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	if text then
 | 
			
		||||
		if not awards.players[name] or not awards.players[name].unlocked  then
 | 
			
		||||
			minetest.chat_send_player(to, "You have not unlocked any awards")
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		minetest.chat_send_player(to, name.."'s awards:")
 | 
			
		||||
 | 
			
		||||
		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, 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
 | 
			
		||||
		-- Show formspec to user
 | 
			
		||||
		minetest.show_formspec(to,"awards:awards", 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)
 | 
			
		||||
@@ -1,57 +0,0 @@
 | 
			
		||||
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], "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
 | 
			
		||||
@@ -1,75 +0,0 @@
 | 
			
		||||
-- 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.
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awards", {
 | 
			
		||||
	params = "",
 | 
			
		||||
	description = "awards: list awards",
 | 
			
		||||
	func = function(name, param)
 | 
			
		||||
		if param == "clear" then
 | 
			
		||||
			awards.clear_player(name)
 | 
			
		||||
			minetest.chat_send_player(name, "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, "You have disabled awards. (only affects you)")
 | 
			
		||||
		elseif param == "enable" then
 | 
			
		||||
			awards.enable(name)
 | 
			
		||||
			minetest.chat_send_player(name, "You have enabled awards. (only affects you)")
 | 
			
		||||
		elseif param == "c" then
 | 
			
		||||
			awards.show_to(name, name, nil, true)
 | 
			
		||||
		else
 | 
			
		||||
			awards.show_to(name, name, nil, false)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("cawards", {
 | 
			
		||||
	params = "",
 | 
			
		||||
	description = "awards: list awards in chat",
 | 
			
		||||
	func = function(name, param)
 | 
			
		||||
		awards.show_to(name, name, nil, true)
 | 
			
		||||
		minetest.chat_send_player(name, "/cawards has been depreciated," ..
 | 
			
		||||
				" use /awards c instead")
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awd", {
 | 
			
		||||
	params = "award name",
 | 
			
		||||
	description = "awd: Details of awd gotten",
 | 
			
		||||
	func = function(name, param)
 | 
			
		||||
		local def = awards.def[param]
 | 
			
		||||
		if def then
 | 
			
		||||
			minetest.chat_send_player(name,def.title..": "..def.description)
 | 
			
		||||
		else
 | 
			
		||||
			minetest.chat_send_player(name,"Award not found.")
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awpl", {
 | 
			
		||||
	privs = {
 | 
			
		||||
		server = true
 | 
			
		||||
	},
 | 
			
		||||
	description = "awpl: Get the statistics for the player given",
 | 
			
		||||
	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
 | 
			
		||||
})
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
intllib?
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Adds achievements to Minetest, and an API to register new ones.
 | 
			
		||||
							
								
								
									
										444
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										444
									
								
								init.lua
									
									
									
									
									
								
							@@ -1,410 +1,50 @@
 | 
			
		||||
-- 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.
 | 
			
		||||
--
 | 
			
		||||
-- Copyright (c) 2013-18 rubenwardy. MIT.
 | 
			
		||||
 | 
			
		||||
-- Internationalization support.
 | 
			
		||||
local S = minetest.get_translator(minetest.get_current_modname())
 | 
			
		||||
 | 
			
		||||
local S
 | 
			
		||||
if (intllib) then
 | 
			
		||||
	dofile(minetest.get_modpath("intllib").."/intllib.lua")
 | 
			
		||||
	S = intllib.Getter(minetest.get_current_modname())
 | 
			
		||||
else
 | 
			
		||||
	S = function ( s ) return s end
 | 
			
		||||
-- The global award namespace
 | 
			
		||||
awards = {
 | 
			
		||||
	show_mode = "hud",
 | 
			
		||||
	registered_awards = {},
 | 
			
		||||
	registered_triggers = {},
 | 
			
		||||
	on_unlock = {},
 | 
			
		||||
	translator = S,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Load files
 | 
			
		||||
local modpath = minetest.get_modpath(minetest.get_current_modname()).."/src"
 | 
			
		||||
dofile(modpath.."/data.lua")
 | 
			
		||||
dofile(modpath.."/api_awards.lua")
 | 
			
		||||
dofile(modpath.."/api_triggers.lua")
 | 
			
		||||
dofile(modpath.."/chat_commands.lua")
 | 
			
		||||
dofile(modpath.."/gui.lua")
 | 
			
		||||
dofile(modpath.."/triggers.lua")
 | 
			
		||||
 | 
			
		||||
-- Optionally add default awards.
 | 
			
		||||
if minetest.settings:get_bool("awards.add_defaults", true) then
 | 
			
		||||
	dofile(modpath.."/awards.lua")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
dofile(minetest.get_modpath("awards").."/api.lua")
 | 
			
		||||
dofile(minetest.get_modpath("awards").."/chat_commands.lua")
 | 
			
		||||
dofile(minetest.get_modpath("awards").."/triggers.lua")
 | 
			
		||||
awards.set_intllib(S)
 | 
			
		||||
awards.load()
 | 
			
		||||
minetest.register_on_shutdown(awards.save)
 | 
			
		||||
 | 
			
		||||
-- Light it up
 | 
			
		||||
awards.register_achievement("award_lightitup",{
 | 
			
		||||
	title = S("Light It Up"),
 | 
			
		||||
	description = S("Place 100 torches."),
 | 
			
		||||
	icon = "novicebuilder.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 = "novicebuilder.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "place",
 | 
			
		||||
		node = "default:torch",
 | 
			
		||||
		target = 1000
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 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 = "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 = "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 = "novicebuilder.png",
 | 
			
		||||
		trigger = {
 | 
			
		||||
			type = "place",
 | 
			
		||||
			node = "moreblocks:trap_stone",
 | 
			
		||||
			target = 2
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
local function check_save()
 | 
			
		||||
	awards.save()
 | 
			
		||||
	minetest.after(18, check_save)
 | 
			
		||||
end
 | 
			
		||||
minetest.after(8 * math.random() + 10, check_save)
 | 
			
		||||
 | 
			
		||||
-- Obsessed with Obsidian
 | 
			
		||||
awards.register_achievement("award_obsessed_with_obsidian",{
 | 
			
		||||
	title = S("Obsessed with Obsidian"),
 | 
			
		||||
	description = S("Mine 50 obsidian."),
 | 
			
		||||
	icon = "miniminer.png",
 | 
			
		||||
	background = "bg_mining.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:obsidian",
 | 
			
		||||
		target = 50
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- On the way
 | 
			
		||||
awards.register_achievement("award_on_the_way", {
 | 
			
		||||
	title = S("On The Way"),
 | 
			
		||||
	description = S("Place 100 rails."),
 | 
			
		||||
	icon = "novicebuilder.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "place",
 | 
			
		||||
		node = "default:rail",
 | 
			
		||||
		target = 100
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Lumberjack
 | 
			
		||||
awards.register_achievement("award_lumberjack", {
 | 
			
		||||
	title = S("Lumberjack"),
 | 
			
		||||
	description = S("Dig 100 tree blocks."),
 | 
			
		||||
	icon = "default_tree.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:tree",
 | 
			
		||||
		target = 100
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Semi-pro Lumberjack
 | 
			
		||||
awards.register_achievement("award_lumberjack_semipro", {
 | 
			
		||||
	title = S("Semi-pro Lumberjack"),
 | 
			
		||||
	description = S("Dig 1,000 tree blocks."),
 | 
			
		||||
	icon = "default_tree.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:tree",
 | 
			
		||||
		target = 1000
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Professional Lumberjack
 | 
			
		||||
awards.register_achievement("award_lumberjack_professional", {
 | 
			
		||||
	title = S("Professional Lumberjack"),
 | 
			
		||||
	description = S("Dig 10,000 tree blocks."),
 | 
			
		||||
	icon = "default_tree.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:tree",
 | 
			
		||||
		target = 10000
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- L33T Lumberjack
 | 
			
		||||
awards.register_achievement("award_lumberjack_leet", {
 | 
			
		||||
	title = S("L33T Lumberjack"),
 | 
			
		||||
	description = S("Dig 100,000 tree blocks."),
 | 
			
		||||
	icon = "default_tree.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:tree",
 | 
			
		||||
		target = 100000
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Junglebaby
 | 
			
		||||
awards.register_achievement("award_junglebaby", {
 | 
			
		||||
	title = S("Junglebaby"),
 | 
			
		||||
	description = S("Dig 100 jungle tree blocks."),
 | 
			
		||||
	icon = "default_jungletree.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",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:jungletree",
 | 
			
		||||
		target = 1000
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Found some Mese!
 | 
			
		||||
awards.register_achievement("award_mesefind", {
 | 
			
		||||
	title = S("First Mese Find"),
 | 
			
		||||
	description = S("Find some Mese."),
 | 
			
		||||
	icon = "default_mese_block.png",
 | 
			
		||||
	background = "bg_mining.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:stone_with_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 = "miniminer.png",
 | 
			
		||||
	background = "bg_mining.png",
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "dig",
 | 
			
		||||
		node = "default:stone_with_copper",
 | 
			
		||||
		target = 1000
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Found a Nyan cat!
 | 
			
		||||
awards.register_achievement("award_nyanfind", {
 | 
			
		||||
	title = S("OMG, Nyan Cat!"),
 | 
			
		||||
	description = S("Find 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 = "miniminer.png",
 | 
			
		||||
	background = "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 = "miniminer.png",
 | 
			
		||||
	background = "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 = "miniminer.png",
 | 
			
		||||
	background = "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."),
 | 
			
		||||
	background = "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("Create 100 Sticks"),
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "craft",
 | 
			
		||||
		item = "default:stick",
 | 
			
		||||
		target = 100
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Join
 | 
			
		||||
awards.register_achievement("award_join2", {
 | 
			
		||||
	title = S("Frequent Visitor"),
 | 
			
		||||
	description = S("Connect to the server 50 times."),
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "join",
 | 
			
		||||
		target = 50
 | 
			
		||||
	},
 | 
			
		||||
	secret = true
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Dying Spree
 | 
			
		||||
awards.register_achievement("award_dying_spree", {
 | 
			
		||||
	title = S("Dying Spree"),
 | 
			
		||||
	description = S("Die 5 times."),
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "death",
 | 
			
		||||
		target = 5
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Bot-like
 | 
			
		||||
awards.register_achievement("award_bot_like", {
 | 
			
		||||
	title = S("Bot-like"),
 | 
			
		||||
	description = S("Die 10 times."),
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "death",
 | 
			
		||||
		target = 10
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- You Suck!
 | 
			
		||||
awards.register_achievement("award_you_suck", {
 | 
			
		||||
	title = S("You Suck!"),
 | 
			
		||||
	description = S("Die 100 times."),
 | 
			
		||||
	trigger = {
 | 
			
		||||
		type = "death",
 | 
			
		||||
		target = 100
 | 
			
		||||
	},
 | 
			
		||||
	secret = true
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Burned to death
 | 
			
		||||
awards.register_achievement("award_burn", {
 | 
			
		||||
	title = S("You're a witch!"),
 | 
			
		||||
	description = S("Burn to death in a fire.")
 | 
			
		||||
})
 | 
			
		||||
awards.register_onDeath(function(player,data)
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if pos and minetest.find_node_near(pos, 2, "fire:basic_flame") ~= nil then
 | 
			
		||||
		return "award_burn"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Died in flowing lava
 | 
			
		||||
awards.register_achievement("award_in_the_flow", {
 | 
			
		||||
	title = S("In the Flow"),
 | 
			
		||||
	description = S("Die in flowing lava.")
 | 
			
		||||
})
 | 
			
		||||
awards.register_onDeath(function(player,data)
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if pos and minetest.find_node_near(pos, 2, "default:lava_flowing") ~= nil then
 | 
			
		||||
		return "award_in_the_flow"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Die near diamond ore
 | 
			
		||||
awards.register_achievement("award_this_is_sad", {
 | 
			
		||||
	title = S("This is Sad"),
 | 
			
		||||
	description = S("Die near diamond ore.")
 | 
			
		||||
})
 | 
			
		||||
awards.register_on_death(function(player,data)
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if pos and minetest.find_node_near(pos, 5, "default:stone_with_diamond") ~= nil then
 | 
			
		||||
		return "award_this_is_sad"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Die near diamond ore
 | 
			
		||||
awards.register_achievement("award_the_stack", {
 | 
			
		||||
	title = S("The Stack"),
 | 
			
		||||
	description = S("Die near bones.")
 | 
			
		||||
})
 | 
			
		||||
awards.register_on_death(function(player,data)
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if pos and minetest.find_node_near(pos, 5, "bones:bones") ~= nil then
 | 
			
		||||
		return "award_the_stack"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Die near diamond ore
 | 
			
		||||
awards.register_achievement("award_deep_down", {
 | 
			
		||||
	title = S("Deep Down"),
 | 
			
		||||
	description = S("Die below -10000"),
 | 
			
		||||
	secret = true
 | 
			
		||||
})
 | 
			
		||||
awards.register_on_death(function(player,data)
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if pos and pos.y < -10000 then
 | 
			
		||||
		return "award_deep_down"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Die near diamond ore
 | 
			
		||||
awards.register_achievement("award_no_screen", {
 | 
			
		||||
	title = S("In space, no one can hear you scream"),
 | 
			
		||||
	description = S("Die above 10000"),
 | 
			
		||||
	secret = true
 | 
			
		||||
})
 | 
			
		||||
awards.register_on_death(function(player,data)
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	if pos and pos.y > 10000 then
 | 
			
		||||
		return "award_no_screen"
 | 
			
		||||
	end
 | 
			
		||||
	return nil
 | 
			
		||||
end)
 | 
			
		||||
-- Backwards compatibility
 | 
			
		||||
awards.give_achievement     = awards.unlock
 | 
			
		||||
awards.getFormspec          = awards.get_formspec
 | 
			
		||||
awards.showto               = awards.show_to
 | 
			
		||||
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
 | 
			
		||||
awards.def                  = awards.registered_awards
 | 
			
		||||
awards.register_achievement = awards.register_award
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										259
									
								
								locale/awards.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								locale/awards.de.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,259 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=Auszeichnung freigeschaltet!
 | 
			
		||||
Award Unlocked: %s=Auszeichnung freigeschaltet: %s
 | 
			
		||||
Secret Award Unlocked!=Versteckte Auszeichnung freigeschaltet!
 | 
			
		||||
Secret Award Unlocked: %s=Versteckte Auszeichnung freigeschaltet: %s
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=Eine Katze im Pop-Tart?!
 | 
			
		||||
Architect=Architekt
 | 
			
		||||
Aspiring Farmer=Aufstrebender Bauer
 | 
			
		||||
Backpacker=Rucksacktourist
 | 
			
		||||
Baker=Bäcker
 | 
			
		||||
Banker=Banker
 | 
			
		||||
Bricker=Ziegler
 | 
			
		||||
Build a Cave=Höhlenbauer
 | 
			
		||||
Builder=Bauarbeiter
 | 
			
		||||
Burn to death in a fire.=Verbrenne im Feuer.
 | 
			
		||||
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 500 times oil extract.=Fertigen Sie 500 mal Ölextrakte.
 | 
			
		||||
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
 | 
			
		||||
Death in the Deeps=Tod in der Tiefe
 | 
			
		||||
Desert Discoverer=Wüstenerkunder
 | 
			
		||||
Desert Dweller=Wüstenbewohner
 | 
			
		||||
Die 100 times.=Sterben Sie 100 mal.
 | 
			
		||||
Die above 10000=Sterben Sie über 10.000 .
 | 
			
		||||
Die below -10000=Sterben Sie unter -10.000 .
 | 
			
		||||
Die in flowing lava.=Sterben Sie in fließender Lava.
 | 
			
		||||
Die near bones.=Sterben Sie in der Nähe von Knochen.
 | 
			
		||||
Die near diamond ore.=Sterben Sie in der Nähe von Diamantenadern.
 | 
			
		||||
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.
 | 
			
		||||
Eat 10 loaves of bread.=Essen Sie 10 Brote.
 | 
			
		||||
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.
 | 
			
		||||
Eat 80 apples.=Essen Sie 80 Äpfel.
 | 
			
		||||
Electical Engineer=Elektroingeniuer
 | 
			
		||||
Engineer=Ingenieur
 | 
			
		||||
Factory=Fabrik
 | 
			
		||||
Far Lands=Ferne Lande
 | 
			
		||||
Farming Skills Acquired=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
 | 
			
		||||
Graveyard=Friedhof
 | 
			
		||||
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 space, no one can hear you scream=Im Weltall hört niemand deine Schreie
 | 
			
		||||
In the Dungeon=Im Verlies
 | 
			
		||||
In the Flow=Flow-Erlebnis
 | 
			
		||||
Industrial Age=Industriezeitalter
 | 
			
		||||
Item transporter=Gegenstandtransporteur
 | 
			
		||||
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=Sandmann
 | 
			
		||||
Master Architect=Meisterarchitekt
 | 
			
		||||
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
 | 
			
		||||
Mushroom Lover=Pilzfreund
 | 
			
		||||
Obsessed with Obsidian=Von Obsidian besessen
 | 
			
		||||
Oil Tycoon=Ölmagnat
 | 
			
		||||
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 10000 tubes.=Platzieren Sie 10.000 Rohre.
 | 
			
		||||
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 5 autocrafters.=Platzieren Sie 5 Autohersteller.
 | 
			
		||||
Place 500 mesecon wires.=Platzieren Sie 500 Mesecon Kabeln.
 | 
			
		||||
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
 | 
			
		||||
Tasty Mushrooms=Leckere Pilze
 | 
			
		||||
This is Sad=Echt Schade
 | 
			
		||||
Treasurer=Schatzmeister
 | 
			
		||||
Underground Mushroom Farmer=Unterirdischer Pilzbauer
 | 
			
		||||
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 Suck!=Das geht dir nicht
 | 
			
		||||
You're a witch!=Du bist eine Hexe!
 | 
			
		||||
You’re a copper=Du Kupfer!
 | 
			
		||||
Yummy!=Lecker!
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=<Auszeichnungs-ID>
 | 
			
		||||
<name>=<Name>
 | 
			
		||||
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.
 | 
			
		||||
Award not found.=Auszeichnung nicht gefunden.
 | 
			
		||||
Get the awards statistics for the given player or yourself=Auszeichnungsstatistiken für anderen oder für Sie selber abrufen.
 | 
			
		||||
Show details of an award=Details einer Auszeichnung anzeigen.
 | 
			
		||||
Show, clear, disable or enable your awards=Auszeichnungen zeigen, löschen, deaktivieren oder aktivieren.
 | 
			
		||||
You have disabled awards.=Sie haben die Auszeichnugen deaktiviert.
 | 
			
		||||
You have enabled awards.=Sie haben die Auszeichnugen aktiviert.
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=%ss Auszeichnungen:
 | 
			
		||||
(Secret Award)=(Geheime Auszeichnung)
 | 
			
		||||
@1 (unlocked)=@1 (freigeschaltet)
 | 
			
		||||
Awards=Auszeichnungen
 | 
			
		||||
Error: No achivements available.=Fehler: Keine Auszeichnungen verfügbar.
 | 
			
		||||
Error: No award available.=Fehler: Keine Auszeichnung verfügbar.
 | 
			
		||||
OK=OK
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1/@2 Chatnachrichten
 | 
			
		||||
@1/@2 crafted=@1/@2 gefertigt
 | 
			
		||||
@1/@2 deaths=@1/@2 Tode
 | 
			
		||||
@1/@2 dug=@1/@2 abgebaut
 | 
			
		||||
@1/@2 eaten=@1/@2 gegessen
 | 
			
		||||
@1/@2 joins=@1/@2 beigetreten
 | 
			
		||||
@1/@2 placed=@1/@2 platziert
 | 
			
		||||
Chat @1 times=Chatten Sie @1 mal.
 | 
			
		||||
Craft @1 item=Stellen Sie @1 Gegenstand her.
 | 
			
		||||
Craft @1 items.=Stellen Sie @1 Gegenstände her.
 | 
			
		||||
Craft: @1×@2=Stellen Sie @1x@2 her.
 | 
			
		||||
Craft: @2=Stellen Sie @2 her.
 | 
			
		||||
Die @1 times of @2=Sterben Sie @1 mal von @2.
 | 
			
		||||
Die @1 times.=Sterben Sie @1 mal.
 | 
			
		||||
Die once of @2=Sterben Sie einmal von @2.
 | 
			
		||||
Eat @1 item=Essen Sie @1 Gegenstand.
 | 
			
		||||
Eat @1 items.=Essen Sie @1 Gegenstände.
 | 
			
		||||
Eat @1×@2=Essen Sie @1x@2.
 | 
			
		||||
Eat @2=Essen Sie @2.
 | 
			
		||||
Join @1 times=Treten Sie @1 mal bei.
 | 
			
		||||
Join once=Treten Sie einmal bei.
 | 
			
		||||
Mine @1 block.=Bauen Sie @1 Block.
 | 
			
		||||
Mine @1 blocks.=Bauen Sie @1 Blöcke.
 | 
			
		||||
Mine @1 times=Bauen Sie @1 mal ab.
 | 
			
		||||
Mine: @1×@2=Bauen Sie @1x@2 ab.
 | 
			
		||||
Mine: @2=Bauen Sie @2 ab.
 | 
			
		||||
Place @1 block.=Platzieren Sie @1 Block.
 | 
			
		||||
Place @1 blocks.=Platzieren Sie @1 Blöcke.
 | 
			
		||||
Place: @1×@2=Platzieren Sie: @1x@2
 | 
			
		||||
Place: @2=Platzieren Sie: @2
 | 
			
		||||
Send a chat message=Versenden Sie eine Chatnachricht
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
%s: %s=%s: %s
 | 
			
		||||
Secret Achievement Unlocked:=Geheime Auszeichnung erhalten:
 | 
			
		||||
Achievement Unlocked:=Auszeichnung erhalten:
 | 
			
		||||
Secret Achievement Unlocked: %s=Geheime Auszeichnung erhalten: %s
 | 
			
		||||
Achievement Unlocked: %s=Auszeichnung erhalten: %s
 | 
			
		||||
Secret Achievement Unlocked!=Geheime Auszeichnung erhalten!
 | 
			
		||||
Achievement Unlocked!=Auszeichnung erhalten:
 | 
			
		||||
Error: No awards available.=Fehler: Keine Auszeichnungen vorhanden.
 | 
			
		||||
%s (got)=%s (erhalten)
 | 
			
		||||
@1/@2 game joins=@1/@2 Spielen beigetreten
 | 
			
		||||
Bankier=Bankier
 | 
			
		||||
Constructor=Konstrukteur
 | 
			
		||||
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.
 | 
			
		||||
<achievement ID>=<Auszeichnungs-ID>
 | 
			
		||||
Show details of an achievement=Details einer Auszeichnung anzeigen
 | 
			
		||||
Achievement not found.=Auszeichnung nicht gefunden.
 | 
			
		||||
Get the achievements statistics for the given player or yourself=Die Statistik der Auszeichnungen eines Spielers zeigen
 | 
			
		||||
							
								
								
									
										259
									
								
								locale/awards.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								locale/awards.es.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,259 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=
 | 
			
		||||
Award Unlocked: %s=
 | 
			
		||||
Secret Award Unlocked!=
 | 
			
		||||
Secret Award Unlocked: %s=
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=¡¿Un Gato en un Pop-Tart?!
 | 
			
		||||
Architect=Arquitecto
 | 
			
		||||
Aspiring Farmer=Aspirante a Granjero
 | 
			
		||||
Backpacker=Mochilero
 | 
			
		||||
Baker=Panadero
 | 
			
		||||
Banker=
 | 
			
		||||
Bricker=Ladrillero
 | 
			
		||||
Build a Cave=Construye Una Cueva
 | 
			
		||||
Builder=Hacedor
 | 
			
		||||
Burn to death in a fire.=
 | 
			
		||||
Castorama=Castorama
 | 
			
		||||
Craft 10 furnaces.=Elaborar 10 hornos.
 | 
			
		||||
Craft 10 mese lamps.=Elaborar 10 lámparas de MESE.
 | 
			
		||||
Craft 100 obsidian bricks.=Elaborar 100 ladrillos de obsidiana.
 | 
			
		||||
Craft 100 sandstone bricks.=Elaborar 200 ladrillos de arenisca.
 | 
			
		||||
Craft 100 sticks.=Elaborar 100 varitas.
 | 
			
		||||
Craft 100 white dyes.=Elabora 100 colorantes blancos.
 | 
			
		||||
Craft 14 vessels shelves.=Elabora 14 estanterías para botellas.
 | 
			
		||||
Craft 15 chests.=Elaborar 15 cofres.
 | 
			
		||||
Craft 15 fancy beds.=Elabora 15 camas de lujo.
 | 
			
		||||
Craft 200 brick blocks.=Elaborar 200 bloques de ladrillo.
 | 
			
		||||
Craft 200 stone bricks.=Elaborar 200 ladrillos de piedra.
 | 
			
		||||
Craft 24 gold block stairs.=Elabora 24 escaleras de bloque de oro.
 | 
			
		||||
Craft 250 white wool.=Elabora 250 bloques de lana blanca.
 | 
			
		||||
Craft 3,200 stone bricks.=Elaborar 3.200 ladrillos de piedra.
 | 
			
		||||
Craft 30 locked chests.=Elaborar 30 bloques cerrados.
 | 
			
		||||
Craft 4 large bags.=Elaborar 4 bolsas grandes.
 | 
			
		||||
Craft 400 blue dyes.=Elabora 400 colorantes azules.
 | 
			
		||||
Craft 400 desert stone bricks.=Elaborar 400 ladrillos de piedra desértica.
 | 
			
		||||
Craft 400 red dyes.=Elabora 400 colorantes rojos.
 | 
			
		||||
Craft 400 yellow dyes.=Elabora 400 colorantes amarillos.
 | 
			
		||||
Craft 500 times oil extract.=
 | 
			
		||||
Craft 7 bookshelves.=Elaborar 7 libreros.
 | 
			
		||||
Craft 8 times flint and steel.=Elaborar pedernal y hierro 8 veces.
 | 
			
		||||
Craft 800 stone bricks.=Elaborar 800 ladrillos de piedra.
 | 
			
		||||
Craft a diamond block.=Elaborar un bloque de diamante.
 | 
			
		||||
Crafter of Sticks=Elaborador de Varitas
 | 
			
		||||
Dandelions are Yellow=Los Dientes de León Son Amarillos
 | 
			
		||||
Death in the Deeps=
 | 
			
		||||
Desert Discoverer=Descubridor del Desierto
 | 
			
		||||
Desert Dweller=Morador Desértico
 | 
			
		||||
Die 100 times.=
 | 
			
		||||
Die above 10000=
 | 
			
		||||
Die below -10000=
 | 
			
		||||
Die in flowing lava.=
 | 
			
		||||
Die near bones.=
 | 
			
		||||
Die near diamond ore.=
 | 
			
		||||
Dig 1,000 copper ores.=Excavar 1.000 minerales de cobre
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Cortar 1.000 árboles selváticos.
 | 
			
		||||
Dig 1,000 sand.=Cavar 1.000 bloques de arena.
 | 
			
		||||
Dig 1,000 stone blocks.=Excavar 1.000 bloques de piedra.
 | 
			
		||||
Dig 1,296 tree blocks.=Cortar 1.296 árboles.
 | 
			
		||||
Dig 10,000 stone blocks.=Excavar 10.000 bloques de piedra.
 | 
			
		||||
Dig 100 jungle tree blocks.=Cortar 100 árboles selváticos.
 | 
			
		||||
Dig 100 stone blocks.=Excavar 100 bloques de piedra.
 | 
			
		||||
Dig 216 tree blocks.=Cortar 216 árboles.
 | 
			
		||||
Dig 36 tree blocks.=Cortar 36 árboles.
 | 
			
		||||
Dig 6 tree blocks.=Cortar 6 árboles.
 | 
			
		||||
Eat 10 loaves of bread.=Come 10 rebanadas de pan.
 | 
			
		||||
Eat 3 brown mushrooms.=Come 3 hongos marrones.
 | 
			
		||||
Eat 33 brown mushrooms.=Come 33 hongos marrones.
 | 
			
		||||
Eat 333 brown mushrooms.=Come 333 hongos marrones.
 | 
			
		||||
Eat 80 apples.=Come 80 manzanas.
 | 
			
		||||
Electical Engineer=
 | 
			
		||||
Engineer=
 | 
			
		||||
Factory=
 | 
			
		||||
Far Lands=Tierras Lejanas
 | 
			
		||||
Farming Skills Acquired=Habilidades de Granja Adquiridas
 | 
			
		||||
Field Worker=Trabajador de Campo
 | 
			
		||||
Filthy Rich=Sucio Rico
 | 
			
		||||
Firefighter=Bombero
 | 
			
		||||
First Day in the Woods=Primer Día en el Bosque
 | 
			
		||||
First Gold Find=Primer Encuentro de Oro
 | 
			
		||||
First Mese Find=Primer Encuentro de MESE
 | 
			
		||||
Fortress=Fortaleza
 | 
			
		||||
Geraniums are Blue=Los Geranios Son Azules
 | 
			
		||||
Girl's Best Friend=El Mejor Amigo de Las Mujeres
 | 
			
		||||
Glacier Discoverer=Descubridor del Glaciar
 | 
			
		||||
Glasser=Vidriero
 | 
			
		||||
Gold Rush=Fiebre del Oro
 | 
			
		||||
Grasslands Discoverer=Descubridor de Praderas
 | 
			
		||||
Graveyard=
 | 
			
		||||
Hardened Miner=Minero Curtido
 | 
			
		||||
Hardest Block on Earth=El Bloque Más Duro Sobre La Tierra
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Cosecha 125 plantas de trigo maduras.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Cosecha 25 plantas de trigo maduras.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Cosecha 625 plantas de trigo maduras.
 | 
			
		||||
Harvest a fully grown wheat plant.=Cosecha una plantas de trigo madura.
 | 
			
		||||
Hotelier=Hotelero
 | 
			
		||||
House of Obsidian=Casa de Obsidiana
 | 
			
		||||
In space, no one can hear you scream=
 | 
			
		||||
In the Dungeon=En Las Mazmorras
 | 
			
		||||
In the Flow=
 | 
			
		||||
Industrial Age=Era Industrial
 | 
			
		||||
Item transporter=
 | 
			
		||||
Jungle Discoverer=Descubridor de Selva
 | 
			
		||||
Junglebaby=Bebé de la Selva
 | 
			
		||||
Jungleman=Hombre de la Selva
 | 
			
		||||
Lava Miner=Minero de Lava
 | 
			
		||||
Lava and Water=Lava y Agua
 | 
			
		||||
Light It Up=Ilumínalo
 | 
			
		||||
Little Library=Pequeña Biblioteca
 | 
			
		||||
Long Ladder=Escalerilla Larga
 | 
			
		||||
Lumberjack=Leñador
 | 
			
		||||
Marchand De Sable=Marchand De Sable
 | 
			
		||||
Master Architect=Maestro Arquitecto
 | 
			
		||||
Master Miner=Minero Maestro
 | 
			
		||||
Mese Mastery=Maestría de MESE
 | 
			
		||||
Mine 18 diamond ores.=Excava 10 diamantes.
 | 
			
		||||
Mine 45 gold ores.=Excavar 45 pepitas de oro.
 | 
			
		||||
Mine 50 obsidian.=Excavar 50 obsidianas.
 | 
			
		||||
Mine a mese block.=Excava tu primer bloque de MESE.
 | 
			
		||||
Mine a mossy cobblestone.=Excavar unos adoquines musgosos.
 | 
			
		||||
Mine a nyan cat.=Excavar un Gato Nyan.
 | 
			
		||||
Mine any block while being very close to lava.=Excavar un bloque cerca de lava.
 | 
			
		||||
Mine some dry grass.=Cortar un poco de pasto seco.
 | 
			
		||||
Mine some grass.=Cortar un poco de pasto.
 | 
			
		||||
Mine your first cactus.=Cortar tu primer cácto.
 | 
			
		||||
Mine your first diamond ore.=Excava tu primer diamante.
 | 
			
		||||
Mine your first dry shrub.=Cortar tu primer arbusto seco
 | 
			
		||||
Mine your first gold ore.=Excavar tu primer pepita de oro.
 | 
			
		||||
Mine your first ice.=Romper tu primer bloque de hielo.
 | 
			
		||||
Mine your first jungle grass.=Cortar tu primer pasto de selva.
 | 
			
		||||
Mine your first mese ore.=Excava tu primer mineral de MESE.
 | 
			
		||||
Mine your first obsidian.=Excavar tu primera obsidiana.
 | 
			
		||||
Mini Miner=Mini Minero
 | 
			
		||||
Mushroom Lover=Amante de los Hongos
 | 
			
		||||
Obsessed with Obsidian=Obsesionado con la Obsidiana
 | 
			
		||||
Oil Tycoon=
 | 
			
		||||
On The Way=En Camino
 | 
			
		||||
Outpost=Puesto de avanzada
 | 
			
		||||
Pharaoh=Faraón
 | 
			
		||||
Place 1,000 torches.=Colocar 1.000 antorchas.
 | 
			
		||||
Place 100 rails.=Colocar 100 rieles.
 | 
			
		||||
Place 100 stone.=Coloca 100 piedras.
 | 
			
		||||
Place 100 torches.=Colocar 100 antorchas.
 | 
			
		||||
Place 10000 tubes.=
 | 
			
		||||
Place 2 trap stones.=Colocar 2 piedras trampa.
 | 
			
		||||
Place 20 coal checkers.=Colocar 20 baldosas de ajedrez de carbón.
 | 
			
		||||
Place 20 iron checkers.=Colocar 20 baldosas de ajedrez de hierro.
 | 
			
		||||
Place 40 steel ladders.=Coloca 40 escalerillas de acero.
 | 
			
		||||
Place 400 wooden ladders.=Coloca 400 escalerillas de madera.
 | 
			
		||||
Place 5 autocrafters.=
 | 
			
		||||
Place 500 mesecon wires.=
 | 
			
		||||
Place two snow blocks.=Colocar dos bloques de nieve.
 | 
			
		||||
Professional Lumberjack=Leñador profesional
 | 
			
		||||
Put out 1000 fires.=Apagar 1000 incendios.
 | 
			
		||||
Pyromaniac=Piromaníaco
 | 
			
		||||
Really Well Lit=Realmente Bien Iluminado
 | 
			
		||||
Roses Are Red=Las Rosas Son Rojas
 | 
			
		||||
Saint-Maclou=Saint-Maclou
 | 
			
		||||
Sam the Trapper=Sam el Atrapador
 | 
			
		||||
Savannah Discoverer=Descubridor de Savana
 | 
			
		||||
Semi-pro Lumberjack=Leñador semi-profesional
 | 
			
		||||
Smelter=Fundidor
 | 
			
		||||
Tasty Mushrooms=Ricos Hongos
 | 
			
		||||
This is Sad=
 | 
			
		||||
Treasurer=Tesorero
 | 
			
		||||
Underground Mushroom Farmer=Granjero de Hongos Subterráneo
 | 
			
		||||
Very Simple Snow Man=Muñeco de Nieve Muy Simple
 | 
			
		||||
Watchtower=Torre del vigía
 | 
			
		||||
Well Lit=Bien Iluminado
 | 
			
		||||
Wheat Magnate=Magnate del Maíz
 | 
			
		||||
White Color Stock=Reserva de Color Blanco
 | 
			
		||||
Wool Over Your Eyes=Lana Sobre Tus Ojos
 | 
			
		||||
Wow, I am Diamonds!=¡Guau, Soy Diamantes!
 | 
			
		||||
You Suck!=
 | 
			
		||||
You're a witch!=
 | 
			
		||||
You’re a copper=Eres un cobre
 | 
			
		||||
Yummy!=¡Qué Rico!
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=
 | 
			
		||||
<name>=<nombre>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Todos tus logros y estadísticas han sido borrados. Puedes iniciar nuevamente.
 | 
			
		||||
Award not found.=
 | 
			
		||||
Get the awards statistics for the given player or yourself=
 | 
			
		||||
Show details of an award=
 | 
			
		||||
Show, clear, disable or enable your awards=
 | 
			
		||||
You have disabled awards.=
 | 
			
		||||
You have enabled awards.=
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=Logros de %s:
 | 
			
		||||
(Secret Award)=(Logro secreto)
 | 
			
		||||
@1 (unlocked)=
 | 
			
		||||
Awards=Logros
 | 
			
		||||
Error: No achivements available.=
 | 
			
		||||
Error: No award available.=
 | 
			
		||||
OK=Aceptar
 | 
			
		||||
Unlock this award to find out what it is.=Desbloquea éste logro para saber qué es.
 | 
			
		||||
You have not unlocked any awards.=No has desbloqueado ningún logro.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Has deshabilitado los logros. Escribe "/awards enable" para reactivar.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1/@2 conversaciones
 | 
			
		||||
@1/@2 crafted=@1/@2 elaborado
 | 
			
		||||
@1/@2 deaths=@1/@2 muertes
 | 
			
		||||
@1/@2 dug=@1/@2 excavados
 | 
			
		||||
@1/@2 eaten=@1/@2 comidos
 | 
			
		||||
@1/@2 joins=
 | 
			
		||||
@1/@2 placed=@1/@2 colocados
 | 
			
		||||
Chat @1 times=
 | 
			
		||||
Craft @1 item=
 | 
			
		||||
Craft @1 items.=
 | 
			
		||||
Craft: @1×@2=
 | 
			
		||||
Craft: @2=
 | 
			
		||||
Die @1 times of @2=
 | 
			
		||||
Die @1 times.=
 | 
			
		||||
Die once of @2=
 | 
			
		||||
Eat @1 item=
 | 
			
		||||
Eat @1 items.=
 | 
			
		||||
Eat @1×@2=
 | 
			
		||||
Eat @2=
 | 
			
		||||
Join @1 times=
 | 
			
		||||
Join once=
 | 
			
		||||
Mine @1 block.=
 | 
			
		||||
Mine @1 blocks.=
 | 
			
		||||
Mine @1 times=
 | 
			
		||||
Mine: @1×@2=
 | 
			
		||||
Mine: @2=
 | 
			
		||||
Place @1 block.=
 | 
			
		||||
Place @1 blocks.=
 | 
			
		||||
Place: @1×@2=
 | 
			
		||||
Place: @2=
 | 
			
		||||
Send a chat message=
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
%s: %s=%s: %s
 | 
			
		||||
Secret Achievement Unlocked:=Logro secreto desbloqueado:
 | 
			
		||||
Achievement Unlocked:=Logro desbloqueado:
 | 
			
		||||
Secret Achievement Unlocked: %s=Logro secreto desbloqueado: %s
 | 
			
		||||
Achievement Unlocked: %s=Logro desbloqueado: %s
 | 
			
		||||
Secret Achievement Unlocked!=Logro secreto desbloqueado!
 | 
			
		||||
Achievement Unlocked!=Logro desbloqueado!
 | 
			
		||||
Error: No awards available.=Error: No hay logros disponibles.
 | 
			
		||||
%s (got)=%s (obtenido)
 | 
			
		||||
@1/@2 game joins=@1/@2 veces unido
 | 
			
		||||
Bankier=Banquero
 | 
			
		||||
Constructor=Constructor
 | 
			
		||||
Show, clear, disable or enable your achievements=Mostrar, limpiar, deshabilitar o habilitar tus logros
 | 
			
		||||
You have disabled your achievements.=Has deshabilitado tus logros.
 | 
			
		||||
You have enabled your achievements.=Has habilitado tus logros.
 | 
			
		||||
<achievement ID>=<ID logro>
 | 
			
		||||
Show details of an achievement=Muestra los detalles de un logro
 | 
			
		||||
Achievement not found.=Logro no encontrado.
 | 
			
		||||
Get the achievements statistics for the given player or yourself=Obtener las estadísticas y logros del jugador dado
 | 
			
		||||
							
								
								
									
										260
									
								
								locale/awards.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								locale/awards.fr.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,260 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=Réussite atteinte !
 | 
			
		||||
Award Unlocked: %s=Réussite atteinte : %s
 | 
			
		||||
Secret Award Unlocked!=Réussite secrète atteinte !
 | 
			
		||||
Secret Award Unlocked: %s=Réussite secrète atteinte : %s
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=Un chat dans un Pop-Tart ?!
 | 
			
		||||
Architect=Architecte
 | 
			
		||||
Aspiring Farmer=Apprenti·e Agricult.eur.rice
 | 
			
		||||
Backpacker=Randonneu·r·se
 | 
			
		||||
Baker=Boulang·er·ère
 | 
			
		||||
Banker=Banqui·er·ère
 | 
			
		||||
Bricker=Briqueu·r·se
 | 
			
		||||
Build a Cave=Construis une grotte
 | 
			
		||||
Builder=Bâtisseu·r·se
 | 
			
		||||
Burn to death in a fire.=Brûlé.e mort.
 | 
			
		||||
Castorama=Castorama
 | 
			
		||||
Craft 10 furnaces.=Construis 10 fours.
 | 
			
		||||
Craft 10 mese lamps.=Fabrique 10 lampes de mese.
 | 
			
		||||
Craft 100 obsidian bricks.=Confectionne 100 briques d'obsidienne.
 | 
			
		||||
Craft 100 sandstone bricks.=Confectionne 100 briques de roche de sable.
 | 
			
		||||
Craft 100 sticks.=Confectionne 100 bâtons.
 | 
			
		||||
Craft 100 white dyes.=Prépare 100 teintures blanches.
 | 
			
		||||
Craft 14 vessels shelves.=Fabrique 14 vaisseliers.
 | 
			
		||||
Craft 15 chests.=Fabrique 15 coffres.
 | 
			
		||||
Craft 15 fancy beds.=Construis 15 lits chics.
 | 
			
		||||
Craft 200 brick blocks.=Confectionne 200 blocs de brique.
 | 
			
		||||
Craft 200 stone bricks.=Confectionne 200 briques de pierre.
 | 
			
		||||
Craft 24 gold block stairs.=Construis 24 escaliers en or.
 | 
			
		||||
Craft 250 white wool.=Confectionne 250 blocs de laine blanche.
 | 
			
		||||
Craft 3,200 stone bricks.=Confectionne 3200 briques de pierre.
 | 
			
		||||
Craft 30 locked chests.=Fabrique 30 coffres verrouillés.
 | 
			
		||||
Craft 4 large bags.=Confectionne 4 grands sacs
 | 
			
		||||
Craft 400 blue dyes.=Prépare 400 teintures bleues.
 | 
			
		||||
Craft 400 desert stone bricks.=Confectionne 400 briques de pierre du désert.
 | 
			
		||||
Craft 400 red dyes.=Prépare 400 teintures rouges.
 | 
			
		||||
Craft 400 yellow dyes.=Prépare 400 teintures jaunes.
 | 
			
		||||
Craft 500 times oil extract.=Prépare 500 fois de l'extrait d'huile.
 | 
			
		||||
Craft 7 bookshelves.=Fabrique 7 bibliothèques.
 | 
			
		||||
Craft 8 times flint and steel.=Fabrique 8 briquets.
 | 
			
		||||
Craft 800 stone bricks.=Confectionne 800 briques de pierre.
 | 
			
		||||
Craft a diamond block.=Confectionne un bloc de diamant.
 | 
			
		||||
Crafter of Sticks=Fabriquant·e de bâtons.
 | 
			
		||||
Dandelions are Yellow=Les pissenlits sont jaunes.
 | 
			
		||||
Death in the Deeps=Mort.e dans les profondeurs.
 | 
			
		||||
Desert Discoverer=Expolrat·eur·rice du Désert.
 | 
			
		||||
Desert Dweller=Habitant·e du désert
 | 
			
		||||
Die 100 times.=Mort 100 fois.
 | 
			
		||||
Die above 10000=Mort.e au dessus de 10000 blocs d'altitude
 | 
			
		||||
Die below -10000=Mort.e plus profond que -10000 blocs.
 | 
			
		||||
Die in flowing lava.=Mort.e dans une coulée de lave.
 | 
			
		||||
Die near bones.=Mort.e près d'os.
 | 
			
		||||
Die near diamond ore.=Mort.e près de diamands.
 | 
			
		||||
Dig 1,000 copper ores.=Creuse 1000 minerais de cuivre.
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Creuse 1000 blocs d'arbre de jungle.
 | 
			
		||||
Dig 1,000 sand.=Creuse 1000 blocs de sable.
 | 
			
		||||
Dig 1,000 stone blocks.=Creuse 1000 blocs de pierre.
 | 
			
		||||
Dig 1,296 tree blocks.=Creuse 1296 blocs d'arbre.
 | 
			
		||||
Dig 10,000 stone blocks.=Creuse 10000 blocs de pierre.
 | 
			
		||||
Dig 100 jungle tree blocks.=Creuse 100 blocs d'arbres de jungle.
 | 
			
		||||
Dig 100 stone blocks.=Creuse 100 blocs de pierre.
 | 
			
		||||
Dig 216 tree blocks.=Creuse 216 blocs d'arbre.
 | 
			
		||||
Dig 36 tree blocks.=Creuse 36 blocs d'arbre.
 | 
			
		||||
Dig 6 tree blocks.=Creuse 6 blocs d'arbre.
 | 
			
		||||
Eat 10 loaves of bread.=Mange 10 miches de pain.
 | 
			
		||||
Eat 3 brown mushrooms.=Mange 3 champignons marrons.
 | 
			
		||||
Eat 33 brown mushrooms.=Mange 33 champignons marrons.
 | 
			
		||||
Eat 333 brown mushrooms.=Mange 333 champignons marrons.
 | 
			
		||||
Eat 80 apples.=Mange 80 pommes.
 | 
			
		||||
Electical Engineer=Ingénieur.e électrique
 | 
			
		||||
Engineer=Ingénieur.e
 | 
			
		||||
Factory=Usine
 | 
			
		||||
Far Lands=Terres lointaines
 | 
			
		||||
Farming Skills Acquired=Compétences agricoles acquises
 | 
			
		||||
Field Worker=Travailleu·r·se agricole
 | 
			
		||||
Filthy Rich=Richissime
 | 
			
		||||
Firefighter=Pompier
 | 
			
		||||
First Day in the Woods=Premier jour dans les bois
 | 
			
		||||
First Gold Find=Première pépite d'or
 | 
			
		||||
First Mese Find=Première pépite de mese
 | 
			
		||||
Fortress=Forteresse
 | 
			
		||||
Geraniums are Blue=Les geraniums sont bleus
 | 
			
		||||
Girl's Best Friend=Girl's Best Friend
 | 
			
		||||
Glacier Discoverer=Découvreu·r·se de glacier
 | 
			
		||||
Glasser=Verri·er·ère
 | 
			
		||||
Gold Rush=Ruée vers l'or
 | 
			
		||||
Grasslands Discoverer=Découvreu·r·se de prairies
 | 
			
		||||
Graveyard=Cimetière
 | 
			
		||||
Hardened Miner=Mineu·r·se endurci·e
 | 
			
		||||
Hardest Block on Earth=Le bloc le plus dur du monde
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Récolte 125 plants de blé à maturité.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Récolte 25 plants de blé à maturité.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Récolte 625 plants de blé à maturité.
 | 
			
		||||
Harvest a fully grown wheat plant.=Récolte un plant de blé à maturité.
 | 
			
		||||
Hotelier=Hoteli·er·ère
 | 
			
		||||
House of Obsidian=La Maison d'obsidienne
 | 
			
		||||
In space, no one can hear you scream=Personne ne t'entend dans l'espace
 | 
			
		||||
In the Dungeon=Dans le donjon
 | 
			
		||||
In the Flow=Dans la coulée
 | 
			
		||||
Industrial Age=Âge Industriel
 | 
			
		||||
Item transporter=Transport automatisé
 | 
			
		||||
Jungle Discoverer=Explorat·eur·rice de la jungle
 | 
			
		||||
Junglebaby=Enfant de la jungle
 | 
			
		||||
Jungleman=Personne de la jungle
 | 
			
		||||
Lava Miner=Mineu·r·se de lave
 | 
			
		||||
Lava and Water=La lave et l'eau
 | 
			
		||||
Light It Up=Eclairé·e
 | 
			
		||||
Little Library=Petite bibliothèque
 | 
			
		||||
Long Ladder=Longue Échelle
 | 
			
		||||
Lumberjack=Bûcheron·ne
 | 
			
		||||
Marchand De Sable=Marchand·e de sable
 | 
			
		||||
Master Architect=Maître·sse architecte
 | 
			
		||||
Master Miner=Maître·sse mineu·r·se
 | 
			
		||||
Mese Mastery=Maîtrise du mese
 | 
			
		||||
Mine 18 diamond ores.=Mine 18 diamants.
 | 
			
		||||
Mine 45 gold ores.=Mine 45 minerais d'or.
 | 
			
		||||
Mine 50 obsidian.=Mine 50 pierres d'obsidienne.
 | 
			
		||||
Mine a mese block.=Mine un bloc de mese.
 | 
			
		||||
Mine a mossy cobblestone.=Mine un bloc de pavés moussus.
 | 
			
		||||
Mine a nyan cat.=Mine un nyan cat.
 | 
			
		||||
Mine any block while being very close to lava.=Mine n'importe quel bloc à proximité de la lave.
 | 
			
		||||
Mine some dry grass.=Ramasse de l'herbe sèche.
 | 
			
		||||
Mine some grass.=Ramasse de l'herbe.
 | 
			
		||||
Mine your first cactus.=Mine ton premier catus.
 | 
			
		||||
Mine your first diamond ore.=Mine ton premier diamant.
 | 
			
		||||
Mine your first dry shrub.=Coupe ton premier arbuste sec.
 | 
			
		||||
Mine your first gold ore.=Mine ton premier minerai d'or.
 | 
			
		||||
Mine your first ice.=Creuse ton premier bloc de glace.
 | 
			
		||||
Mine your first jungle grass.=Ramasse ta première herbe de jungle.
 | 
			
		||||
Mine your first mese ore.=Mine ton premier minerai de mese.
 | 
			
		||||
Mine your first obsidian.=Mine ton premier bloc d'obsidienne.
 | 
			
		||||
Mini Miner=Mini Mineu·r·se
 | 
			
		||||
Mushroom Lover=Adorat·eur·rice de champignons
 | 
			
		||||
Obsessed with Obsidian=Obsédé·e par l'obsidienne
 | 
			
		||||
Oil Tycoon=Magnat.e de l'huile
 | 
			
		||||
On The Way=Sur la voie
 | 
			
		||||
Outpost=Poste avancé
 | 
			
		||||
Pharaoh=Pharaon
 | 
			
		||||
Place 1,000 torches.=Place 1000 torches.
 | 
			
		||||
Place 100 rails.=Place 100 rails.
 | 
			
		||||
Place 100 stone.=Place 100 pierres.
 | 
			
		||||
Place 100 torches.=Place 100 torches.
 | 
			
		||||
Place 10000 tubes.=Place 10000 tubes.
 | 
			
		||||
Place 2 trap stones.=Place 2 pièges de pierre.
 | 
			
		||||
Place 20 coal checkers.=Place 20 damiers de charbon.
 | 
			
		||||
Place 20 iron checkers.=Place 20 damiers de fer.
 | 
			
		||||
Place 40 steel ladders.=Place 40 échelles métalliques.
 | 
			
		||||
Place 400 wooden ladders.=Place 400 échelles en bois.
 | 
			
		||||
Place 5 autocrafters.=Place 5 auto-constructeurs.
 | 
			
		||||
Place 500 mesecon wires.=Place 500 fils de mesecon.
 | 
			
		||||
Place two snow blocks.=Place deux blocs de neige.
 | 
			
		||||
Professional Lumberjack=Bûcheron·ne professionnel·le
 | 
			
		||||
Put out 1000 fires.=Éteint 1000 feux.
 | 
			
		||||
Pyromaniac=Pyromane
 | 
			
		||||
Really Well Lit=Vraiment vien éclairé
 | 
			
		||||
Roses Are Red=Les roses sont rouges
 | 
			
		||||
Saint-Maclou=Saint-Maclou
 | 
			
		||||
Sam the Trapper=Sam le trappeur
 | 
			
		||||
Savannah Discoverer=Explorat·eur·rice de la savanne
 | 
			
		||||
Semi-pro Lumberjack=Bûcheron.ne semi-professionnel.le.
 | 
			
		||||
Smelter=Fondeu·r·se
 | 
			
		||||
Tasty Mushrooms=Délicieux champignons
 | 
			
		||||
This is Sad=Quel tristesse
 | 
			
		||||
Treasurer=Trésori·er·ère
 | 
			
		||||
Underground Mushroom Farmer=Agricult.eur.rice de champignons sous-terrain
 | 
			
		||||
Very Simple Snow Man=Bonhomme de neige rudimentaire
 | 
			
		||||
Watchtower=Tour de garde
 | 
			
		||||
Well Lit=Bien éclairé
 | 
			
		||||
Wheat Magnate=Magnat·e du blé
 | 
			
		||||
White Color Stock=Chaussettes blanches
 | 
			
		||||
Wool Over Your Eyes=De la laines dans tes yeux
 | 
			
		||||
Wow, I am Diamonds!=Wow, je suis diamants!
 | 
			
		||||
You Suck!=Tu es terrible !
 | 
			
		||||
You're a witch!=Tu es un.e sorci.er.ère
 | 
			
		||||
You’re a copper=Faîtes jouer les cuivres
 | 
			
		||||
Yummy!=Miam !
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=<Numéro de réussite>
 | 
			
		||||
<name>=<nom>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Tous vos trophées et statistiques ont été réinitialisés. Vous pouvez recommencer à nouveau.
 | 
			
		||||
Award not found.=Réussite introuvable.
 | 
			
		||||
Get the awards statistics for the given player or yourself=Obtenir les statistiques de réussite pour un.e joueu.r.se donné.e ou vous même
 | 
			
		||||
Show details of an award=Montrer les détails d'une réussite
 | 
			
		||||
Show, clear, disable or enable your awards=Montrer, effacer, désactiver ou activer vos réussites
 | 
			
		||||
You have disabled awards.=Vous avez désactivé les réussites.
 | 
			
		||||
You have enabled awards.=Vous avez activé les réussites.
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable] (c|effacer|désactiver|activer)
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=Les trophées de %s :
 | 
			
		||||
(Secret Award)=(Trophée Secret)
 | 
			
		||||
@1 (unlocked)=@1 (acquise)
 | 
			
		||||
Awards=Trophées
 | 
			
		||||
Error: No achivements available.=Erreur : aucune réussite disponible.
 | 
			
		||||
Error: No award available.=Erreur : aucun trophée disponible.
 | 
			
		||||
OK=OK
 | 
			
		||||
Unlock this award to find out what it is.=Débloque ce trophée pour découvrir ce que c'est.
 | 
			
		||||
You have not unlocked any awards.=Vous n'avez encore débloqué aucun trophée.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Vous avez désactivé les trophées. Tapez '/awards enable' pour les réactiver.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1/@2 messages
 | 
			
		||||
@1/@2 crafted=@1/@2 créé
 | 
			
		||||
@1/@2 deaths=@1/@2 morts
 | 
			
		||||
@1/@2 dug=@1/@2 creusés
 | 
			
		||||
@1/@2 eaten=@1/@2 mangés
 | 
			
		||||
@1/@2 joins=@1/@2 arrivées
 | 
			
		||||
@1/@2 placed=@1/@2 placés
 | 
			
		||||
Chat @1 times=@1 messages envoyés
 | 
			
		||||
Craft @1 item=Crée @1 item
 | 
			
		||||
Craft @1 items.=Crée @1 items.
 | 
			
		||||
Craft: @1×@2=Création : @1×@2
 | 
			
		||||
Craft: @2=Création : @2
 | 
			
		||||
Die @1 times of @2=Mort.e @1 de @2 fois
 | 
			
		||||
Die @1 times.=Mort.e @1 fois.
 | 
			
		||||
Die once of @2=Mort.e une de @2 fois
 | 
			
		||||
Eat @1 item=Mange @1 aliment
 | 
			
		||||
Eat @1 items.=Mange @1 aliments.
 | 
			
		||||
Eat @1×@2=Mange @1×@2
 | 
			
		||||
Eat @2=Mange @2
 | 
			
		||||
Join @1 times=Rejoindre @1 fois
 | 
			
		||||
Join once=Rejoindre une fois
 | 
			
		||||
Mine @1 block.=Mine @1 bloc.
 | 
			
		||||
Mine @1 blocks.=Mine @1 blocs.
 | 
			
		||||
Mine @1 times=Mine @1 fois
 | 
			
		||||
Mine: @1×@2=Mine: @1×@2
 | 
			
		||||
Mine: @2=Mine: @2
 | 
			
		||||
Place @1 block.=Place @1 bloc.
 | 
			
		||||
Place @1 blocks.=Place @1 blocs.
 | 
			
		||||
Place: @1×@2=Place: @1×@2
 | 
			
		||||
Place: @2=Place: @2
 | 
			
		||||
Send a chat message=Envoit un message
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
%s (unlocked)=%s (acquise)
 | 
			
		||||
%s: %s=%s : %s
 | 
			
		||||
Secret Achievement Unlocked:=Réussite Secrète Débloquée :
 | 
			
		||||
Achievement Unlocked:=Réussite Débloquée :
 | 
			
		||||
Secret Achievement Unlocked: %s=Réussite Secrète Débloquée : %s
 | 
			
		||||
Achievement Unlocked: %s=Réussite Débloquée : %s
 | 
			
		||||
Secret Achievement Unlocked!=Réussite Secrète Débloquée !
 | 
			
		||||
Achievement Unlocked!=Réussite Débloquée !
 | 
			
		||||
Error: No awards available.=Erreur : Aucun trophée disponible
 | 
			
		||||
%s (got)=%s (obtenu)
 | 
			
		||||
@1/@2 game joins=@1/@2 connexions
 | 
			
		||||
Bankier=Banqui·er·ère
 | 
			
		||||
Constructor=Construct·eur·rice
 | 
			
		||||
Show, clear, disable or enable your achievements=Affiche, réinitialise, désactive ou active vos réussites.
 | 
			
		||||
You have disabled your achievements.=Vous avez désactivé vos réussites.
 | 
			
		||||
You have enabled your achievements.=Vous avez activé vos réussites.
 | 
			
		||||
<achievement ID>=<réussite ID>
 | 
			
		||||
Show details of an achievement=Afficher les détails d'une réussite
 | 
			
		||||
Achievement not found.=Réussite non trouvée.
 | 
			
		||||
Get the achievements statistics for the given player or yourself=Obtenez les statistiques des réussites d'un joueur donné ou de vous-même
 | 
			
		||||
							
								
								
									
										259
									
								
								locale/awards.hu.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								locale/awards.hu.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,259 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=Elnyertél egy kitüntetést!
 | 
			
		||||
Award Unlocked: %s=Elnyert kitüntetés: %s
 | 
			
		||||
Secret Award Unlocked!=Elnyertél egy titkos kitüntetést!
 | 
			
		||||
Secret Award Unlocked: %s=Elnyert titkos kitüntetés: %s
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=Egy macska Pop-Tartban?!
 | 
			
		||||
Architect=Építész
 | 
			
		||||
Aspiring Farmer=Feltörekvő földműves
 | 
			
		||||
Backpacker=Hátizsákos turista
 | 
			
		||||
Baker=Pék
 | 
			
		||||
Banker=Bankár
 | 
			
		||||
Bricker=Téglamester
 | 
			
		||||
Build a Cave=Barlangépítő
 | 
			
		||||
Builder=Építőmunkás
 | 
			
		||||
Burn to death in a fire.=Égj el tűzben.
 | 
			
		||||
Castorama=Öntőmester
 | 
			
		||||
Craft 10 furnaces.=Készíts 10 kohót.
 | 
			
		||||
Craft 10 mese lamps.=Készíts 10 mese-lámpát.
 | 
			
		||||
Craft 100 obsidian bricks.=Készíts 100 obszidiántéglát.
 | 
			
		||||
Craft 100 sandstone bricks.=Készíts 100 homokkő-téglát.
 | 
			
		||||
Craft 100 sticks.=Készíts 100 botot.
 | 
			
		||||
Craft 100 white dyes.=Készíts 100 fehér festéket.
 | 
			
		||||
Craft 14 vessels shelves.=Készíts 14 poharas polcot.
 | 
			
		||||
Craft 15 chests.=Készíts 15 ládát.
 | 
			
		||||
Craft 15 fancy beds.=Készíts 15 elegáns ágyat.
 | 
			
		||||
Craft 200 brick blocks.=Készíts 200 téglablokkot.
 | 
			
		||||
Craft 200 stone bricks.=Készíts 200 kőblokkot.
 | 
			
		||||
Craft 24 gold block stairs.=Készíts 24 aranyblokk-lépcsőt.
 | 
			
		||||
Craft 250 white wool.=Készíts 250 fehér gyapjút.
 | 
			
		||||
Craft 3,200 stone bricks.=Készíts 3.200 kőtéglát.
 | 
			
		||||
Craft 30 locked chests.=Készíts 30 zárt ládát.
 | 
			
		||||
Craft 4 large bags.=Készíts 4 nagy hátizsákot.
 | 
			
		||||
Craft 400 blue dyes.=Készíts 400 kék festékanyagot.
 | 
			
		||||
Craft 400 desert stone bricks.=Készíts 400 sivatagi kő-téglát.
 | 
			
		||||
Craft 400 red dyes.=Készíts 400 vörös festéket.
 | 
			
		||||
Craft 400 yellow dyes.=Készíts 400 sárga festéket.
 | 
			
		||||
Craft 500 times oil extract.=Készíts 500 olajkivonatot.
 | 
			
		||||
Craft 7 bookshelves.=Készíts 7 könyvespolcot.
 | 
			
		||||
Craft 8 times flint and steel.=Készíts 8 kovakövet acéllal.
 | 
			
		||||
Craft 800 stone bricks.=Készíts 800 kőtéglát.
 | 
			
		||||
Craft a diamond block.=Készíts egy gyémántblokkot.
 | 
			
		||||
Crafter of Sticks=Botcsinálta botcsináló
 | 
			
		||||
Dandelions are Yellow=A gyermekláncfű sárga
 | 
			
		||||
Death in the Deeps=Halál a mélyben
 | 
			
		||||
Desert Discoverer=Sivatagi nomád
 | 
			
		||||
Desert Dweller=Sivataglakó
 | 
			
		||||
Die 100 times.=Halj meg százszor.
 | 
			
		||||
Die above 10000=Halj meg 10.000 fölött.
 | 
			
		||||
Die below -10000=Halj meg -10.000 alatt.
 | 
			
		||||
Die in flowing lava.=Halj meg folyó lávában.
 | 
			
		||||
Die near bones.=Halj meg csontok közelében.
 | 
			
		||||
Die near diamond ore.=Halj meg gyémántérc közelében.
 | 
			
		||||
Dig 1,000 copper ores.=Bányássz ki 1.000 rézércet.
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Vágj ki 1.000 dzsungelfa-blokkot.
 | 
			
		||||
Dig 1,000 sand.=Áss ki 1.000 homokblokkot.
 | 
			
		||||
Dig 1,000 stone blocks.=Áss ki 1.000 követ.
 | 
			
		||||
Dig 1,296 tree blocks.=Vágj ki 1.296 fablokkot.
 | 
			
		||||
Dig 10,000 stone blocks.=Bányássz ki 10.000 kőblokkot.
 | 
			
		||||
Dig 100 jungle tree blocks.=Vágj ki 100 dzsungelfa-blokkot.
 | 
			
		||||
Dig 100 stone blocks.=Fejts ki 100 kőblokkot.
 | 
			
		||||
Dig 216 tree blocks.=Vágj ki 216 fablokkot.
 | 
			
		||||
Dig 36 tree blocks.=Vágj ki 36 fablokkot.
 | 
			
		||||
Dig 6 tree blocks.=Vágj ki 6 fablokkot.
 | 
			
		||||
Eat 10 loaves of bread.=Egyél meg 10 kenyeret.
 | 
			
		||||
Eat 3 brown mushrooms.=Egyél meg 3 barna gombát.
 | 
			
		||||
Eat 33 brown mushrooms.=Egyél meg 33 barna gombát.
 | 
			
		||||
Eat 333 brown mushrooms.=Egyél meg 333 barna gombát.
 | 
			
		||||
Eat 80 apples.=Egyél meg 80 almát.
 | 
			
		||||
Electical Engineer=Elektromérnök
 | 
			
		||||
Engineer=Mérnök
 | 
			
		||||
Factory=Gyár
 | 
			
		||||
Far Lands=Messzi tájakon
 | 
			
		||||
Farming Skills Acquired=Földművestanonc
 | 
			
		||||
Field Worker=A kaszás
 | 
			
		||||
Filthy Rich=Kőgazdag
 | 
			
		||||
Firefighter=Tűzoltó
 | 
			
		||||
First Day in the Woods=Első nap az erdőben
 | 
			
		||||
First Gold Find=Első arany
 | 
			
		||||
First Mese Find=Első mese
 | 
			
		||||
Fortress=Végvár
 | 
			
		||||
Geraniums are Blue=A gólyaorr kék
 | 
			
		||||
Girl's Best Friend=Lányok legjobb barátja
 | 
			
		||||
Glacier Discoverer=Gleccserjáró
 | 
			
		||||
Glasser=Üveges
 | 
			
		||||
Gold Rush=Aranyláz
 | 
			
		||||
Grasslands Discoverer=Az alföldi rónaságon
 | 
			
		||||
Graveyard=Temető
 | 
			
		||||
Hardened Miner=Veterán bányász
 | 
			
		||||
Hardest Block on Earth=A legkeményebb blokk a Földön.
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Arass le 125 teljesen érett búzát.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Arass le 25 teljesen érett búzát.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Arass le 625 teljesen érett búzát.
 | 
			
		||||
Harvest a fully grown wheat plant.=Arass le egy teljesen érett búzát.
 | 
			
		||||
Hotelier=Szállodatulajdonos
 | 
			
		||||
House of Obsidian=Obszidiánház
 | 
			
		||||
In space, no one can hear you scream=Az űrben senki nem hallja a sikolyodat
 | 
			
		||||
In the Dungeon=Tömlöcben
 | 
			
		||||
In the Flow=Flow-élmény
 | 
			
		||||
Industrial Age=Ipari forradalom
 | 
			
		||||
Item transporter=Tárgyszállító
 | 
			
		||||
Jungle Discoverer=Dzsungeljáró
 | 
			
		||||
Junglebaby=A dzsungel gyermeke
 | 
			
		||||
Jungleman=A dzsungel felnőttje
 | 
			
		||||
Lava Miner=Lávabányász
 | 
			
		||||
Lava and Water=Láva és víz
 | 
			
		||||
Light It Up=Legyen világosság!
 | 
			
		||||
Little Library=Kis könyvtár
 | 
			
		||||
Long Ladder=Hosszú létra
 | 
			
		||||
Lumberjack=Favágó
 | 
			
		||||
Marchand De Sable=Álommanó
 | 
			
		||||
Master Architect=Építészmester
 | 
			
		||||
Master Miner=Mesterbányász
 | 
			
		||||
Mese Mastery=Mese-mester
 | 
			
		||||
Mine 18 diamond ores.=Bányássz ki 18 gyémántot.
 | 
			
		||||
Mine 45 gold ores.=Bányássz ki 45 aranyrögöt.
 | 
			
		||||
Mine 50 obsidian.=Bányássz ki 50 obszidiánt.
 | 
			
		||||
Mine a mese block.=Bányássz ki egy mese-blokkot.
 | 
			
		||||
Mine a mossy cobblestone.=Gyűjts be egy mohos macskakő-blokkot.
 | 
			
		||||
Mine a nyan cat.=Gyűjtsd be egy Nyan macskát.
 | 
			
		||||
Mine any block while being very close to lava.=Bányássz ki egy blokkot úgy, hogy közben nagyon közel állsz lávához.
 | 
			
		||||
Mine some dry grass.=Gyűjts be némi száraz füvet.
 | 
			
		||||
Mine some grass.=Gyűjts be némi füvet.
 | 
			
		||||
Mine your first cactus.=Gyűjtsd be az első kaktuszodat.
 | 
			
		||||
Mine your first diamond ore.=Bányászd ki az első gyémántodat.
 | 
			
		||||
Mine your first dry shrub.=Gyűjtsd be az első elszáradt bozótodat.
 | 
			
		||||
Mine your first gold ore.=Bányászd ki az első aranyrögödet.
 | 
			
		||||
Mine your first ice.=Gyűjtsd be az első jégblokkodat.
 | 
			
		||||
Mine your first jungle grass.=Gyűjtsd be az első dzsungelfüvedet.
 | 
			
		||||
Mine your first mese ore.=Bányászd ki az első mese-ércedet.
 | 
			
		||||
Mine your first obsidian.=Bányászd ki az első obszidiánodat.
 | 
			
		||||
Mini Miner=Mini bányász
 | 
			
		||||
Mushroom Lover=Gombarát
 | 
			
		||||
Obsessed with Obsidian=Obszesszió
 | 
			
		||||
Oil Tycoon=Jockey Ewing
 | 
			
		||||
On The Way=Úton
 | 
			
		||||
Outpost=Helyőrség
 | 
			
		||||
Pharaoh=Fáraó
 | 
			
		||||
Place 1,000 torches.=Állíts 1.000 fáklyát.
 | 
			
		||||
Place 100 rails.=Fektess le 100 sínt.
 | 
			
		||||
Place 100 stone.=Helyezz el 100 követ.
 | 
			
		||||
Place 100 torches.=Állíts 100 fáklyát.
 | 
			
		||||
Place 10000 tubes.=Helyezz el 10.000 csövet.
 | 
			
		||||
Place 2 trap stones.=Helyezz el 2 zúzott követ.
 | 
			
		||||
Place 20 coal checkers.=Helyezz el 20 szén sakktábla-mintát.
 | 
			
		||||
Place 20 iron checkers.=Helyezz el 20 vas sakktábla-mintát.
 | 
			
		||||
Place 40 steel ladders.=Helyezz el 40 acéllétrát.
 | 
			
		||||
Place 400 wooden ladders.=Helyezz el 400 falépcsőt.
 | 
			
		||||
Place 5 autocrafters.=Telepíts 5 automata gyártót.
 | 
			
		||||
Place 500 mesecon wires.=Fektess le 500 mesecon kábelt.
 | 
			
		||||
Place two snow blocks.=Helyezz el két hóblokkot.
 | 
			
		||||
Professional Lumberjack=Profi favágó
 | 
			
		||||
Put out 1000 fires.=Olts el 1.000 tüzet.
 | 
			
		||||
Pyromaniac=Piromán
 | 
			
		||||
Really Well Lit=Megvilágosodás
 | 
			
		||||
Roses Are Red=A rózsa vörös
 | 
			
		||||
Saint-Maclou=Saint-Maclou
 | 
			
		||||
Sam the Trapper=Sam, a csapdaállító
 | 
			
		||||
Savannah Discoverer=Szavannai nomád
 | 
			
		||||
Semi-pro Lumberjack=Félprofi favágó
 | 
			
		||||
Smelter=Olvasztár
 | 
			
		||||
Tasty Mushrooms=Fincsi gombák
 | 
			
		||||
This is Sad=Ez bizony szomorú
 | 
			
		||||
Treasurer=Kincstárnok
 | 
			
		||||
Underground Mushroom Farmer=Földalatti gombatermesztő
 | 
			
		||||
Very Simple Snow Man=Minimalista hóember
 | 
			
		||||
Watchtower=Őrtorony
 | 
			
		||||
Well Lit=Fényáradat
 | 
			
		||||
Wheat Magnate=Búzamágnás
 | 
			
		||||
White Color Stock=Feneketlen fehérség
 | 
			
		||||
Wool Over Your Eyes=Gyapjútakaró
 | 
			
		||||
Wow, I am Diamonds!=Gyémánt fokozatú bányász
 | 
			
		||||
You Suck!=Ezt megszívtad!
 | 
			
		||||
You're a witch!=Boszorkány vagy!
 | 
			
		||||
You’re a copper=Üdv a rezesbandában!
 | 
			
		||||
Yummy!=Nyami!
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=<kitüntetés ID>
 | 
			
		||||
<name>=<név>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Minden kitüntetésed és statisztikád törölve. Kezdheted elölről.
 | 
			
		||||
Award not found.=Kitüntetés nem található.
 | 
			
		||||
Get the awards statistics for the given player or yourself=Kitüntetés-statisztikák lekérdezése a megadott játékosról vagy önmagadról.
 | 
			
		||||
Show details of an award=Mutasd egy kitüntetés részleteit.
 | 
			
		||||
Show, clear, disable or enable your awards=Mutasd, töröld, tiltsd le vagy engedélyezd a kitüntetéseidet.
 | 
			
		||||
You have disabled awards.=Letiltottad a kitüntetéseket.
 | 
			
		||||
You have enabled awards.=Engedélyezted a kitüntetéseket.
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=%s kitüntetései:
 | 
			
		||||
(Secret Award)=(Titkos kitüntetés)
 | 
			
		||||
@1 (unlocked)=@1 (megszerezve)
 | 
			
		||||
Awards=Kitüntetések
 | 
			
		||||
Error: No achivements available.=Hiba: Nincsenek elérhető kitüntetések.
 | 
			
		||||
Error: No award available.=Hiba: Nincs elérhető kitüntetés.
 | 
			
		||||
OK=OK
 | 
			
		||||
Unlock this award to find out what it is.=Amint megszerzed ezt a kitüntetést, megtudod, hogy micsoda.
 | 
			
		||||
You have not unlocked any awards.=Még nincsenek kitüntetéseid.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Deaktiváltad a kitüntetéseket. Az »/awards enable« paranccsal aktiválhatod őket újra.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1/@2 chat-üzenetek
 | 
			
		||||
@1/@2 crafted=@1/@2 elkészítve
 | 
			
		||||
@1/@2 deaths=@1/@2 halál
 | 
			
		||||
@1/@2 dug=@1/@2 kifejtve
 | 
			
		||||
@1/@2 eaten=@1/@2 elfogyasztva
 | 
			
		||||
@1/@2 joins=@1/@2 összeillesztve
 | 
			
		||||
@1/@2 placed=@1/@2 elhelyezve
 | 
			
		||||
Chat @1 times=Chatelj @1 alkalommal.
 | 
			
		||||
Craft @1 item=Készíts @1 tárgyat.
 | 
			
		||||
Craft @1 items.=Készíts @1 tárgyat.
 | 
			
		||||
Craft: @1×@2=Készíts @1 @2-*t.
 | 
			
		||||
Craft: @2=Készíts @2-*t.
 | 
			
		||||
Die @1 times of @2=Halj meg @2-ből @1 alkalommal.
 | 
			
		||||
Die @1 times.=Halj meg @1 alkalommal.
 | 
			
		||||
Die once of @2=Halj meg egyszer @2-tól.
 | 
			
		||||
Eat @1 item=Egyél @1 falatot.
 | 
			
		||||
Eat @1 items.=Egyél @1 falatot.
 | 
			
		||||
Eat @1×@2=Egyél @1 @2-*t.
 | 
			
		||||
Eat @2=Egyél @2-*t.
 | 
			
		||||
Join @1 times=Csatlakozz @1 alkalommal.
 | 
			
		||||
Join once=Csatlakozz egyszer.
 | 
			
		||||
Mine @1 block.=Bányássz @1 blokkot.
 | 
			
		||||
Mine @1 blocks.=Bányássz @1 blokkot.
 | 
			
		||||
Mine @1 times=Bányássz @1 alkalommal.
 | 
			
		||||
Mine: @1×@2=Bányássz @1 @2-*t.
 | 
			
		||||
Mine: @2=Bányássz @2-*t.
 | 
			
		||||
Place @1 block.=Helyezz el @1 blokkot.
 | 
			
		||||
Place @1 blocks.=Helyezz el @1 blokkot.
 | 
			
		||||
Place: @1×@2=Helyezz el @1 @2-*t.
 | 
			
		||||
Place: @2=Helyezz el @2-*t.
 | 
			
		||||
Send a chat message=Küldj egy chat-üzenetet.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
%s: %s=%s: %s
 | 
			
		||||
Secret Achievement Unlocked:=Geheime Auszeichnung erhalten:
 | 
			
		||||
Achievement Unlocked:=Auszeichnung erhalten:
 | 
			
		||||
Secret Achievement Unlocked: %s=Geheime Auszeichnung erhalten: %s
 | 
			
		||||
Achievement Unlocked: %s=Auszeichnung erhalten: %s
 | 
			
		||||
Secret Achievement Unlocked!=Geheime Auszeichnung erhalten!
 | 
			
		||||
Achievement Unlocked!=Auszeichnung erhalten:
 | 
			
		||||
Error: No awards available.=Fehler: Keine Auszeichnungen vorhanden.
 | 
			
		||||
%s (got)=%s (erhalten)
 | 
			
		||||
@1/@2 game joins=@1/@2 Spielen beigetreten
 | 
			
		||||
Bankier=Bankier
 | 
			
		||||
Constructor=Konstrukteur
 | 
			
		||||
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.
 | 
			
		||||
<achievement ID>=<Auszeichnungs-ID>
 | 
			
		||||
Show details of an achievement=Details einer Auszeichnung anzeigen
 | 
			
		||||
Achievement not found.=Auszeichnung nicht gefunden.
 | 
			
		||||
Get the achievements statistics for the given player or yourself=Die Statistik der Auszeichnungen eines Spielers zeigen
 | 
			
		||||
							
								
								
									
										259
									
								
								locale/awards.pl.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								locale/awards.pl.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,259 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=
 | 
			
		||||
Award Unlocked: %s=
 | 
			
		||||
Secret Award Unlocked!=
 | 
			
		||||
Secret Award Unlocked: %s=
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=Kot w Pop-Tart?!
 | 
			
		||||
Architect=Architekt
 | 
			
		||||
Aspiring Farmer=Ambitny rolnik
 | 
			
		||||
Backpacker=Plecakowiec
 | 
			
		||||
Baker=Piekarz
 | 
			
		||||
Banker=
 | 
			
		||||
Bricker=Ceglarz
 | 
			
		||||
Build a Cave=Zbuduj jaskinię
 | 
			
		||||
Builder=Budowniczy
 | 
			
		||||
Burn to death in a fire.=
 | 
			
		||||
Castorama=Castorama
 | 
			
		||||
Craft 10 furnaces.=Stwórz 10 pieców.
 | 
			
		||||
Craft 10 mese lamps.=Stwórz 10 mese lamp.
 | 
			
		||||
Craft 100 obsidian bricks.=Stwórz 100 obsydianowych cegieł.
 | 
			
		||||
Craft 100 sandstone bricks.=Stwórz 100 cegieł z piaskowca.
 | 
			
		||||
Craft 100 sticks.=Stwórz 100 patyków.
 | 
			
		||||
Craft 100 white dyes.=Stwórz 100 białych barwników.
 | 
			
		||||
Craft 14 vessels shelves.=Stwórz 14 półek z naczyniami.
 | 
			
		||||
Craft 15 chests.=Stwórz 15 skrzyń.
 | 
			
		||||
Craft 15 fancy beds.=Stwórz 15 fantazyjnych łóżek.
 | 
			
		||||
Craft 200 brick blocks.=Stwórz 200 ceglanych bloków.
 | 
			
		||||
Craft 200 stone bricks.=Stwórz 200 kamiennych cegieł.
 | 
			
		||||
Craft 24 gold block stairs.=Stwórz 24 schody z bloków złota.
 | 
			
		||||
Craft 250 white wool.=Stwórz 250 białej wełny.
 | 
			
		||||
Craft 3,200 stone bricks.=Stwórz 3200 kamiennych cegieł.
 | 
			
		||||
Craft 30 locked chests.=Stwórz 30 zablokowanych skrzyń.
 | 
			
		||||
Craft 4 large bags.=Stwórz 4 duże plecaki.
 | 
			
		||||
Craft 400 blue dyes.=Stwórz 400 niebieskich barwników.
 | 
			
		||||
Craft 400 desert stone bricks.=Stwórz 400 cegieł z pustynnego kamienia.
 | 
			
		||||
Craft 400 red dyes.=Stwórz 400 czerwonych barwników.
 | 
			
		||||
Craft 400 yellow dyes.=Stwórz 400 żółtych barwników.
 | 
			
		||||
Craft 500 times oil extract.=
 | 
			
		||||
Craft 7 bookshelves.=Stwórz 7 półek na książki.
 | 
			
		||||
Craft 8 times flint and steel.=Stwórz krzesiwo 8 razy.
 | 
			
		||||
Craft 800 stone bricks.=Stwórz 800 kamiennych cegieł.
 | 
			
		||||
Craft a diamond block.=Stwórz diamentowy blok.
 | 
			
		||||
Crafter of Sticks=Twórca patyków
 | 
			
		||||
Dandelions are Yellow=Mlecze są żółte
 | 
			
		||||
Death in the Deeps=
 | 
			
		||||
Desert Discoverer=Odkrywca pustyni
 | 
			
		||||
Desert Dweller=Mieszkaniec pustyni
 | 
			
		||||
Die 100 times.=
 | 
			
		||||
Die above 10000=
 | 
			
		||||
Die below -10000=
 | 
			
		||||
Die in flowing lava.=
 | 
			
		||||
Die near bones.=
 | 
			
		||||
Die near diamond ore.=
 | 
			
		||||
Dig 1,000 copper ores.=Wykop 1000 rudy miedzi.
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Wykop 1000 bloków drzewa dżunglowego.
 | 
			
		||||
Dig 1,000 sand.=Wykop 1000 piasku.
 | 
			
		||||
Dig 1,000 stone blocks.=Wykop 1000 kamiennych bloków.
 | 
			
		||||
Dig 1,296 tree blocks.=Wykop 1296 bloków.
 | 
			
		||||
Dig 10,000 stone blocks.=Wykop 10 000 kamiennych bloków.
 | 
			
		||||
Dig 100 jungle tree blocks.=Wykop 100 bloków drzewa dżunglowego.
 | 
			
		||||
Dig 100 stone blocks.=Wykop 100 kamiennych bloków.
 | 
			
		||||
Dig 216 tree blocks.=Wykop 216 bloków drzewa.
 | 
			
		||||
Dig 36 tree blocks.=Wykop 36 bloków drzewa.
 | 
			
		||||
Dig 6 tree blocks.=Wykop 6 bloków drewna.
 | 
			
		||||
Eat 10 loaves of bread.=Zjedz 10 bochenków chleba.
 | 
			
		||||
Eat 3 brown mushrooms.=Zjedz 3 brązowe grzyby.
 | 
			
		||||
Eat 33 brown mushrooms.=Zjedz 33 brązowe grzyby.
 | 
			
		||||
Eat 333 brown mushrooms.=Zjedz 333 brązowe grzyby.
 | 
			
		||||
Eat 80 apples.=Zjedz 80 jabłek.
 | 
			
		||||
Electical Engineer=
 | 
			
		||||
Engineer=
 | 
			
		||||
Factory=
 | 
			
		||||
Far Lands=Odległe lądy
 | 
			
		||||
Farming Skills Acquired=Nabyto umiejętności rolnicze
 | 
			
		||||
Field Worker=Pracownik na polu
 | 
			
		||||
Filthy Rich=Obrzydliwie bogaty
 | 
			
		||||
Firefighter=Strażak
 | 
			
		||||
First Day in the Woods=Pierwszy dzień w lesie
 | 
			
		||||
First Gold Find=Pierwsze znalezione złoto
 | 
			
		||||
First Mese Find=Pierwsze mese
 | 
			
		||||
Fortress=Forteca
 | 
			
		||||
Geraniums are Blue=Gerania są niebieskie
 | 
			
		||||
Girl's Best Friend=Najlepszy przyjaciel kobiety
 | 
			
		||||
Glacier Discoverer=Odkrywca lodowca
 | 
			
		||||
Glasser=Szklarz
 | 
			
		||||
Gold Rush=Gorączka złota
 | 
			
		||||
Grasslands Discoverer=Odkrywca terenów trawiastych
 | 
			
		||||
Graveyard=
 | 
			
		||||
Hardened Miner=Zatwardziały górnik
 | 
			
		||||
Hardest Block on Earth=Najtwardszy blok na ziemi
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Zbierz 125 w pełni dojrzałej pszenicy.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Zbierz 25 w pełni dojrzałej pszenicy.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Zbierz 625 w pełni dojrzałej pszenicy.
 | 
			
		||||
Harvest a fully grown wheat plant.=Zbierz w pełni dojrzałą pszenicę.
 | 
			
		||||
Hotelier=Hotelarz
 | 
			
		||||
House of Obsidian=Dom z obsydianu
 | 
			
		||||
In space, no one can hear you scream=
 | 
			
		||||
In the Dungeon=W lochu
 | 
			
		||||
In the Flow=
 | 
			
		||||
Industrial Age=Era przemysłowa
 | 
			
		||||
Item transporter=
 | 
			
		||||
Jungle Discoverer=Odkrywca dżungli
 | 
			
		||||
Junglebaby=Dziecko dżungli
 | 
			
		||||
Jungleman=Człowiek dżungli
 | 
			
		||||
Lava Miner=Górnik lawy
 | 
			
		||||
Lava and Water=Lawa i woda
 | 
			
		||||
Light It Up=Roznieć to
 | 
			
		||||
Little Library=Mała biblioteka
 | 
			
		||||
Long Ladder=Długa drabina
 | 
			
		||||
Lumberjack=Drwal
 | 
			
		||||
Marchand De Sable=Piaskowy dziadek
 | 
			
		||||
Master Architect=Mistrz architekt
 | 
			
		||||
Master Miner=Mistrz górnik
 | 
			
		||||
Mese Mastery=Mistrzostwo mese
 | 
			
		||||
Mine 18 diamond ores.=Wykop 18 diamentów.
 | 
			
		||||
Mine 45 gold ores.=Wykop 45 rud złota.
 | 
			
		||||
Mine 50 obsidian.=Wykop 50 obsydianów.
 | 
			
		||||
Mine a mese block.=Wykop blok mese.
 | 
			
		||||
Mine a mossy cobblestone.=Wykop omszałą kostkę brukową.
 | 
			
		||||
Mine a nyan cat.=Wykop kota nyan.
 | 
			
		||||
Mine any block while being very close to lava.=Wykop jakikolwiek blok będąc bardzo blisko lawy.
 | 
			
		||||
Mine some dry grass.=Wykop trochę wysuszonej trawy.
 | 
			
		||||
Mine some grass.=Wykop trochę trawy.
 | 
			
		||||
Mine your first cactus.=Wykop pierwszego kaktusa.
 | 
			
		||||
Mine your first diamond ore.=Wykop pierwszy diament.
 | 
			
		||||
Mine your first dry shrub.=Wykop pierwszy wysuszony krzak.
 | 
			
		||||
Mine your first gold ore.=Wykop pierwszą rudę złota.
 | 
			
		||||
Mine your first ice.=Wykop pierwszy lód.
 | 
			
		||||
Mine your first jungle grass.=Wykop pierwszą trawę dżunglową.
 | 
			
		||||
Mine your first mese ore.=Wykop pierwszą rudę mese.
 | 
			
		||||
Mine your first obsidian.=Wykop pierwszy obsydian.
 | 
			
		||||
Mini Miner=Mini górnik
 | 
			
		||||
Mushroom Lover=Wielbiciel grzybów
 | 
			
		||||
Obsessed with Obsidian=Obsesja na punkcie obsydianu
 | 
			
		||||
Oil Tycoon=
 | 
			
		||||
On The Way=W drodze
 | 
			
		||||
Outpost=Posterunek
 | 
			
		||||
Pharaoh=Faraon
 | 
			
		||||
Place 1,000 torches.=Postaw 1000 pochodni.
 | 
			
		||||
Place 100 rails.=Połóż 100 torów.
 | 
			
		||||
Place 100 stone.=Postaw 100 kamieni.
 | 
			
		||||
Place 100 torches.=Postaw 100 pochodni.
 | 
			
		||||
Place 10000 tubes.=
 | 
			
		||||
Place 2 trap stones.=Postaw 2 kamienne pułapki.
 | 
			
		||||
Place 20 coal checkers.=Postaw 20 szachownic węglowych.
 | 
			
		||||
Place 20 iron checkers.=Postaw 20 szachownic żelaznych.
 | 
			
		||||
Place 40 steel ladders.=Postaw 40 stalowych drabin.
 | 
			
		||||
Place 400 wooden ladders.=Postaw 400 drewnianych drabin.
 | 
			
		||||
Place 5 autocrafters.=
 | 
			
		||||
Place 500 mesecon wires.=
 | 
			
		||||
Place two snow blocks.=Postaw dwa bloki śniegu.
 | 
			
		||||
Professional Lumberjack=Profesjonalny drwal
 | 
			
		||||
Put out 1000 fires.=Zgaś 1000 pożarów.
 | 
			
		||||
Pyromaniac=Piromaniak
 | 
			
		||||
Really Well Lit=Naprawdę dobrze oświetlone
 | 
			
		||||
Roses Are Red=Róże są czerwone
 | 
			
		||||
Saint-Maclou=Saint-Maclou
 | 
			
		||||
Sam the Trapper=Sam Myśliwy
 | 
			
		||||
Savannah Discoverer=Odkrywca sawanny
 | 
			
		||||
Semi-pro Lumberjack=Pół-profesjonalny drwal
 | 
			
		||||
Smelter=Przetapiacz
 | 
			
		||||
Tasty Mushrooms=Smaczne grzyby
 | 
			
		||||
This is Sad=
 | 
			
		||||
Treasurer=Podskarbi
 | 
			
		||||
Underground Mushroom Farmer=Hodowca podziemnych grzybów
 | 
			
		||||
Very Simple Snow Man=Bardzo prosty bałwan
 | 
			
		||||
Watchtower=Strażnica
 | 
			
		||||
Well Lit=Dobrze oświetlone
 | 
			
		||||
Wheat Magnate=Pszeniczny magnat
 | 
			
		||||
White Color Stock=Zapas białego koloru
 | 
			
		||||
Wool Over Your Eyes=Owijanie w bawełnę
 | 
			
		||||
Wow, I am Diamonds!=Wow, jestem diamentami!
 | 
			
		||||
You Suck!=
 | 
			
		||||
You're a witch!=
 | 
			
		||||
You’re a copper=Jesteś miedzią
 | 
			
		||||
Yummy!=Pychota
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=
 | 
			
		||||
<name>=<nazwa>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Wszystkie nagrody i statystyki zostały usunięte. Możesz znów zacząć od nowa.
 | 
			
		||||
Award not found.=
 | 
			
		||||
Get the awards statistics for the given player or yourself=
 | 
			
		||||
Show details of an award=
 | 
			
		||||
Show, clear, disable or enable your awards=
 | 
			
		||||
You have disabled awards.=
 | 
			
		||||
You have enabled awards.=
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=%s's nagrody:
 | 
			
		||||
(Secret Award)=(Sekretna nagroda)
 | 
			
		||||
@1 (unlocked)=
 | 
			
		||||
Awards=Nagrody
 | 
			
		||||
Error: No achivements available.=
 | 
			
		||||
Error: No award available.=
 | 
			
		||||
OK=OK
 | 
			
		||||
Unlock this award to find out what it is.=Odblokuj tę nagrodę, aby dowiedzieć się czym jest.
 | 
			
		||||
You have not unlocked any awards.=Nie odblokowałeś żadnych nagród.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Wyłączyłeś nagrody. Wpisz /awards enable, aby je ponownie włączyć.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1/@2 wiadomości na czacie
 | 
			
		||||
@1/@2 crafted=@1/@2 stworzono
 | 
			
		||||
@1/@2 deaths=@1/@2 śmierci
 | 
			
		||||
@1/@2 dug=@1/@2 wykopano
 | 
			
		||||
@1/@2 eaten=@1/@2 zjedzono
 | 
			
		||||
@1/@2 joins=
 | 
			
		||||
@1/@2 placed=@1/@2 postawiono
 | 
			
		||||
Chat @1 times=
 | 
			
		||||
Craft @1 item=
 | 
			
		||||
Craft @1 items.=
 | 
			
		||||
Craft: @1×@2=
 | 
			
		||||
Craft: @2=
 | 
			
		||||
Die @1 times of @2=
 | 
			
		||||
Die @1 times.=
 | 
			
		||||
Die once of @2=
 | 
			
		||||
Eat @1 item=
 | 
			
		||||
Eat @1 items.=
 | 
			
		||||
Eat @1×@2=
 | 
			
		||||
Eat @2=
 | 
			
		||||
Join @1 times=
 | 
			
		||||
Join once=
 | 
			
		||||
Mine @1 block.=
 | 
			
		||||
Mine @1 blocks.=
 | 
			
		||||
Mine @1 times=
 | 
			
		||||
Mine: @1×@2=
 | 
			
		||||
Mine: @2=
 | 
			
		||||
Place @1 block.=
 | 
			
		||||
Place @1 blocks.=
 | 
			
		||||
Place: @1×@2=
 | 
			
		||||
Place: @2=
 | 
			
		||||
Send a chat message=
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
%s: %s=%s: %s
 | 
			
		||||
Secret Achievement Unlocked:=Odblokowano sekretne osiągnięcie:
 | 
			
		||||
Achievement Unlocked:=Odblokowano osiągnięcie:
 | 
			
		||||
Secret Achievement Unlocked: %s=Odblokowano sekretne osiągnięcie: %s
 | 
			
		||||
Achievement Unlocked: %s=Odblokowano osiągnięcie: %s
 | 
			
		||||
Secret Achievement Unlocked!=Odblokowano sekretne osiągnięcie!
 | 
			
		||||
Achievement Unlocked!=Odblokowano osiągnięcie!
 | 
			
		||||
Error: No awards available.=Błąd: Brak dostępnych nagród.
 | 
			
		||||
%s (got)=%s (zdobyto)
 | 
			
		||||
@1/@2 game joins=@1/@2 dołączeń do gry
 | 
			
		||||
Bankier=Bankier
 | 
			
		||||
Constructor=Konstruktor
 | 
			
		||||
Show, clear, disable or enable your achievements=Pokaż, usuń, wyłącz lub włącz osiągnięcia
 | 
			
		||||
You have disabled your achievements.=Wyłączyłeś osiągnięcia.
 | 
			
		||||
You have enabled your achievements.=Włączyłeś osiągnięcia.
 | 
			
		||||
<achievement ID>=<ID osiągnięcia>
 | 
			
		||||
Show details of an achievement=Pokaż szczegóły osiągnięcia
 | 
			
		||||
Achievement not found.=Nie znaleziono osiągnięcia.
 | 
			
		||||
Get the achievements statistics for the given player or yourself=Pokaż swoje statystyki lub danego gracza
 | 
			
		||||
							
								
								
									
										259
									
								
								locale/awards.pt.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								locale/awards.pt.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,259 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=
 | 
			
		||||
Award Unlocked: %s=
 | 
			
		||||
Secret Award Unlocked!=
 | 
			
		||||
Secret Award Unlocked: %s=
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=Um Gato em um Pop-Tart?!
 | 
			
		||||
Architect=Arquiteto
 | 
			
		||||
Aspiring Farmer=Fazendeiro Aspirante
 | 
			
		||||
Backpacker=
 | 
			
		||||
Baker=Padeiro
 | 
			
		||||
Banker=
 | 
			
		||||
Bricker=Tijoleiro
 | 
			
		||||
Build a Cave=Montar uma Caverna
 | 
			
		||||
Builder=Construtor
 | 
			
		||||
Burn to death in a fire.=
 | 
			
		||||
Castorama=
 | 
			
		||||
Craft 10 furnaces.=Montar 10 fornos.
 | 
			
		||||
Craft 10 mese lamps.=Fazer 10 lâmpadas de mese.
 | 
			
		||||
Craft 100 obsidian bricks.=Montar 100 tijolos de obsidiana.
 | 
			
		||||
Craft 100 sandstone bricks.=Fazer 100 tijolos de arenito.
 | 
			
		||||
Craft 100 sticks.=Lenhar 100 gravetos.
 | 
			
		||||
Craft 100 white dyes.=Fazer 100 tintas brancas.
 | 
			
		||||
Craft 14 vessels shelves.=Montar 14 estantes de frascos.
 | 
			
		||||
Craft 15 chests.=Montar 10 baús.
 | 
			
		||||
Craft 15 fancy beds.=Montar 15 camas chiques.
 | 
			
		||||
Craft 200 brick blocks.=Fazer 200 blocos de tijolo.
 | 
			
		||||
Craft 200 stone bricks.=Fazer 200 tijolos de pedra.
 | 
			
		||||
Craft 24 gold block stairs.=Montar 24 escadas de bloco de ouro.
 | 
			
		||||
Craft 250 white wool.=Tecer 250 lãs branca.
 | 
			
		||||
Craft 3,200 stone bricks.=Fazer 3.200 tijolos de pedra.
 | 
			
		||||
Craft 30 locked chests.=Montar 30 baús trancados.
 | 
			
		||||
Craft 4 large bags.=
 | 
			
		||||
Craft 400 blue dyes.=Fazer 400 tintas azuis.
 | 
			
		||||
Craft 400 desert stone bricks.=Fazer 400 Tijolos de pedra do deserto.
 | 
			
		||||
Craft 400 red dyes.=Fazer 400 tintas vermelhas.
 | 
			
		||||
Craft 400 yellow dyes.=Fazer 400 tintas amarelas.
 | 
			
		||||
Craft 500 times oil extract.=
 | 
			
		||||
Craft 7 bookshelves.=Fazer 7 estantes de livros.
 | 
			
		||||
Craft 8 times flint and steel.=Montar acendedor de Ferro e Pederneira 8 vezes.
 | 
			
		||||
Craft 800 stone bricks.=Fazer 800 tijolos de pedra.
 | 
			
		||||
Craft a diamond block.=Montar um bloco de diamante.
 | 
			
		||||
Crafter of Sticks=Rachador de Lenha
 | 
			
		||||
Dandelions are Yellow=Dentes-de-Leões são Amarelos
 | 
			
		||||
Death in the Deeps=
 | 
			
		||||
Desert Discoverer=Descobridor do Deserto
 | 
			
		||||
Desert Dweller=Morador do Deserto
 | 
			
		||||
Die 100 times.=
 | 
			
		||||
Die above 10000=
 | 
			
		||||
Die below -10000=
 | 
			
		||||
Die in flowing lava.=
 | 
			
		||||
Die near bones.=
 | 
			
		||||
Die near diamond ore.=
 | 
			
		||||
Dig 1,000 copper ores.=Minerar 1.000 cobres.
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Cortar 1.000 blocos de árvore selvagem.
 | 
			
		||||
Dig 1,000 sand.=Cavar 1.000 blocos de areia.
 | 
			
		||||
Dig 1,000 stone blocks.=Minerar 1.000 blocos de pedra.
 | 
			
		||||
Dig 1,296 tree blocks.=Cortar 1.296 blocos de árvore.
 | 
			
		||||
Dig 10,000 stone blocks.=Minerar 10.000 blocos de pedra.
 | 
			
		||||
Dig 100 jungle tree blocks.=Cortar 100 blocos de árvore selvagem.
 | 
			
		||||
Dig 100 stone blocks.=Minerar 100 blocos de pedra.
 | 
			
		||||
Dig 216 tree blocks.=Cortar 216 blocos de árvore.
 | 
			
		||||
Dig 36 tree blocks.=Cortar 36 blocos de árvore.
 | 
			
		||||
Dig 6 tree blocks.=Cortar 6 blocos de árvore.
 | 
			
		||||
Eat 10 loaves of bread.=Comer 10 pães.
 | 
			
		||||
Eat 3 brown mushrooms.=Comer 3 cogumelos marrons.
 | 
			
		||||
Eat 33 brown mushrooms.=Comer 33 cogumelos marrons.
 | 
			
		||||
Eat 333 brown mushrooms.=Comer 333 cogumelos marrons.
 | 
			
		||||
Eat 80 apples.=Comer 80 maçãs.
 | 
			
		||||
Electical Engineer=
 | 
			
		||||
Engineer=
 | 
			
		||||
Factory=
 | 
			
		||||
Far Lands=Terras Distantes
 | 
			
		||||
Farming Skills Acquired=Conhecimento de Cultivo Adquirido
 | 
			
		||||
Field Worker=Trabalhador do Campo
 | 
			
		||||
Filthy Rich=Muito Rico
 | 
			
		||||
Firefighter=Bombeiro
 | 
			
		||||
First Day in the Woods=Primeiro dia na Floresta
 | 
			
		||||
First Gold Find=Achei Ouro
 | 
			
		||||
First Mese Find=Primeiro Mese
 | 
			
		||||
Fortress=Fortaleza
 | 
			
		||||
Geraniums are Blue=Gerânios são Azuis
 | 
			
		||||
Girl's Best Friend=Melhor Amigo da Menina
 | 
			
		||||
Glacier Discoverer=Descobridor Glacial
 | 
			
		||||
Glasser=Vidraceiro
 | 
			
		||||
Gold Rush=Corriga do Ouro
 | 
			
		||||
Grasslands Discoverer=Descobridor do Gramado
 | 
			
		||||
Graveyard=
 | 
			
		||||
Hardened Miner=Minerador Avançado
 | 
			
		||||
Hardest Block on Earth=O Bloco mais Duro da Terra
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Colher 125 plantas trigos totalmente crescidos.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Colher 25 plantas trigos totalmente crescidos.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Colher 625 plantas trigos totalmente crescidos.
 | 
			
		||||
Harvest a fully grown wheat plant.=Colher um trigo totalmente crescido.
 | 
			
		||||
Hotelier=Hoteleiro
 | 
			
		||||
House of Obsidian=Casa de Obsidiana
 | 
			
		||||
In space, no one can hear you scream=
 | 
			
		||||
In the Dungeon=Na Masmorra
 | 
			
		||||
In the Flow=
 | 
			
		||||
Industrial Age=Era Industrial
 | 
			
		||||
Item transporter=
 | 
			
		||||
Jungle Discoverer=Desbravador Selvagem
 | 
			
		||||
Junglebaby=Bebê Selvagem
 | 
			
		||||
Jungleman=Homem Selvagem
 | 
			
		||||
Lava Miner=Minerador de Lava
 | 
			
		||||
Lava and Water=Lava e Água
 | 
			
		||||
Light It Up=Ilumine Isso
 | 
			
		||||
Little Library=Pequena Biblioteca
 | 
			
		||||
Long Ladder=Longa Escadaria
 | 
			
		||||
Lumberjack=Lenhador
 | 
			
		||||
Marchand De Sable=Vendedor de Areia
 | 
			
		||||
Master Architect=Arquiteto Mestre
 | 
			
		||||
Master Miner=Minerador Mestre
 | 
			
		||||
Mese Mastery=Mestre do Mese
 | 
			
		||||
Mine 18 diamond ores.=Minere 18 diamantes.
 | 
			
		||||
Mine 45 gold ores.=Minerar 45 de ouro.
 | 
			
		||||
Mine 50 obsidian.=Minerar 50 obsidianas.
 | 
			
		||||
Mine a mese block.=Cavar um bloco de mese.
 | 
			
		||||
Mine a mossy cobblestone.=Minerar um pedregulho com musgo.
 | 
			
		||||
Mine a nyan cat.=Capturar um gato nyan.
 | 
			
		||||
Mine any block while being very close to lava.=Minerar qualquer bloco enquanto estiver mergulhado em lava.
 | 
			
		||||
Mine some dry grass.=Minerar algum mato seco.
 | 
			
		||||
Mine some grass.=Minerar algum mato
 | 
			
		||||
Mine your first cactus.=Cortar seu primeiro cacto.
 | 
			
		||||
Mine your first diamond ore.=Minerar seu primeiro diamante.
 | 
			
		||||
Mine your first dry shrub.=Minerar seu primeiro arbusto seco.
 | 
			
		||||
Mine your first gold ore.=Minerar sua primeira de ouro.
 | 
			
		||||
Mine your first ice.=Quebrar seu primeiro bloco de gelo.
 | 
			
		||||
Mine your first jungle grass.=Cortar seu primeiro mato selvagem.
 | 
			
		||||
Mine your first mese ore.=Cavar seu primeiro mese.
 | 
			
		||||
Mine your first obsidian.=Cavar sua primeira obsidiana.
 | 
			
		||||
Mini Miner=Mini Minerador
 | 
			
		||||
Mushroom Lover=Amante de Cogumelo
 | 
			
		||||
Obsessed with Obsidian=Obcecado por Obsidiana
 | 
			
		||||
Oil Tycoon=
 | 
			
		||||
On The Way=No Caminho
 | 
			
		||||
Outpost=Posto Avançado
 | 
			
		||||
Pharaoh=Faraó
 | 
			
		||||
Place 1,000 torches.=Colocar 1.000 tochas.
 | 
			
		||||
Place 100 rails.=Colocar 100 trilhos.
 | 
			
		||||
Place 100 stone.=Colocar 100 pedras.
 | 
			
		||||
Place 100 torches.=Colocar 100 tochas.
 | 
			
		||||
Place 10000 tubes.=
 | 
			
		||||
Place 2 trap stones.=
 | 
			
		||||
Place 20 coal checkers.=
 | 
			
		||||
Place 20 iron checkers.=
 | 
			
		||||
Place 40 steel ladders.=Colocar 40 escadas de ferro.
 | 
			
		||||
Place 400 wooden ladders.=Colocar 400 escadas de madeira.
 | 
			
		||||
Place 5 autocrafters.=
 | 
			
		||||
Place 500 mesecon wires.=
 | 
			
		||||
Place two snow blocks.=Colocar 2 blocos de neve.
 | 
			
		||||
Professional Lumberjack=Lenhador Profissional
 | 
			
		||||
Put out 1000 fires.=Apagar fogo 1000 vezes.
 | 
			
		||||
Pyromaniac=Piromaníaco
 | 
			
		||||
Really Well Lit=Realmente Bem Iluminado
 | 
			
		||||
Roses Are Red=Rosas São Vermelhas
 | 
			
		||||
Saint-Maclou=Saint-Maclou
 | 
			
		||||
Sam the Trapper=
 | 
			
		||||
Savannah Discoverer=Descobridor da Savana
 | 
			
		||||
Semi-pro Lumberjack=Lenhador Semi-Profissional
 | 
			
		||||
Smelter=Fundidor
 | 
			
		||||
Tasty Mushrooms=Cogumelos Deliciosos
 | 
			
		||||
This is Sad=
 | 
			
		||||
Treasurer=Tesoureiro
 | 
			
		||||
Underground Mushroom Farmer=Fazendeiro Subterrâneo de Cogumelos
 | 
			
		||||
Very Simple Snow Man=Homem de Neve Muito Simples
 | 
			
		||||
Watchtower=Sentinela
 | 
			
		||||
Well Lit=Bem Iluminado
 | 
			
		||||
Wheat Magnate=Magnata do Trigo
 | 
			
		||||
White Color Stock=Estoque de Cor Branca
 | 
			
		||||
Wool Over Your Eyes=Lã Sobre Meus Olhos
 | 
			
		||||
Wow, I am Diamonds!=Uau, Diamante!
 | 
			
		||||
You Suck!=
 | 
			
		||||
You're a witch!=
 | 
			
		||||
You’re a copper=Sou um Cobre
 | 
			
		||||
Yummy!=Humm!
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=
 | 
			
		||||
<name>=<jogador>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Todas as suas conquistas e estatísticas foram limpas. Agora podes iniciar novamente.
 | 
			
		||||
Award not found.=
 | 
			
		||||
Get the awards statistics for the given player or yourself=
 | 
			
		||||
Show details of an award=
 | 
			
		||||
Show, clear, disable or enable your awards=
 | 
			
		||||
You have disabled awards.=
 | 
			
		||||
You have enabled awards.=
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=%s das conquistas:
 | 
			
		||||
(Secret Award)=(Conquista Secreta)
 | 
			
		||||
@1 (unlocked)=
 | 
			
		||||
Awards=Conquistas
 | 
			
		||||
Error: No achivements available.=
 | 
			
		||||
Error: No award available.=
 | 
			
		||||
OK=OK
 | 
			
		||||
Unlock this award to find out what it is.=Desbloqueie essa conquista para descobrir o que significa.
 | 
			
		||||
You have not unlocked any awards.=Nenhuma conquista desbloqueada ainda.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Desabilitaste as conquistas. Digite /awards enable para reabilitar.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1 de @2
 | 
			
		||||
@1/@2 crafted=@1 de @2 feitos
 | 
			
		||||
@1/@2 deaths=@1 de @2 mortes
 | 
			
		||||
@1/@2 dug=@1 de @2 obtidos
 | 
			
		||||
@1/@2 eaten=@1 de @2 consumidos
 | 
			
		||||
@1/@2 joins=
 | 
			
		||||
@1/@2 placed=@1 de @2 colocados
 | 
			
		||||
Chat @1 times=
 | 
			
		||||
Craft @1 item=
 | 
			
		||||
Craft @1 items.=
 | 
			
		||||
Craft: @1×@2=
 | 
			
		||||
Craft: @2=
 | 
			
		||||
Die @1 times of @2=
 | 
			
		||||
Die @1 times.=
 | 
			
		||||
Die once of @2=
 | 
			
		||||
Eat @1 item=
 | 
			
		||||
Eat @1 items.=
 | 
			
		||||
Eat @1×@2=
 | 
			
		||||
Eat @2=
 | 
			
		||||
Join @1 times=
 | 
			
		||||
Join once=
 | 
			
		||||
Mine @1 block.=
 | 
			
		||||
Mine @1 blocks.=
 | 
			
		||||
Mine @1 times=
 | 
			
		||||
Mine: @1×@2=
 | 
			
		||||
Mine: @2=
 | 
			
		||||
Place @1 block.=
 | 
			
		||||
Place @1 blocks.=
 | 
			
		||||
Place: @1×@2=
 | 
			
		||||
Place: @2=
 | 
			
		||||
Send a chat message=
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
%s: %s=%s: %s
 | 
			
		||||
Secret Achievement Unlocked:=Conquista Secreta Desbloqueada:
 | 
			
		||||
Achievement Unlocked:=Conquista Desbloqueada:
 | 
			
		||||
Secret Achievement Unlocked: %s=Conquista Secreta Desbloqueada: %s
 | 
			
		||||
Achievement Unlocked: %s=Conquista Desbloqueada: %s
 | 
			
		||||
Secret Achievement Unlocked!=Conquista Secreta Desbloqueada!
 | 
			
		||||
Achievement Unlocked!=Conquista Desbloqueada!
 | 
			
		||||
Error: No awards available.=Erro: Nenhuma conquista encontrada.
 | 
			
		||||
%s (got)=%s (obtido)
 | 
			
		||||
@1/@2 game joins=@1 de @2
 | 
			
		||||
Bankier=Banqueiro
 | 
			
		||||
Constructor=Empreiteiro
 | 
			
		||||
Show, clear, disable or enable your achievements=Exibir, limpar, desabilitar ou habilitar suas conquistas
 | 
			
		||||
You have disabled your achievements.=Suas conquistas foram desabilitadas.
 | 
			
		||||
You have enabled your achievements.=Suas conquistas foram habilitadas.
 | 
			
		||||
<achievement ID>=<ID da conquista>
 | 
			
		||||
Show details of an achievement=Mostra detalhes de uma conquista
 | 
			
		||||
Achievement not found.=Conquista não encontrada.
 | 
			
		||||
Get the achievements statistics for the given player or yourself=Ver as estatísticas de conquistas de um jogador ou suas próprias
 | 
			
		||||
							
								
								
									
										236
									
								
								locale/awards.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								locale/awards.ru.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,236 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=Достижение разблокировано!
 | 
			
		||||
Award Unlocked: %s=Достижение разблокировано: %s
 | 
			
		||||
Secret Award Unlocked!=Секретное достижение разблокировано!
 | 
			
		||||
Secret Award Unlocked: %s=Секретное достижение разблокировано: %s
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=Кот в Поп-Тарте?!
 | 
			
		||||
Architect=Архитектор
 | 
			
		||||
Aspiring Farmer=Начинающий фермер
 | 
			
		||||
Backpacker=Турист
 | 
			
		||||
Baker=Пекарь
 | 
			
		||||
Banker=Банкир
 | 
			
		||||
Bricker=Кирпичник
 | 
			
		||||
Build a Cave=Построить пещеру
 | 
			
		||||
Builder=Строитель
 | 
			
		||||
Burn to death in a fire.=Сгореть в огне.
 | 
			
		||||
Castorama=Castorama
 | 
			
		||||
Craft 10 furnaces.=Создать 10 печей.
 | 
			
		||||
Craft 10 mese lamps.=Создать 10 мезовых ламп.
 | 
			
		||||
Craft 100 obsidian bricks.=Создать 100 обсидиановых кирпичей.
 | 
			
		||||
Craft 100 sandstone bricks.=Создать 100 песчаниковых кирпичей.
 | 
			
		||||
Craft 100 sticks.=Создать 100 палок.
 | 
			
		||||
Craft 100 white dyes.=Создать 100 белых красителей.
 | 
			
		||||
Craft 14 vessels shelves.=Создать 14 полок с сосудами.
 | 
			
		||||
Craft 15 chests.=Создать 15 сундуков.
 | 
			
		||||
Craft 15 fancy beds.=Создать 15 красивых кроватей.
 | 
			
		||||
Craft 200 brick blocks.=Создать 200 блоков кирпичей.
 | 
			
		||||
Craft 200 stone bricks.=Создать 200 каменных кирпичей.
 | 
			
		||||
Craft 24 gold block stairs.=Создать 24 ступеньки из золотых блоков.
 | 
			
		||||
Craft 250 white wool.=Создать 250 белой шерсти.
 | 
			
		||||
Craft 3,200 stone bricks.=Создать 3,200 каменных кирпичей.
 | 
			
		||||
Craft 30 locked chests.=Создать 30 запертых сундуков.
 | 
			
		||||
Craft 4 large bags.=Создать 4 больших сумки.
 | 
			
		||||
Craft 400 blue dyes.=Создать 400 синих красителей.
 | 
			
		||||
Craft 400 desert stone bricks.=Создать 400 песчаниковых кирпичей.
 | 
			
		||||
Craft 400 red dyes.=Создать 400 красных красителей.
 | 
			
		||||
Craft 400 yellow dyes.=Создать 400 жёлтых красителей.
 | 
			
		||||
Craft 500 times oil extract.=Создать масляный экстракт 500 раз.
 | 
			
		||||
Craft 7 bookshelves.=Создать 7 книжных полок.
 | 
			
		||||
Craft 8 times flint and steel.=Создать огниво 8 раз.
 | 
			
		||||
Craft 800 stone bricks.=Создать 800 каменных кирпичей.
 | 
			
		||||
Craft a diamond block.=Создать алмазный блок.
 | 
			
		||||
Crafter of Sticks=Создатель Палочек
 | 
			
		||||
Dandelions are Yellow=Одуванчики - жёлтые
 | 
			
		||||
Death in the Deeps=Смерть в глубинах
 | 
			
		||||
Desert Discoverer=Первооткрыватель пустыни
 | 
			
		||||
Desert Dweller=Обитатель пустыни
 | 
			
		||||
Die 100 times.=Умереть 100 раз.
 | 
			
		||||
Die above 10000=Умереть выше 10000
 | 
			
		||||
Die below -10000=Умереть ниже -10000
 | 
			
		||||
Die in flowing lava.=Умереть в разлитой лаве.
 | 
			
		||||
Die near bones.=Умереть около костей.
 | 
			
		||||
Die near diamond ore.=Умереть около алмазной руды.
 | 
			
		||||
Dig 1,000 copper ores.=Добыть 1,000 медной руды.
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Добыть 1,000 блоков тропического дерева.
 | 
			
		||||
Dig 1,000 sand.=Добыть 1,000 блоков песка.
 | 
			
		||||
Dig 1,000 stone blocks.=Добыть 1,000 блоков камня.
 | 
			
		||||
Dig 1,296 tree blocks.=Добыть 1,296 блоков дерева.
 | 
			
		||||
Dig 10,000 stone blocks.=Добыть 10,000 блоков камня.
 | 
			
		||||
Dig 100 jungle tree blocks.=Добыть 100 блоков тропического дерева.
 | 
			
		||||
Dig 100 stone blocks.=Добыть 100 блоков камня.
 | 
			
		||||
Dig 216 tree blocks.=Добыть 216 блоков дерева.
 | 
			
		||||
Dig 36 tree blocks.=Добыть 36 блоков дерева.
 | 
			
		||||
Dig 6 tree blocks.=Добыть 6 блоков дерева.
 | 
			
		||||
Eat 10 loaves of bread.=Съесть 10 буханок хлеба.
 | 
			
		||||
Eat 3 brown mushrooms.=Съесть 3 коричневых гриба.
 | 
			
		||||
Eat 33 brown mushrooms.=Съесть 33 коричневых гриба.
 | 
			
		||||
Eat 333 brown mushrooms.=Съесть 333 коричневых гриба.
 | 
			
		||||
Eat 80 apples.=Съесть 80 яблок.
 | 
			
		||||
Electical Engineer=Инженер-электрик
 | 
			
		||||
Engineer=Инженер
 | 
			
		||||
Factory=Фабрика
 | 
			
		||||
Far Lands=Далёкие земли
 | 
			
		||||
Farming Skills Acquired=Первые начинания в фермерстве
 | 
			
		||||
Field Worker=Крестьянин
 | 
			
		||||
Filthy Rich=Богат до неприличия
 | 
			
		||||
Firefighter=Пожарный
 | 
			
		||||
First Day in the Woods=Первый день в лесу
 | 
			
		||||
First Gold Find=Находка золота
 | 
			
		||||
First Mese Find=Находка мезе
 | 
			
		||||
Fortress=Крепость
 | 
			
		||||
Geraniums are Blue=Герань - синяя
 | 
			
		||||
Girl's Best Friend=Популярен среди девушек
 | 
			
		||||
Glacier Discoverer=Первооткрыватель ледников
 | 
			
		||||
Glasser=Стеклодув
 | 
			
		||||
Gold Rush=Золотая лихорадка
 | 
			
		||||
Grasslands Discoverer=Первооткрыватель равнин
 | 
			
		||||
Graveyard=Кладбище
 | 
			
		||||
Hardened Miner=Закалённый шахтёр
 | 
			
		||||
Hardest Block on Earth=Самый сложный блок на Земле
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Соберите 125 полностью выросших растений.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Соберите 25 полностью выросших растений.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Соберите 625 полностью выросших растений.
 | 
			
		||||
Harvest a fully grown wheat plant.=Соберите полностью выросшее растение.
 | 
			
		||||
Hotelier=Владелец гостиницы
 | 
			
		||||
House of Obsidian=Дом из обсидиана
 | 
			
		||||
In space, no one can hear you scream=В космосе ваши крики не слышно
 | 
			
		||||
In the Dungeon=В подземелье
 | 
			
		||||
In the Flow=В течении
 | 
			
		||||
Industrial Age=Индустриализация
 | 
			
		||||
Item transporter=Транспортировщик предметов
 | 
			
		||||
Jungle Discoverer=Первооткрыватель джунглей
 | 
			
		||||
Junglebaby=Маугли
 | 
			
		||||
Jungleman=Тарзан
 | 
			
		||||
Lava Miner=Лавовый шахтёр
 | 
			
		||||
Lava and Water=Лава и вода
 | 
			
		||||
Light It Up=Да будет свет!
 | 
			
		||||
Little Library=Небольшая библиотека
 | 
			
		||||
Long Ladder=Длинная лестница
 | 
			
		||||
Lumberjack=Лесоруб
 | 
			
		||||
Marchand De Sable=Торговец песком
 | 
			
		||||
Master Architect=Главный архитектор
 | 
			
		||||
Master Miner=Главный шахтёр
 | 
			
		||||
Mese Mastery=Мезе-мастер
 | 
			
		||||
Mine 18 diamond ores.=Добыть 18 алмазной руды.
 | 
			
		||||
Mine 45 gold ores.=Добыть 45 золотой руды.
 | 
			
		||||
Mine 50 obsidian.=Добыть 50 обсидиана.
 | 
			
		||||
Mine a mese block.=Добыть мезовый блок.
 | 
			
		||||
Mine a mossy cobblestone.=Добыть замшелый булыжник.
 | 
			
		||||
Mine a nyan cat.=Добыть нян-кэта.
 | 
			
		||||
Mine any block while being very close to lava.=Добыть любой блок, находясь очень близко к лаве.
 | 
			
		||||
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=Мини-шахтёр
 | 
			
		||||
Mushroom Lover=Любитель грибов
 | 
			
		||||
Obsessed with Obsidian=Одержимый обсидианом
 | 
			
		||||
Oil Tycoon=Фабрика масла
 | 
			
		||||
On The Way=Вагонные споры
 | 
			
		||||
Outpost=Аванпост
 | 
			
		||||
Pharaoh=Фараон
 | 
			
		||||
Place 1,000 torches.=Поставить 1,000 факелов.
 | 
			
		||||
Place 100 rails.=Поставить 100 рельс.
 | 
			
		||||
Place 100 stone.=Поставить 100 камней.
 | 
			
		||||
Place 100 torches.=Поставить 100 факелов.
 | 
			
		||||
Place 10000 tubes.=Установить 10000 труб.
 | 
			
		||||
Place 2 trap stones.=Установить 2 камня-ловушки.
 | 
			
		||||
Place 20 coal checkers.=Поставить 20 мозаик из угля.
 | 
			
		||||
Place 20 iron checkers.=Поставить 20 мозаик из железа.
 | 
			
		||||
Place 40 steel ladders.=Установить 40 стальных лестниц.
 | 
			
		||||
Place 400 wooden ladders.=Установить 400 деревянных лестниц.
 | 
			
		||||
Place 5 autocrafters.=Установить 5 авто-крафтеров.
 | 
			
		||||
Place 500 mesecon wires.=Установить 500 мезовых проводов.
 | 
			
		||||
Place two snow blocks.=Поставить два снежных блока.
 | 
			
		||||
Professional Lumberjack=Профессиональный лесоруб
 | 
			
		||||
Put out 1000 fires.=Потушить 1000 блоков огня.
 | 
			
		||||
Pyromaniac=Пироманьяк
 | 
			
		||||
Really Well Lit=Действительно светло
 | 
			
		||||
Roses Are Red=Розы - красные
 | 
			
		||||
Saint-Maclou=Сен-Маклу
 | 
			
		||||
Sam the Trapper=Сэм-Охотник
 | 
			
		||||
Savannah Discoverer=Первооткрыватель саванн
 | 
			
		||||
Semi-pro Lumberjack=Полупрофессиональный лесоруб
 | 
			
		||||
Smelter=Плавильня
 | 
			
		||||
Tasty Mushrooms=Вкусные грибы
 | 
			
		||||
This is Sad=Это? Это печально
 | 
			
		||||
Treasurer=Казначей
 | 
			
		||||
Underground Mushroom Farmer=Подпольный грибовод
 | 
			
		||||
Very Simple Snow Man=Просто снеговик
 | 
			
		||||
Watchtower=Сторожевая башня
 | 
			
		||||
Well Lit=Светло
 | 
			
		||||
Wheat Magnate=Пшеничный магнат
 | 
			
		||||
White Color Stock=Запас белого цвета
 | 
			
		||||
Wool Over Your Eyes=Слишком много шерсти
 | 
			
		||||
Wow, I am Diamonds!=Ух ты, алмазы!
 | 
			
		||||
You Suck!=Неудачник!
 | 
			
		||||
You're a witch!=Сжечь ведьму!
 | 
			
		||||
You’re a copper=Вы коппер
 | 
			
		||||
Yummy!=М-м-м!
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=<ID достижения>
 | 
			
		||||
<name>=<имя>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Все ваши достижения и статистика были устранены. Теперь вы можете начать снова.
 | 
			
		||||
Award not found.=Достижение не найдено.
 | 
			
		||||
Get the awards statistics for the given player or yourself=Получите статистику достижений для данного игрока или себя
 | 
			
		||||
Show details of an award=Показать информацию о достижении
 | 
			
		||||
Show, clear, disable or enable your awards=Показать, очистить, отключить или включить ваши достижения
 | 
			
		||||
You have disabled awards.=Вы отключили достижения.
 | 
			
		||||
You have enabled awards.=Вы включили достижения.
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=Достижения %s:
 | 
			
		||||
(Secret Award)=(Секретное достижение)
 | 
			
		||||
@1 (unlocked)=@1 (разблокировано)
 | 
			
		||||
Awards=Достижения
 | 
			
		||||
Error: No achivements available.=Ошибка: достижения недоступны.
 | 
			
		||||
Error: No award available.=Ошибка: достижения недоступны.
 | 
			
		||||
OK=OK
 | 
			
		||||
Unlock this award to find out what it is.=Разблокируйте это достижение, чтобы выяснить, что это такое.
 | 
			
		||||
You have not unlocked any awards.=Вы не открыли ни одно достижение.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Вы отключили достижения. Введите /awards, чтобы включить обратно.
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=@1/@2 сообщений в чате
 | 
			
		||||
@1/@2 crafted=@1/@2 создано
 | 
			
		||||
@1/@2 deaths=@1/@2 смертей
 | 
			
		||||
@1/@2 dug=@1/@2 добыто
 | 
			
		||||
@1/@2 eaten=@1/@2 съедено
 | 
			
		||||
@1/@2 joins=@1/@2 присоединений
 | 
			
		||||
@1/@2 placed=@1/@2 установлено
 | 
			
		||||
Chat @1 times=Отправить сообщений в чат @1 раз
 | 
			
		||||
Craft @1 item=Создать @1 предмет
 | 
			
		||||
Craft @1 items.=Создать @1 предметов.
 | 
			
		||||
Craft: @1×@2=Создать: @1×@2
 | 
			
		||||
Craft: @2=Создать: @2
 | 
			
		||||
Die @1 times of @2=Умереть @1 из @2 раз
 | 
			
		||||
Die @1 times.=Умереть @1 раз.
 | 
			
		||||
Die once of @2=Умереть один раз из @2
 | 
			
		||||
Eat @1 item=Съесть @1
 | 
			
		||||
Eat @1 items.=Съесть @1 предметов.
 | 
			
		||||
Eat @1×@2=Съесть @1×@2
 | 
			
		||||
Eat @2=Съесть @2
 | 
			
		||||
Join @1 times=Присоединится @1 раз
 | 
			
		||||
Join once=Присоединится один раз
 | 
			
		||||
Mine @1 block.=Добыть @1 блок.
 | 
			
		||||
Mine @1 blocks.=Добыть @1 блоков.
 | 
			
		||||
Mine @1 times=Добыть @1 раз
 | 
			
		||||
Mine: @1×@2=Добыть: @1×@2
 | 
			
		||||
Mine: @2=Добыть: @2
 | 
			
		||||
Place @1 block.=Установить @1 блок.
 | 
			
		||||
Place @1 blocks.=Установить @1 блоков.
 | 
			
		||||
Place: @1×@2=Установить: @1×@2
 | 
			
		||||
Place: @2=Установить: @2
 | 
			
		||||
Send a chat message=Отправить сообщение в чат
 | 
			
		||||
							
								
								
									
										227
									
								
								locale/awards.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										227
									
								
								locale/awards.uk.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,227 @@
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
Adds awards to Minetest, and an API to register new ones.=Додає досягнення до Luanti, а також API, щоб реєструвати їх.
 | 
			
		||||
Award Unlocked!=Досягнення розблоковано!
 | 
			
		||||
Award Unlocked: %s=Досягнення розблоковано: %s
 | 
			
		||||
Secret Award Unlocked!=Секретне досягнення розблоковано!
 | 
			
		||||
Secret Award Unlocked: %s=Секретне досягнення розблоковано: %s
 | 
			
		||||
A Cat in a Pop-Tart?!=Кіт у вагонетці!?
 | 
			
		||||
Architect=Архітектор
 | 
			
		||||
Aspiring Farmer=Фермер-початківець
 | 
			
		||||
Backpacker=Любитель сумок
 | 
			
		||||
Baker=Пекар
 | 
			
		||||
Banker=Банкір
 | 
			
		||||
Bricker=Любитель цегли
 | 
			
		||||
Build a Cave=Побудувати печеру
 | 
			
		||||
Builder=Будівельник
 | 
			
		||||
Burn to death in a fire.=Згоріти на смерть у вогні.
 | 
			
		||||
Castorama=Касторама
 | 
			
		||||
Craft 10 furnaces.=Скрафтити 10 пічок.
 | 
			
		||||
Craft 10 mese lamps.=Скрафтити 10 меселамп.
 | 
			
		||||
Craft 100 obsidian bricks.=Скрафтити 100 обсидіанових блоків цегли.
 | 
			
		||||
Craft 100 sandstone bricks.=Скрафтити 100 блоків цегли із пісковику.
 | 
			
		||||
Craft 100 sticks.=Скрафтити 100 палиць.
 | 
			
		||||
Craft 100 white dyes.=Скрафтити 100 білих барвників.
 | 
			
		||||
Craft 14 vessels shelves.=Скрафтити 14 полиць із посудом.
 | 
			
		||||
Craft 15 chests.=Скрафтити 15 скринь.
 | 
			
		||||
Craft 15 fancy beds.=Скрафтити 15 гарних ліжок.
 | 
			
		||||
Craft 200 brick blocks.=Скрафтити 200 блоків цегли.
 | 
			
		||||
Craft 200 stone bricks.=Скрафтити 200 кам'яних блоків цегли.
 | 
			
		||||
Craft 24 gold block stairs.=Скрафтити 24 золотих сходів.
 | 
			
		||||
Craft 250 white wool.=Скрафтити 250 блоків білої шерсті.
 | 
			
		||||
Craft 3,200 stone bricks.=Скрафтити 3,2тис кам'яних блоків цегли.
 | 
			
		||||
Craft 30 locked chests.=Скрафтити 30 захищених скринь.
 | 
			
		||||
Craft 4 large bags.=Скрафтити 4 великі сумки.
 | 
			
		||||
Craft 400 blue dyes.=Скрафтити 400 синіх барвників.
 | 
			
		||||
Craft 400 desert stone bricks.=Скрафтити 400 пустельних блоків цегли.
 | 
			
		||||
Craft 400 red dyes.=Скрафтити 400 червоних барвників.
 | 
			
		||||
Craft 400 yellow dyes.=Скрафтити 400 жовтих барвників.
 | 
			
		||||
Craft 500 times oil extract.=Скрафтити масляний екстракт 500 разів.
 | 
			
		||||
Craft 7 bookshelves.=Скрафтити 7 книжкових полиць.
 | 
			
		||||
Craft 8 times flint and steel.=Скрафтити масляний екстракт 500 разів.
 | 
			
		||||
Craft 800 stone bricks.=Скрафтити 800 блоків кам'яної цегли.
 | 
			
		||||
Craft a diamond block.=Скрафтити діамантовий блок.
 | 
			
		||||
Crafter of Sticks=Майстер паличок
 | 
			
		||||
Dandelions are Yellow=Жовті кульбаби
 | 
			
		||||
Death in the Deeps=Смерть на глибині
 | 
			
		||||
Desert Discoverer=Дослідник пустель
 | 
			
		||||
Desert Dweller=Мешканець пустелі
 | 
			
		||||
Die 100 times.=Вмерти 100 разів.
 | 
			
		||||
Die above 10000=Вмерти вище 10км
 | 
			
		||||
Die below -10000=Вмерти нижче 10км
 | 
			
		||||
Die in flowing lava.=Померти в потоках лави.
 | 
			
		||||
Die near bones.=Померти поруч із блоком кісток.
 | 
			
		||||
Die near diamond ore.=Померти поруч із діамантовою рудою.
 | 
			
		||||
Dig 1,000 copper ores.=Викопати 1тис мідних руд.
 | 
			
		||||
Dig 1,000 jungle tree blocks.=Зрубати 1тис блоків джунглевого дерева.
 | 
			
		||||
Dig 1,000 sand.=Викопати 1тис блоків піску.
 | 
			
		||||
Dig 1,000 stone blocks.=Викопати 1тис блоків каменю.
 | 
			
		||||
Dig 1,296 tree blocks.=Зрубати 1 296 блоків дерева.
 | 
			
		||||
Dig 10,000 stone blocks.=Викопати 10тис блоків каменю.
 | 
			
		||||
Dig 100 jungle tree blocks.=Зрубати 100 блоків джунглевого дерева.
 | 
			
		||||
Dig 100 stone blocks.=Викопати 100 блоків каменю.
 | 
			
		||||
Dig 216 tree blocks.=Зрубати 216 блоків дерева.
 | 
			
		||||
Dig 36 tree blocks.=Зрубати 36 блоків дерева.
 | 
			
		||||
Dig 6 tree blocks.=Зрубати 6 блоків дерева.
 | 
			
		||||
Eat 10 loaves of bread.=З'їсти 10 буханок хліба.
 | 
			
		||||
Eat 3 brown mushrooms.=З'їсти 3 коричневих гриба.
 | 
			
		||||
Eat 33 brown mushrooms.=З'їсти 33 коричневих гриба.
 | 
			
		||||
Eat 333 brown mushrooms.=З'їсти 333 коричневих гриба.
 | 
			
		||||
Eat 80 apples.=З'їсти 80 яблук
 | 
			
		||||
Electical Engineer=Інженер-електрик
 | 
			
		||||
Engineer=Інженер
 | 
			
		||||
Factory=Фабрика
 | 
			
		||||
Far Lands=Далекі землі
 | 
			
		||||
Farming Skills Acquired=Набуті навички землеробства
 | 
			
		||||
Field Worker=Польовий робітник
 | 
			
		||||
Filthy Rich=Брудний багатий
 | 
			
		||||
Firefighter=Пожежний
 | 
			
		||||
First Day in the Woods=Перший день у лісі
 | 
			
		||||
First Gold Find=Перше золото
 | 
			
		||||
First Mese Find=Перше месе
 | 
			
		||||
Fortress=Фортеця
 | 
			
		||||
Geraniums are Blue=Блакитна герань
 | 
			
		||||
Girl's Best Friend=Найкращий друг дівчини
 | 
			
		||||
Glacier Discoverer=Відкривач льодовиків
 | 
			
		||||
Glasser=Любитель скла
 | 
			
		||||
Gold Rush=Золота лихоманка
 | 
			
		||||
Grasslands Discoverer=Відкривач луків
 | 
			
		||||
Graveyard=Кладовище
 | 
			
		||||
Hardened Miner=Загартований шахтар
 | 
			
		||||
Hardest Block on Earth=Найважчий блок на Землі
 | 
			
		||||
Harvest 125 fully grown wheat plants.=Зібрати 125 повністю вирощених рослин пшениці.
 | 
			
		||||
Harvest 25 fully grown wheat plants.=Зібрати 25 повністю вирощених рослин пшениці.
 | 
			
		||||
Harvest 625 fully grown wheat plants.=Зібрати 625 повністю вирощених рослин пшениці.
 | 
			
		||||
Harvest a fully grown wheat plant.=Зібрати повністю вирощену рослину пшениці.
 | 
			
		||||
Hotelier=Готельєр
 | 
			
		||||
House of Obsidian=Будинок з Обсидіану
 | 
			
		||||
In space, no one can hear you scream=У космосі ніхто не почує твій крик
 | 
			
		||||
In the Dungeon=У данжі
 | 
			
		||||
In the Flow=У потоці
 | 
			
		||||
Industrial Age=Індустріальна Ера
 | 
			
		||||
Item transporter=Транспортер речей
 | 
			
		||||
Jungle Discoverer=Дослідник джунглей
 | 
			
		||||
Junglebaby=Дитина джунглів
 | 
			
		||||
Jungleman=Людина джунглів
 | 
			
		||||
Lava Miner=Лавовий шахтар
 | 
			
		||||
Lava and Water=Лава і вода
 | 
			
		||||
Light It Up=Зроби яскравіше
 | 
			
		||||
Little Library=Невеличка бібліотека
 | 
			
		||||
Long Ladder=Довга драбина
 | 
			
		||||
Lumberjack=Дроворуб
 | 
			
		||||
Marchand De Sable=Пісочна людина
 | 
			
		||||
Master Architect=Майстер архітектури
 | 
			
		||||
Master Miner=Майстер шахти
 | 
			
		||||
Mese Mastery=Месе-майстер
 | 
			
		||||
Mine 18 diamond ores.=Добути 18 діамантових руд.
 | 
			
		||||
Mine 45 gold ores.=Добути 45 золотих руд.
 | 
			
		||||
Mine 50 obsidian.=Добути 50 блоків обсидіану.
 | 
			
		||||
Mine a mese block.=Добути блок месе.
 | 
			
		||||
Mine a mossy cobblestone.=Добути моховитий кругляк.
 | 
			
		||||
Mine a nyan cat.=Добути Nyan кота.
 | 
			
		||||
Mine any block while being very close to lava.=Добути будь-який блок перебуваючи дуже близько до лави.
 | 
			
		||||
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=Міні-шахтар
 | 
			
		||||
Mushroom Lover=Любитель грибів
 | 
			
		||||
Obsessed with Obsidian=Одержимий обсидіаном
 | 
			
		||||
Oil Tycoon=Нафтовий магнат
 | 
			
		||||
On The Way=В дорозі
 | 
			
		||||
Outpost=Форпост
 | 
			
		||||
Pharaoh=Фараон
 | 
			
		||||
Place 1,000 torches.=Розмістити 1тис смолоскипів.
 | 
			
		||||
Place 100 rails.=Розмістити 100 колій.
 | 
			
		||||
Place 100 stone.=Розмістити 100 блоків каменю.
 | 
			
		||||
Place 100 torches.=Розмістити 100 смолоскипів.
 | 
			
		||||
Place 10000 tubes.=Розмістити 10тис труб.
 | 
			
		||||
Place 2 trap stones.=Розмістити 2 камені-пастки.
 | 
			
		||||
Place 20 coal checkers.=Розмістити 20 вугілляних шахових блоків.
 | 
			
		||||
Place 20 iron checkers.=Розмістити 20 сталевих шахових блоків.
 | 
			
		||||
Place 40 steel ladders.=Розмістити 40 сталевих драбин.
 | 
			
		||||
Place 400 wooden ladders.=Розмістити 400 дерев'яних драбин.
 | 
			
		||||
Place 5 autocrafters.=Розмістити 5 автокрафтів.
 | 
			
		||||
Place 500 mesecon wires.=Розмістити 500 месе-дротів.
 | 
			
		||||
Place two snow blocks.=Розмістити 2 блоки снігу.
 | 
			
		||||
Professional Lumberjack=Професійний дроворуб
 | 
			
		||||
Put out 1000 fires.=Загасити 1тис вогнів.
 | 
			
		||||
Pyromaniac=Піроман
 | 
			
		||||
Really Well Lit=Дійсно добре освітлено
 | 
			
		||||
Roses Are Red=Троянди червоні
 | 
			
		||||
Saint-Maclou=Сен-Маклу
 | 
			
		||||
Sam the Trapper=Сем пасткар
 | 
			
		||||
Savannah Discoverer=Дослідник саван
 | 
			
		||||
Semi-pro Lumberjack=Напівпрофесійний дроворуб
 | 
			
		||||
Smelter=Плавильний завод
 | 
			
		||||
Tasty Mushrooms=Смачні гриби
 | 
			
		||||
This is Sad=Це сумно..
 | 
			
		||||
Treasurer=Скарбник
 | 
			
		||||
Underground Mushroom Farmer=Підземний грибник
 | 
			
		||||
Very Simple Snow Man=Дуже простий сніговик
 | 
			
		||||
Watchtower=Сторожова вежа
 | 
			
		||||
Well Lit=Добре освітлено
 | 
			
		||||
Wheat Magnate=Пшеничний магнат
 | 
			
		||||
White Color Stock=Запас білого кольору
 | 
			
		||||
Wool Over Your Eyes=Шерсть на очах
 | 
			
		||||
Wow, I am Diamonds!=Вау, діаманти!
 | 
			
		||||
You Suck!=Ти відстій!
 | 
			
		||||
You're a witch!=Ти відьма!
 | 
			
		||||
You’re a copper=Мідь
 | 
			
		||||
Yummy!=Ням!
 | 
			
		||||
<award ID>=<ID досягнення>
 | 
			
		||||
<name>=<назва>
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=Усі ваші нагороди та статистику видалено. Тепер ви можете почати знову.
 | 
			
		||||
Award not found.=Досягнення не знайдено.
 | 
			
		||||
Get the awards statistics for the given player or yourself=Отримайте статистику нагород для даного гравця або себе
 | 
			
		||||
Show details of an award=Показати деталі про досягнення
 | 
			
		||||
Show, clear, disable or enable your awards=Показати, очистити, вимкнути або увімкнути ваші досягнення.
 | 
			
		||||
You have disabled awards.=Ви вимкнули досягнення.
 | 
			
		||||
You have enabled awards.=Ви увімкнули досягнення.
 | 
			
		||||
[c|clear|disable|enable]=[c|clear|disable|enable]
 | 
			
		||||
%s’s awards:=Досягення гравця %s:
 | 
			
		||||
(Secret Award)=(секретне)
 | 
			
		||||
@1 (unlocked)=@1 (розблоковано)
 | 
			
		||||
Awards=Досягнення
 | 
			
		||||
Error: No achivements available.=Помилка: Немає доступних досягнень.
 | 
			
		||||
Error: No award available.=Помилка: Немає доступного досягнення.
 | 
			
		||||
Гаразд=
 | 
			
		||||
Unlock this award to find out what it is.=Розблокуйте це досягнення, щоб дізнатися, в чому його суть.
 | 
			
		||||
You have not unlocked any awards.=Немає розблокованих досягнень.
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=Досягнення вимкнені. Напишіть /awards enable щоб увімкнути
 | 
			
		||||
@1/@2 chat messages=@1/@2 повідомлень у чаті
 | 
			
		||||
@1/@2 crafted=@1/@2 скрафчено
 | 
			
		||||
@1/@2 deaths=@1/@2 смертей
 | 
			
		||||
@1/@2 dug=@1/@2 викопано
 | 
			
		||||
@1/@2 eaten=@1/@2 з'їдено
 | 
			
		||||
@1/@2 joins=@1/@2 приєднано
 | 
			
		||||
@1/@2 placed=@1/@2 розміщено
 | 
			
		||||
Chat @1 times=Чат @1 разів
 | 
			
		||||
Craft @1 item=Скрафтити @1 предмет
 | 
			
		||||
Craft @1 items.=Скрафтити @1 предметів.
 | 
			
		||||
Craft: @1×@2=Скрафтити: @1×@2
 | 
			
		||||
Craft: @2=Скрафтити: @2
 | 
			
		||||
Die @1 times of @2=Вмерти @1 разів від @2
 | 
			
		||||
Die @1 times.=Вмерти @1 разів.
 | 
			
		||||
Die once of @2=Вмерти від @2
 | 
			
		||||
Eat @1 item=З'їсти @1 предмет
 | 
			
		||||
Eat @1 items.=З'їсти @1 предметів.
 | 
			
		||||
Eat @1×@2=З'їсти @1×@2
 | 
			
		||||
Eat @2=З'їсти @2
 | 
			
		||||
Join @1 times=Приєднатися @1 разів
 | 
			
		||||
Join once=Приєднатися 1 раз
 | 
			
		||||
Mine @1 block.=Викопати @1 блок.
 | 
			
		||||
Mine @1 blocks.=Викопати @1 блоків.
 | 
			
		||||
Mine @1 times=Викопати @1 разів
 | 
			
		||||
Mine: @1×@2=Викопати: @1×@2
 | 
			
		||||
Mine: @2=Викопати: @2
 | 
			
		||||
Place @1 block.=Розмістити @1 блок.
 | 
			
		||||
Place @1 blocks.=Розмістити @1 блоків.
 | 
			
		||||
Place: @1×@2=Розмістити: @1×@2
 | 
			
		||||
Place: @2=Розмістити: @2
 | 
			
		||||
Send a chat message=Надіслати повідомлення у чат
 | 
			
		||||
@@ -1,61 +1,236 @@
 | 
			
		||||
Achievement Unlocked: =
 | 
			
		||||
Light It Up =
 | 
			
		||||
Place 100 torches. =
 | 
			
		||||
Light ALL The Things! =
 | 
			
		||||
Place 1,000 torches. =
 | 
			
		||||
Saint-Maclou =
 | 
			
		||||
Place 20 coal checkers. =
 | 
			
		||||
Castorama =
 | 
			
		||||
Place 20 iron checkers. =
 | 
			
		||||
Sam the Trapper =
 | 
			
		||||
Place 2 trap stones. =
 | 
			
		||||
Obsessed with Obsidian =
 | 
			
		||||
Mine 50 obsidian. =
 | 
			
		||||
On The Way =
 | 
			
		||||
Place 100 rails. =
 | 
			
		||||
Lumberjack =
 | 
			
		||||
Dig 100 tree blocks. =
 | 
			
		||||
Semi-pro Lumberjack =
 | 
			
		||||
Dig 1,000 tree blocks. =
 | 
			
		||||
Professional Lumberjack =
 | 
			
		||||
Dig 10,000 tree blocks. =
 | 
			
		||||
L33T Lumberjack =
 | 
			
		||||
Dig 100,000 tree blocks. =
 | 
			
		||||
Junglebaby =
 | 
			
		||||
Dig 100 jungle tree blocks. =
 | 
			
		||||
Jungleman =
 | 
			
		||||
Dig 1,000 jungle tree blocks. =
 | 
			
		||||
First Mese Find =
 | 
			
		||||
Find some Mese. =
 | 
			
		||||
You're a copper =
 | 
			
		||||
Dig 1,000 copper ores. =
 | 
			
		||||
OMG, Nyan Cat! =
 | 
			
		||||
Find a nyan cat. =
 | 
			
		||||
Mini Miner =
 | 
			
		||||
Dig 100 stone blocks. =
 | 
			
		||||
Hardened Miner =
 | 
			
		||||
Dig 1,000 stone blocks =
 | 
			
		||||
Master Miner =
 | 
			
		||||
Dig 10,000 stone blocks. =
 | 
			
		||||
Marchand De Sable =
 | 
			
		||||
Dig 1,000 sand. =
 | 
			
		||||
Frequent Visitor =
 | 
			
		||||
Connect to the server 50 times. =
 | 
			
		||||
Dying Spree =
 | 
			
		||||
Die 5 times. =
 | 
			
		||||
Bot-like =
 | 
			
		||||
Die 10 times. =
 | 
			
		||||
You Suck! =
 | 
			
		||||
Die 100 times. =
 | 
			
		||||
You're a witch! =
 | 
			
		||||
Burn to death in a fire. =
 | 
			
		||||
In the Flow =
 | 
			
		||||
Die in flowing lava. =
 | 
			
		||||
This is Sad =
 | 
			
		||||
Die near diamond ore. =
 | 
			
		||||
The Stack =
 | 
			
		||||
Die near bones. =
 | 
			
		||||
Deep Down =
 | 
			
		||||
Die below -10000 =
 | 
			
		||||
In space, no one can hear you scream =
 | 
			
		||||
Die above 10000 =
 | 
			
		||||
# textdomain: awards
 | 
			
		||||
 | 
			
		||||
### api_awards.lua ###
 | 
			
		||||
Award Unlocked!=
 | 
			
		||||
Award Unlocked: %s=
 | 
			
		||||
Secret Award Unlocked!=
 | 
			
		||||
Secret Award Unlocked: %s=
 | 
			
		||||
 | 
			
		||||
### awards.lua ###
 | 
			
		||||
A Cat in a Pop-Tart?!=
 | 
			
		||||
Architect=
 | 
			
		||||
Aspiring Farmer=
 | 
			
		||||
Backpacker=
 | 
			
		||||
Baker=
 | 
			
		||||
Banker=
 | 
			
		||||
Bricker=
 | 
			
		||||
Build a Cave=
 | 
			
		||||
Builder=
 | 
			
		||||
Burn to death in a fire.=
 | 
			
		||||
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 500 times oil extract.=
 | 
			
		||||
Craft 7 bookshelves.=
 | 
			
		||||
Craft 8 times flint and steel.=
 | 
			
		||||
Craft 800 stone bricks.=
 | 
			
		||||
Craft a diamond block.=
 | 
			
		||||
Crafter of Sticks=
 | 
			
		||||
Dandelions are Yellow=
 | 
			
		||||
Death in the Deeps=
 | 
			
		||||
Desert Discoverer=
 | 
			
		||||
Desert Dweller=
 | 
			
		||||
Die 100 times.=
 | 
			
		||||
Die above 10000=
 | 
			
		||||
Die below -10000=
 | 
			
		||||
Die in flowing lava.=
 | 
			
		||||
Die near bones.=
 | 
			
		||||
Die near diamond ore.=
 | 
			
		||||
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.=
 | 
			
		||||
Eat 10 loaves of bread.=
 | 
			
		||||
Eat 3 brown mushrooms.=
 | 
			
		||||
Eat 33 brown mushrooms.=
 | 
			
		||||
Eat 333 brown mushrooms.=
 | 
			
		||||
Eat 80 apples.=
 | 
			
		||||
Electical Engineer=
 | 
			
		||||
Engineer=
 | 
			
		||||
Factory=
 | 
			
		||||
Far Lands=
 | 
			
		||||
Farming Skills Acquired=
 | 
			
		||||
Field Worker=
 | 
			
		||||
Filthy Rich=
 | 
			
		||||
Firefighter=
 | 
			
		||||
First Day in the Woods=
 | 
			
		||||
First Gold Find=
 | 
			
		||||
First Mese Find=
 | 
			
		||||
Fortress=
 | 
			
		||||
Geraniums are Blue=
 | 
			
		||||
Girl's Best Friend=
 | 
			
		||||
Glacier Discoverer=
 | 
			
		||||
Glasser=
 | 
			
		||||
Gold Rush=
 | 
			
		||||
Grasslands Discoverer=
 | 
			
		||||
Graveyard=
 | 
			
		||||
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 space, no one can hear you scream=
 | 
			
		||||
In the Dungeon=
 | 
			
		||||
In the Flow=
 | 
			
		||||
Industrial Age=
 | 
			
		||||
Item transporter=
 | 
			
		||||
Jungle Discoverer=
 | 
			
		||||
Junglebaby=
 | 
			
		||||
Jungleman=
 | 
			
		||||
Lava Miner=
 | 
			
		||||
Lava and Water=
 | 
			
		||||
Light It Up=
 | 
			
		||||
Little Library=
 | 
			
		||||
Long Ladder=
 | 
			
		||||
Lumberjack=
 | 
			
		||||
Marchand De Sable=
 | 
			
		||||
Master Architect=
 | 
			
		||||
Master Miner=
 | 
			
		||||
Mese Mastery=
 | 
			
		||||
Mine 18 diamond ores.=
 | 
			
		||||
Mine 45 gold ores.=
 | 
			
		||||
Mine 50 obsidian.=
 | 
			
		||||
Mine a mese block.=
 | 
			
		||||
Mine a mossy cobblestone.=
 | 
			
		||||
Mine a nyan cat.=
 | 
			
		||||
Mine any block while being very close to lava.=
 | 
			
		||||
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=
 | 
			
		||||
Mushroom Lover=
 | 
			
		||||
Obsessed with Obsidian=
 | 
			
		||||
Oil Tycoon=
 | 
			
		||||
On The Way=
 | 
			
		||||
Outpost=
 | 
			
		||||
Pharaoh=
 | 
			
		||||
Place 1,000 torches.=
 | 
			
		||||
Place 100 rails.=
 | 
			
		||||
Place 100 stone.=
 | 
			
		||||
Place 100 torches.=
 | 
			
		||||
Place 10000 tubes.=
 | 
			
		||||
Place 2 trap stones.=
 | 
			
		||||
Place 20 coal checkers.=
 | 
			
		||||
Place 20 iron checkers.=
 | 
			
		||||
Place 40 steel ladders.=
 | 
			
		||||
Place 400 wooden ladders.=
 | 
			
		||||
Place 5 autocrafters.=
 | 
			
		||||
Place 500 mesecon wires.=
 | 
			
		||||
Place two snow blocks.=
 | 
			
		||||
Professional Lumberjack=
 | 
			
		||||
Put out 1000 fires.=
 | 
			
		||||
Pyromaniac=
 | 
			
		||||
Really Well Lit=
 | 
			
		||||
Roses Are Red=
 | 
			
		||||
Saint-Maclou=
 | 
			
		||||
Sam the Trapper=
 | 
			
		||||
Savannah Discoverer=
 | 
			
		||||
Semi-pro Lumberjack=
 | 
			
		||||
Smelter=
 | 
			
		||||
Tasty Mushrooms=
 | 
			
		||||
This is Sad=
 | 
			
		||||
Treasurer=
 | 
			
		||||
Underground Mushroom Farmer=
 | 
			
		||||
Very Simple Snow Man=
 | 
			
		||||
Watchtower=
 | 
			
		||||
Well Lit=
 | 
			
		||||
Wheat Magnate=
 | 
			
		||||
White Color Stock=
 | 
			
		||||
Wool Over Your Eyes=
 | 
			
		||||
Wow, I am Diamonds!=
 | 
			
		||||
You Suck!=
 | 
			
		||||
You're a witch!=
 | 
			
		||||
You’re a copper=
 | 
			
		||||
Yummy!=
 | 
			
		||||
 | 
			
		||||
### chat_commands.lua ###
 | 
			
		||||
<award ID>=
 | 
			
		||||
<name>=
 | 
			
		||||
All your awards and statistics have been cleared. You can now start again.=
 | 
			
		||||
Award not found.=
 | 
			
		||||
Get the awards statistics for the given player or yourself=
 | 
			
		||||
Show details of an award=
 | 
			
		||||
Show, clear, disable or enable your awards=
 | 
			
		||||
You have disabled awards.=
 | 
			
		||||
You have enabled awards.=
 | 
			
		||||
[c|clear|disable|enable]=
 | 
			
		||||
 | 
			
		||||
### gui.lua ###
 | 
			
		||||
%s’s awards:=
 | 
			
		||||
(Secret Award)=
 | 
			
		||||
@1 (unlocked)=
 | 
			
		||||
Awards=
 | 
			
		||||
Error: No achivements available.=
 | 
			
		||||
Error: No award available.=
 | 
			
		||||
OK=
 | 
			
		||||
Unlock this award to find out what it is.=
 | 
			
		||||
You have not unlocked any awards.=
 | 
			
		||||
You've disabled awards. Type /awards enable to reenable.=
 | 
			
		||||
 | 
			
		||||
### triggers.lua ###
 | 
			
		||||
@1/@2 chat messages=
 | 
			
		||||
@1/@2 crafted=
 | 
			
		||||
@1/@2 deaths=
 | 
			
		||||
@1/@2 dug=
 | 
			
		||||
@1/@2 eaten=
 | 
			
		||||
@1/@2 joins=
 | 
			
		||||
@1/@2 placed=
 | 
			
		||||
Chat @1 times=
 | 
			
		||||
Craft @1 item=
 | 
			
		||||
Craft @1 items.=
 | 
			
		||||
Craft: @1×@2=
 | 
			
		||||
Craft: @2=
 | 
			
		||||
Die @1 times of @2=
 | 
			
		||||
Die @1 times.=
 | 
			
		||||
Die once of @2=
 | 
			
		||||
Eat @1 item=
 | 
			
		||||
Eat @1 items.=
 | 
			
		||||
Eat @1×@2=
 | 
			
		||||
Eat @2=
 | 
			
		||||
Join @1 times=
 | 
			
		||||
Join once=
 | 
			
		||||
Mine @1 block.=
 | 
			
		||||
Mine @1 blocks.=
 | 
			
		||||
Mine @1 times=
 | 
			
		||||
Mine: @1×@2=
 | 
			
		||||
Mine: @2=
 | 
			
		||||
Place @1 block.=
 | 
			
		||||
Place @1 blocks.=
 | 
			
		||||
Place: @1×@2=
 | 
			
		||||
Place: @2=
 | 
			
		||||
Send a chat message=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								mod.conf
									
									
									
									
									
								
							@@ -1,7 +1,8 @@
 | 
			
		||||
name = awards
 | 
			
		||||
title = Achievements
 | 
			
		||||
title = Awards
 | 
			
		||||
author = rubenwardy
 | 
			
		||||
description = Adds achievements to Minetest, and an API to register new ones.
 | 
			
		||||
license = LGPL 2.1 or later
 | 
			
		||||
description = Adds awards to Minetest, and an API to register new ones.
 | 
			
		||||
optional_depends = sfinv,unified_inventory,default,stairs,farming,dye,beds,wool,vessels,moreblocks,fire,flowers,nyancat
 | 
			
		||||
license = MIT
 | 
			
		||||
forum = https://forum.minetest.net/viewtopic.php?t=4870
 | 
			
		||||
version = 2.1
 | 
			
		||||
version = 3.0.0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										138
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								readme.md
									
									
									
									
									
								
							@@ -1,138 +0,0 @@
 | 
			
		||||
# 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]
 | 
			
		||||
	* 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" or "join"
 | 
			
		||||
		* (for dig/place type) node - the nodes name
 | 
			
		||||
		* (for craft type) item - the items name
 | 
			
		||||
		* (for all types) target - how many to dig / place
 | 
			
		||||
		* 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
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
## 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_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]
 | 
			
		||||
	* deaths
 | 
			
		||||
	* chats
 | 
			
		||||
	* joins
 | 
			
		||||
							
								
								
									
										2
									
								
								settingtypes.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								settingtypes.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
# Add default achievements from the awards mod
 | 
			
		||||
awards.add_defaults (Add Default Achievements) bool true
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								sounds/awards_got_generic.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sounds/awards_got_generic.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										267
									
								
								src/api_awards.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										267
									
								
								src/api_awards.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,267 @@
 | 
			
		||||
-- Copyright (c) 2013-18 rubenwardy. MIT.
 | 
			
		||||
 | 
			
		||||
local S = awards.translator
 | 
			
		||||
 | 
			
		||||
function awards.register_award(name, def)
 | 
			
		||||
	def.name = name
 | 
			
		||||
 | 
			
		||||
	-- Add Triggers
 | 
			
		||||
	if def.trigger and def.trigger.type then
 | 
			
		||||
		local tdef = awards.registered_triggers[def.trigger.type]
 | 
			
		||||
		assert(tdef, "Trigger not found: " .. def.trigger.type)
 | 
			
		||||
		tdef:on_register(def)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	function def:can_unlock(data)
 | 
			
		||||
		if not self.requires then
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		for i=1, #self.requires do
 | 
			
		||||
			if not data.unlocked[self.requires[i]] then
 | 
			
		||||
				return false
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Add Award
 | 
			
		||||
	awards.registered_awards[name] = def
 | 
			
		||||
 | 
			
		||||
	local tdef = awards.registered_awards[name]
 | 
			
		||||
	if def.description == nil and tdef.getDefaultDescription then
 | 
			
		||||
		def.description = tdef:getDefaultDescription()
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- This function is called whenever a target condition is met.
 | 
			
		||||
-- It checks if a player already has that award, 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)
 | 
			
		||||
	-- Ensure the player is online.
 | 
			
		||||
	if not minetest.get_player_by_name(name) then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Access Player Data
 | 
			
		||||
	local data  = awards.player(name)
 | 
			
		||||
	local awdef = awards.registered_awards[award]
 | 
			
		||||
	assert(awdef, "Unable to unlock an award which doesn't exist!")
 | 
			
		||||
 | 
			
		||||
	if data.disabled or
 | 
			
		||||
			(data.unlocked[award] and data.unlocked[award] == award) then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if not awdef:can_unlock(data) then
 | 
			
		||||
		minetest.log("warning", "can_unlock returned false in unlock of " ..
 | 
			
		||||
				award .. " for " .. name)
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Unlock Award
 | 
			
		||||
	minetest.log("action", name.." has unlocked award "..award)
 | 
			
		||||
	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.hud_background or awdef.background or "awards_bg_default.png"
 | 
			
		||||
	local icon = (awdef.icon or "awards_unknown.png") .. "^[resize:32x32"
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
	-- Do Notification
 | 
			
		||||
	if sound then
 | 
			
		||||
		-- Enforce sound delay to prevent sound spamming
 | 
			
		||||
		local lastsound = data.lastsound
 | 
			
		||||
		if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then
 | 
			
		||||
			minetest.sound_play(sound, {to_player=name})
 | 
			
		||||
			data.lastsound = os.time()
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if awards.show_mode == "chat" then
 | 
			
		||||
		local chat_announce
 | 
			
		||||
		if awdef.secret then
 | 
			
		||||
			chat_announce = S("Secret Award Unlocked: %s")
 | 
			
		||||
		else
 | 
			
		||||
			chat_announce = S("Award 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 = 2, y = 1},
 | 
			
		||||
			text = background,
 | 
			
		||||
			position = {x = 0.5, y = 0.05},
 | 
			
		||||
			offset = {x = 0, y = 138},
 | 
			
		||||
			alignment = {x = 0, y = -1}
 | 
			
		||||
		})
 | 
			
		||||
		local hud_announce
 | 
			
		||||
		if awdef.secret then
 | 
			
		||||
			hud_announce = S("Secret Award Unlocked!")
 | 
			
		||||
		else
 | 
			
		||||
			hud_announce = S("Award 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.05},
 | 
			
		||||
			offset = {x = 0, y = 45},
 | 
			
		||||
			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.05},
 | 
			
		||||
			offset = {x = 0, y = 100},
 | 
			
		||||
			alignment = {x = 0, y = -1}
 | 
			
		||||
		})
 | 
			
		||||
		local four = player:hud_add({
 | 
			
		||||
			hud_elem_type = "image",
 | 
			
		||||
			name = "award_icon",
 | 
			
		||||
			scale = {x = 2, y = 2}, -- adjusted for 32x32 from x/y = 4
 | 
			
		||||
			text = icon,
 | 
			
		||||
			position = {x = 0.5, y = 0.05},
 | 
			
		||||
			offset = {x = -200.5, y = 126},
 | 
			
		||||
			alignment = {x = 0, y = -1}
 | 
			
		||||
		})
 | 
			
		||||
		minetest.after(4, function()
 | 
			
		||||
			local player2 = minetest.get_player_by_name(name)
 | 
			
		||||
			if player2 then
 | 
			
		||||
				player2:hud_remove(one)
 | 
			
		||||
				player2:hud_remove(two)
 | 
			
		||||
				player2:hud_remove(three)
 | 
			
		||||
				player2:hud_remove(four)
 | 
			
		||||
			end
 | 
			
		||||
		end)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.remove(name, award)
 | 
			
		||||
	local data  = awards.player(name)
 | 
			
		||||
	local awdef = awards.registered_awards[award]
 | 
			
		||||
	assert(awdef, "Unable to remove an award which doesn't exist!")
 | 
			
		||||
 | 
			
		||||
	if data.disabled or
 | 
			
		||||
			(not data.unlocked[award]) then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	minetest.log("action", "Award " .. award .." has been removed from ".. name)
 | 
			
		||||
	data.unlocked[award] = nil
 | 
			
		||||
	awards.save()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.get_award_states(name)
 | 
			
		||||
	local hash_is_unlocked = {}
 | 
			
		||||
	local retval = {}
 | 
			
		||||
 | 
			
		||||
	-- Add all unlocked awards
 | 
			
		||||
	local data = awards.player(name)
 | 
			
		||||
	if data and data.unlocked then
 | 
			
		||||
		for awardname, _ in pairs(data.unlocked) do
 | 
			
		||||
			local def = awards.registered_awards[awardname]
 | 
			
		||||
			if def then
 | 
			
		||||
				hash_is_unlocked[awardname] = true
 | 
			
		||||
				local score = -100000
 | 
			
		||||
 | 
			
		||||
				local difficulty = def.difficulty or 1
 | 
			
		||||
				if def.trigger and def.trigger.target then
 | 
			
		||||
					difficulty = difficulty * def.trigger.target
 | 
			
		||||
				end
 | 
			
		||||
				score = score + difficulty
 | 
			
		||||
 | 
			
		||||
				retval[#retval + 1] = {
 | 
			
		||||
					name     = awardname,
 | 
			
		||||
					def      = def,
 | 
			
		||||
					unlocked = true,
 | 
			
		||||
					started  = true,
 | 
			
		||||
					score    = score,
 | 
			
		||||
					progress = nil,
 | 
			
		||||
				}
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Add all locked awards
 | 
			
		||||
	for _, def in pairs(awards.registered_awards) do
 | 
			
		||||
		if not hash_is_unlocked[def.name] and def:can_unlock(data) then
 | 
			
		||||
			local progress = def.get_progress and def:get_progress(data)
 | 
			
		||||
			local started = false
 | 
			
		||||
			local score = def.difficulty or 1
 | 
			
		||||
			if def.secret then
 | 
			
		||||
				score = 1000000
 | 
			
		||||
			elseif def.trigger and def.trigger.target and progress then
 | 
			
		||||
				local perc = progress.current / progress.target
 | 
			
		||||
				score = score * (1 - perc) * def.trigger.target
 | 
			
		||||
				if perc < 0.001 then
 | 
			
		||||
					score = score + 100
 | 
			
		||||
				else
 | 
			
		||||
					started = true
 | 
			
		||||
				end
 | 
			
		||||
			else
 | 
			
		||||
				score = 100
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			retval[#retval + 1] = {
 | 
			
		||||
				name     = def.name,
 | 
			
		||||
				def      = def,
 | 
			
		||||
				unlocked = false,
 | 
			
		||||
				started  = started,
 | 
			
		||||
				score    = score,
 | 
			
		||||
				progress = progress,
 | 
			
		||||
			}
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	table.sort(retval, function(a, b)
 | 
			
		||||
		return a.score < b.score
 | 
			
		||||
	end)
 | 
			
		||||
	return retval
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										222
									
								
								src/api_triggers.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										222
									
								
								src/api_triggers.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,222 @@
 | 
			
		||||
-- Copyright (c) 2013-18 rubenwardy. MIT.
 | 
			
		||||
 | 
			
		||||
local function ngettext(msgid, msgid_plural, n, ...)
 | 
			
		||||
	return awards.translator(n==1 and msgid or msgid_plural, ...)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local S, NS = awards.translator, ngettext
 | 
			
		||||
 | 
			
		||||
awards.on = {}
 | 
			
		||||
 | 
			
		||||
local default_def = {}
 | 
			
		||||
 | 
			
		||||
function default_def:run_callbacks(player, data, table_func)
 | 
			
		||||
	for i = 1, #self.on do
 | 
			
		||||
		local res = nil
 | 
			
		||||
		local entry = self.on[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.register_trigger(tname, tdef)
 | 
			
		||||
	assert(type(tdef) == "table",
 | 
			
		||||
			"Passing a callback to register_trigger is not supported in 3.0")
 | 
			
		||||
 | 
			
		||||
	tdef.name = tname
 | 
			
		||||
	for key, value in pairs(default_def) do
 | 
			
		||||
		tdef[key] = value
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if tdef.type == "counted" then
 | 
			
		||||
		local old_reg = tdef.on_register
 | 
			
		||||
 | 
			
		||||
		function tdef:on_register(def)
 | 
			
		||||
			local tmp = {
 | 
			
		||||
				award  = def.name,
 | 
			
		||||
				target = def.trigger.target,
 | 
			
		||||
			}
 | 
			
		||||
			tdef.register(tmp)
 | 
			
		||||
 | 
			
		||||
			function def.get_progress(_, data)
 | 
			
		||||
				local current = math.min(data[tname] or 0, tmp.target)
 | 
			
		||||
				return {
 | 
			
		||||
					current = current,
 | 
			
		||||
					target = tmp.target,
 | 
			
		||||
					label = S(tdef.progress, current, tmp.target),
 | 
			
		||||
				}
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			function def.getDefaultDescription(_)
 | 
			
		||||
				local n = def.trigger.target
 | 
			
		||||
				return NS(tdef.auto_description[1], tdef.auto_description[2], n, n)
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			if old_reg then
 | 
			
		||||
				return old_reg(tdef, def)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		function tdef.notify(player)
 | 
			
		||||
			assert(player and player.is_player and player:is_player())
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			local data = awards.player(name)
 | 
			
		||||
 | 
			
		||||
			-- Increment counter
 | 
			
		||||
			local currentVal = (data[tname] or 0) + 1
 | 
			
		||||
			data[tname] = currentVal
 | 
			
		||||
 | 
			
		||||
			tdef:run_callbacks(player, data, function(entry)
 | 
			
		||||
				if entry.target and entry.award and currentVal and
 | 
			
		||||
						currentVal >= entry.target then
 | 
			
		||||
					return entry.award
 | 
			
		||||
				end
 | 
			
		||||
			end)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		awards["notify_" .. tname] = tdef.notify
 | 
			
		||||
 | 
			
		||||
	elseif tdef.type == "counted_key" then
 | 
			
		||||
		if tdef.key_is_item then
 | 
			
		||||
			tdef.watched_groups = {}
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- On award register
 | 
			
		||||
		local old_reg = tdef.on_register
 | 
			
		||||
		function tdef:on_register(def)
 | 
			
		||||
			-- Register trigger
 | 
			
		||||
			local tmp = {
 | 
			
		||||
				award  = def.name,
 | 
			
		||||
				key    = tdef:get_key(def),
 | 
			
		||||
				target = def.trigger.target,
 | 
			
		||||
			}
 | 
			
		||||
			tdef.register(tmp)
 | 
			
		||||
 | 
			
		||||
			-- If group, add it to watch list
 | 
			
		||||
			if tdef.key_is_item and tmp.key and tmp.key:sub(1, 6) == "group:" then
 | 
			
		||||
				tdef.watched_groups[tmp.key:sub(7, #tmp.key)] = true
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			-- Called to get progress values and labels
 | 
			
		||||
			function def.get_progress(_, data)
 | 
			
		||||
				data[tname] = data[tname] or {}
 | 
			
		||||
 | 
			
		||||
				local done
 | 
			
		||||
				if tmp.key then
 | 
			
		||||
					done = data[tname][tmp.key] or 0
 | 
			
		||||
				else
 | 
			
		||||
					done = data[tname].__total or 0
 | 
			
		||||
				end
 | 
			
		||||
				done = math.min(done, tmp.target)
 | 
			
		||||
 | 
			
		||||
				return {
 | 
			
		||||
					current = done,
 | 
			
		||||
					target = tmp.target,
 | 
			
		||||
					label = S(tdef.progress, done, tmp.target),
 | 
			
		||||
				}
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			-- Build description if none is specificed by the award
 | 
			
		||||
			function def.getDefaultDescription(_)
 | 
			
		||||
				local n = def.trigger.target
 | 
			
		||||
				if tmp.key then
 | 
			
		||||
					local nname = tmp.key
 | 
			
		||||
					return NS(tdef.auto_description[1],
 | 
			
		||||
							tdef.auto_description[2], n, n, nname)
 | 
			
		||||
				else
 | 
			
		||||
					return NS(tdef.auto_description_total[1],
 | 
			
		||||
							tdef.auto_description_total[2], n, n)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			-- Call on_register in trigger type definition
 | 
			
		||||
			if old_reg then
 | 
			
		||||
				return old_reg(tdef, def)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		function tdef.notify(player, key, n)
 | 
			
		||||
			n = n or 1
 | 
			
		||||
 | 
			
		||||
			if tdef.key_is_item and key:sub(1, 6) ~= "group:" then
 | 
			
		||||
				local itemdef = minetest.registered_items[key]
 | 
			
		||||
				if itemdef then
 | 
			
		||||
					for groupname,rating in pairs(itemdef.groups or {}) do
 | 
			
		||||
						if rating ~= 0 and tdef.watched_groups[groupname] then
 | 
			
		||||
							tdef.notify(player, "group:" .. groupname, n)
 | 
			
		||||
						end
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			assert(player and player.is_player and player:is_player() and key)
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			local data = awards.player(name)
 | 
			
		||||
 | 
			
		||||
			-- Increment counter
 | 
			
		||||
			data[tname] = data[tname] or {}
 | 
			
		||||
			local currentVal = (data[tname][key] or 0) + n
 | 
			
		||||
			data[tname][key] = currentVal
 | 
			
		||||
			data[tname].__total = (data[tname].__total or 0)
 | 
			
		||||
			if key:sub(1, 6) ~= "group:" then
 | 
			
		||||
				data[tname].__total = data[tname].__total + n
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			tdef:run_callbacks(player, data, function(entry)
 | 
			
		||||
				local current
 | 
			
		||||
				if entry.key == key then
 | 
			
		||||
					current = currentVal
 | 
			
		||||
				elseif entry.key == nil then
 | 
			
		||||
					current = data[tname].__total
 | 
			
		||||
				else
 | 
			
		||||
					return
 | 
			
		||||
				end
 | 
			
		||||
				if current >= entry.target then
 | 
			
		||||
					return entry.award
 | 
			
		||||
				end
 | 
			
		||||
			end)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		awards["notify_" .. tname] = tdef.notify
 | 
			
		||||
 | 
			
		||||
	elseif tdef.type and tdef.type ~= "custom" then
 | 
			
		||||
		error("Unrecognised trigger type " .. tdef.type)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	awards.registered_triggers[tname] = tdef
 | 
			
		||||
 | 
			
		||||
	tdef.on = {}
 | 
			
		||||
	tdef.register = function(func)
 | 
			
		||||
		table.insert(tdef.on, func)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Backwards compat
 | 
			
		||||
	awards.on[tname] = tdef.on
 | 
			
		||||
	awards['register_on_' .. tname] = tdef.register
 | 
			
		||||
	return tdef
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.increment_item_counter(data, field, itemname, count)
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	data[field][itemname] = (data[field][itemname] or 0) + (count or 1)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.get_item_count(data, field, itemname)
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	return data[field][itemname] or 0
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.get_total_keyed_count(data, field)
 | 
			
		||||
	return data[field].__total or 0
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.register_on_unlock(func)
 | 
			
		||||
	table.insert(awards.on_unlock, func)
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										1112
									
								
								src/awards.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1112
									
								
								src/awards.lua
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										61
									
								
								src/chat_commands.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								src/chat_commands.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
-- Copyright (c) 2013-18 rubenwardy. MIT.
 | 
			
		||||
 | 
			
		||||
local S = awards.translator
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awards", {
 | 
			
		||||
	params = S("[c|clear|disable|enable]"),
 | 
			
		||||
	description = S("Show, clear, disable or enable your awards"),
 | 
			
		||||
	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 awards."))
 | 
			
		||||
		elseif param == "enable" then
 | 
			
		||||
			awards.enable(name)
 | 
			
		||||
			minetest.chat_send_player(name, S("You have enabled awards."))
 | 
			
		||||
		elseif param == "c" then
 | 
			
		||||
			awards.show_to(name, name, nil, true)
 | 
			
		||||
		else
 | 
			
		||||
			awards.show_to(name, name, nil, false)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if (param == "disable" or param == "enable") and minetest.global_exists("sfinv") then
 | 
			
		||||
			local player = minetest.get_player_by_name(name)
 | 
			
		||||
			if player then
 | 
			
		||||
				sfinv.set_player_inventory_formspec(player)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awd", {
 | 
			
		||||
	params = S("<award ID>"),
 | 
			
		||||
	description = S("Show details of an award"),
 | 
			
		||||
	func = function(name, param)
 | 
			
		||||
		local def = awards.registered_awards[param]
 | 
			
		||||
		if def then
 | 
			
		||||
			minetest.chat_send_player(name, string.format("%s: %s", def.title, def.description))
 | 
			
		||||
		else
 | 
			
		||||
			minetest.chat_send_player(name, S("Award not found."))
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awpl", {
 | 
			
		||||
	privs = {
 | 
			
		||||
		server = true
 | 
			
		||||
	},
 | 
			
		||||
	params = S("<name>"),
 | 
			
		||||
	description = S("Get the awards 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
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										112
									
								
								src/data.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								src/data.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,112 @@
 | 
			
		||||
 | 
			
		||||
local storage = minetest.get_mod_storage()
 | 
			
		||||
local __player_data
 | 
			
		||||
 | 
			
		||||
-- Table Save Load Functions
 | 
			
		||||
function awards.save()
 | 
			
		||||
	storage:set_string("player_data", minetest.write_json(__player_data))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function convert_data()
 | 
			
		||||
	minetest.log("warning", "Importing awards data from previous version")
 | 
			
		||||
 | 
			
		||||
	local old_players = __player_data
 | 
			
		||||
	__player_data = {}
 | 
			
		||||
	for name, data in pairs(old_players) do
 | 
			
		||||
		while name.name do
 | 
			
		||||
			name = name.name
 | 
			
		||||
		end
 | 
			
		||||
		data.name = name
 | 
			
		||||
		print("Converting data for " .. name)
 | 
			
		||||
 | 
			
		||||
		-- Just rename counted
 | 
			
		||||
		local counted = {
 | 
			
		||||
			chats  = "chat",
 | 
			
		||||
			deaths = "death",
 | 
			
		||||
			joins  = "join",
 | 
			
		||||
		}
 | 
			
		||||
		for from, to in pairs(counted) do
 | 
			
		||||
			data[to]   = data[from]
 | 
			
		||||
			data[from] = nil
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		data.death = {
 | 
			
		||||
			unknown = data.death,
 | 
			
		||||
			__total = data.death,
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		-- Convert item db to new format
 | 
			
		||||
		local counted_items = {
 | 
			
		||||
			count = "dig",
 | 
			
		||||
			place = "place",
 | 
			
		||||
			craft = "craft",
 | 
			
		||||
		}
 | 
			
		||||
		for from, to in pairs(counted_items) do
 | 
			
		||||
			local ret = {}
 | 
			
		||||
 | 
			
		||||
			local count = 0
 | 
			
		||||
			if data[from] then
 | 
			
		||||
				for modname, items in pairs(data[from]) do
 | 
			
		||||
					for itemname, value in pairs(items) do
 | 
			
		||||
						itemname = modname .. ":" .. itemname
 | 
			
		||||
						local key = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
						ret[key] = value
 | 
			
		||||
						count = count + value
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			ret.__total = count
 | 
			
		||||
			data[from] = nil
 | 
			
		||||
			data[to] = ret
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		__player_data[name] = data
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.load()
 | 
			
		||||
	local old_save_path = minetest.get_worldpath().."/awards.txt"
 | 
			
		||||
	local file = io.open(old_save_path, "r")
 | 
			
		||||
	if file then
 | 
			
		||||
		local table = minetest.deserialize(file:read("*all"))
 | 
			
		||||
		if type(table) == "table" then
 | 
			
		||||
			__player_data = table
 | 
			
		||||
			convert_data()
 | 
			
		||||
		else
 | 
			
		||||
			__player_data = {}
 | 
			
		||||
		end
 | 
			
		||||
		file:close()
 | 
			
		||||
		os.rename(old_save_path, minetest.get_worldpath().."/awards.bk.txt")
 | 
			
		||||
		awards.save()
 | 
			
		||||
	else
 | 
			
		||||
		local json = storage:get("player_data")
 | 
			
		||||
		__player_data = json and minetest.parse_json(json) or {}
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.player(name)
 | 
			
		||||
	assert(type(name) == "string")
 | 
			
		||||
	local data = __player_data[name] or {}
 | 
			
		||||
	__player_data[name] = data
 | 
			
		||||
 | 
			
		||||
	data.name     = data.name or name
 | 
			
		||||
	data.unlocked = data.unlocked or {}
 | 
			
		||||
	return data
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.player_or_nil(name)
 | 
			
		||||
	return __player_data[name]
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.enable(name)
 | 
			
		||||
	awards.player(name).disabled = nil
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.disable(name)
 | 
			
		||||
	awards.player(name).disabled = true
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.clear_player(name)
 | 
			
		||||
	__player_data[name] = {}
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										223
									
								
								src/gui.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										223
									
								
								src/gui.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,223 @@
 | 
			
		||||
-- Copyright (c) 2013-18 rubenwardy. MIT.
 | 
			
		||||
 | 
			
		||||
local S = awards.translator
 | 
			
		||||
 | 
			
		||||
function awards.get_formspec(name, to, sid)
 | 
			
		||||
	local formspec = ""
 | 
			
		||||
	local awards_list = awards.get_award_states(name)
 | 
			
		||||
 | 
			
		||||
	if #awards_list == 0 then
 | 
			
		||||
		formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No achivements available.")).."]"
 | 
			
		||||
		formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]"
 | 
			
		||||
		return formspec
 | 
			
		||||
	end
 | 
			
		||||
	sid = awards_list[sid] and sid or 1
 | 
			
		||||
 | 
			
		||||
	-- Sidebar
 | 
			
		||||
	local sitem = awards_list[sid]
 | 
			
		||||
	local sdef = sitem.def
 | 
			
		||||
	if sdef and sdef.secret and not sitem.unlocked then
 | 
			
		||||
		formspec = formspec .. "label[1,2.75;"..
 | 
			
		||||
				minetest.formspec_escape(S("(Secret Award)")).."]"..
 | 
			
		||||
				"image[1,0;3,3;awards_unknown.png]"
 | 
			
		||||
		if sdef and sdef.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 = sitem.name
 | 
			
		||||
		if sdef and sdef.title then
 | 
			
		||||
			title = sdef.title
 | 
			
		||||
		end
 | 
			
		||||
		local status = "@1"
 | 
			
		||||
		if sitem.unlocked then
 | 
			
		||||
			-- Don't actually use translator here. We define empty S() to fool the update_translations script
 | 
			
		||||
			-- into extracting that string for the templates.
 | 
			
		||||
			local function S(str)
 | 
			
		||||
				return str
 | 
			
		||||
			end
 | 
			
		||||
			status = S("@1 (unlocked)")
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		formspec = formspec .. "textarea[0.5,3.1;4.8,1.45;;" ..
 | 
			
		||||
			S(status, minetest.formspec_escape(title)) ..
 | 
			
		||||
			";]"
 | 
			
		||||
 | 
			
		||||
		if sdef and sdef.icon then
 | 
			
		||||
			formspec = formspec .. "image[0.45,0;3.5,3.5;" .. minetest.formspec_escape(sdef.icon) .. "]"  -- adjusted values from 0.6,0;3,3
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if sitem.progress then
 | 
			
		||||
			local barwidth = 3.95
 | 
			
		||||
			local perc = sitem.progress.current / sitem.progress.target
 | 
			
		||||
			local label = sitem.progress.label
 | 
			
		||||
			if perc > 1 then
 | 
			
		||||
				perc = 1
 | 
			
		||||
			end
 | 
			
		||||
			formspec = formspec .. "background[0,8.24;" .. barwidth ..",0.4;awards_progress_gray.png;false]"
 | 
			
		||||
			formspec = formspec .. "background[0,8.24;" .. (barwidth * perc) ..",0.4;awards_progress_green.png;false]"
 | 
			
		||||
			if label then
 | 
			
		||||
				formspec = formspec .. "label[1.6,8.15;" .. minetest.formspec_escape(label) .. "]"
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if sdef and sdef.description then
 | 
			
		||||
			formspec = formspec .. "box[-0.05,3.75;3.9,4.2;#000]"
 | 
			
		||||
			formspec = formspec	.. "textarea[0.25,3.75;3.9,4.2;;" ..
 | 
			
		||||
					minetest.formspec_escape(sdef.description) .. ";]"
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Create list box
 | 
			
		||||
	formspec = formspec .. "textlist[4,0;3.8,8.6;awards;"
 | 
			
		||||
	local first = true
 | 
			
		||||
	for _, award in pairs(awards_list) do
 | 
			
		||||
		local def = award.def
 | 
			
		||||
		if def then
 | 
			
		||||
			if not first then
 | 
			
		||||
				formspec = formspec .. ","
 | 
			
		||||
			end
 | 
			
		||||
			first = false
 | 
			
		||||
 | 
			
		||||
			if def.secret and not award.unlocked 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
 | 
			
		||||
				-- title = title .. " [" .. award.score .. "]"
 | 
			
		||||
				if award.unlocked then
 | 
			
		||||
					formspec = formspec .. minetest.formspec_escape(title)
 | 
			
		||||
				elseif award.started then
 | 
			
		||||
					formspec = formspec .. "#c0c0c0".. minetest.formspec_escape(title)
 | 
			
		||||
				else
 | 
			
		||||
					formspec = formspec .. "#a0a0a0".. 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
 | 
			
		||||
	local data = awards.player(to)
 | 
			
		||||
	if name == to and data.disabled then
 | 
			
		||||
		minetest.chat_send_player(name, S("You've disabled awards. Type /awards enable to reenable."))
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	if text then
 | 
			
		||||
		local awards_list = awards.get_award_states(name)
 | 
			
		||||
		if #awards_list == 0 then
 | 
			
		||||
			minetest.chat_send_player(to, S("Error: No award available."))
 | 
			
		||||
			return
 | 
			
		||||
		elseif not data or not data.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(data.unlocked) do
 | 
			
		||||
			local def = awards.registered_awards[str]
 | 
			
		||||
			if def then
 | 
			
		||||
				if def.title then
 | 
			
		||||
					if def.description then
 | 
			
		||||
						minetest.chat_send_player(to, string.format("%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
 | 
			
		||||
		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[8,8.6]" .. deco ..
 | 
			
		||||
			awards.get_formspec(name, to, sid))
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("sfinv") then
 | 
			
		||||
	sfinv.register_page("awards:awards", {
 | 
			
		||||
		title = S("Awards"),
 | 
			
		||||
		on_enter = function(self, player, context)
 | 
			
		||||
			context.awards_idx = 1
 | 
			
		||||
		end,
 | 
			
		||||
		is_in_nav = function(self, player, context)
 | 
			
		||||
			local data = awards.player(player:get_player_name())
 | 
			
		||||
			return not data.disabled
 | 
			
		||||
		end,
 | 
			
		||||
		get = function(self, player, context)
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			return sfinv.make_formspec(player, context,
 | 
			
		||||
				awards.get_formspec(name, name, context.awards_idx),
 | 
			
		||||
				false)
 | 
			
		||||
		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
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	local function check_and_reshow(name)
 | 
			
		||||
		local player = minetest.get_player_by_name(name)
 | 
			
		||||
		if not player then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		local context = sfinv.get_or_create_context(player)
 | 
			
		||||
		if context.page ~= "awards:awards" then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		sfinv.set_player_inventory_formspec(player, context)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	awards.register_on_unlock(check_and_reshow)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("unified_inventory") ~= nil then
 | 
			
		||||
	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
 | 
			
		||||
							
								
								
									
										151
									
								
								src/triggers.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								src/triggers.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,151 @@
 | 
			
		||||
-- 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.
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
-- Don't actually use translator here. We define empty S() to fool the update_translations script
 | 
			
		||||
-- into extracting those strings for the templates. Actual translation is done in api_triggers.lua.
 | 
			
		||||
local S = function (str)
 | 
			
		||||
	return str
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Check if a player object is valid for awards.
 | 
			
		||||
local function player_ok(player)
 | 
			
		||||
	return player and player.is_player and player:is_player() and not player.is_fake_player
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("chat", {
 | 
			
		||||
	type = "counted",
 | 
			
		||||
	progress = S("@1/@2 chat messages"),
 | 
			
		||||
	auto_description = { S("Send a chat message"), S("Chat @1 times") },
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_chat_message(function(name, message)
 | 
			
		||||
	local player = minetest.get_player_by_name(name)
 | 
			
		||||
	if not player_ok(player) or string.find(message, "/")  then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	awards.notify_chat(player)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("join", {
 | 
			
		||||
	type = "counted",
 | 
			
		||||
	progress = S("@1/@2 joins"),
 | 
			
		||||
	auto_description = { S("Join once"), S("Join @1 times") },
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_joinplayer(awards.notify_join)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("death", {
 | 
			
		||||
	type = "counted_key",
 | 
			
		||||
	progress = S("@1/@2 deaths"),
 | 
			
		||||
	auto_description = { S("Die once of @2"), S("Die @1 times of @2") },
 | 
			
		||||
	auto_description_total = { S("Die @1 times."), S("Mine @1 times") },
 | 
			
		||||
	get_key = function(self, def)
 | 
			
		||||
		return def.trigger.reason
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_dieplayer(function(player, reason)
 | 
			
		||||
	if reason then
 | 
			
		||||
		reason = reason.type
 | 
			
		||||
	else
 | 
			
		||||
		reason = "unknown"
 | 
			
		||||
	end
 | 
			
		||||
	awards.notify_death(player, reason)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("dig", {
 | 
			
		||||
	type = "counted_key",
 | 
			
		||||
	progress = S("@1/@2 dug"),
 | 
			
		||||
	auto_description = { S("Mine: @2"), S("Mine: @1×@2") },
 | 
			
		||||
	auto_description_total = { S("Mine @1 block."), S("Mine @1 blocks.") },
 | 
			
		||||
	get_key = function(self, def)
 | 
			
		||||
		return minetest.registered_aliases[def.trigger.node] or def.trigger.node
 | 
			
		||||
	end,
 | 
			
		||||
	key_is_item = true,
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_dignode(function(pos, node, player)
 | 
			
		||||
	if not player_ok(player) or not pos or not node then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local node_name = node.name
 | 
			
		||||
	node_name = minetest.registered_aliases[node_name] or node_name
 | 
			
		||||
	awards.notify_dig(player, node_name)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("place", {
 | 
			
		||||
	type = "counted_key",
 | 
			
		||||
	progress = S("@1/@2 placed"),
 | 
			
		||||
	auto_description = { S("Place: @2"), S("Place: @1×@2") },
 | 
			
		||||
	auto_description_total = { S("Place @1 block."), S("Place @1 blocks.") },
 | 
			
		||||
	get_key = function(self, def)
 | 
			
		||||
		return minetest.registered_aliases[def.trigger.node] or def.trigger.node
 | 
			
		||||
	end,
 | 
			
		||||
	key_is_item = true,
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_placenode(function(pos, node, player)
 | 
			
		||||
	if not player_ok(player) or not pos or not node then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local node_name = node.name
 | 
			
		||||
	node_name = minetest.registered_aliases[node_name] or node_name
 | 
			
		||||
	awards.notify_place(player, node_name)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("craft", {
 | 
			
		||||
	type = "counted_key",
 | 
			
		||||
	progress = S("@1/@2 crafted"),
 | 
			
		||||
	auto_description = { S("Craft: @2"), S("Craft: @1×@2") },
 | 
			
		||||
	auto_description_total = { S("Craft @1 item"), S("Craft @1 items.") },
 | 
			
		||||
	get_key = function(self, def)
 | 
			
		||||
		return minetest.registered_aliases[def.trigger.item] or def.trigger.item
 | 
			
		||||
	end,
 | 
			
		||||
	key_is_item = true,
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
 | 
			
		||||
	if not player_ok(player) or itemstack:is_empty() then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local itemname = itemstack:get_name()
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	awards.notify_craft(player, itemname, itemstack:get_count())
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("eat", {
 | 
			
		||||
	type = "counted_key",
 | 
			
		||||
	progress = S("@1/@2 eaten"),
 | 
			
		||||
	auto_description = { S("Eat @2"), S("Eat @1×@2") },
 | 
			
		||||
	auto_description_total = { S("Eat @1 item"), S("Eat @1 items.") },
 | 
			
		||||
	get_key = function(self, def)
 | 
			
		||||
		return minetest.registered_aliases[def.trigger.item] or def.trigger.item
 | 
			
		||||
	end,
 | 
			
		||||
	key_is_item = true,
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_item_eat(function(_, _, itemstack, player, _)
 | 
			
		||||
	if not player_ok(player) or itemstack:is_empty() then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local itemname = itemstack:get_name()
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	awards.notify_eat(player, itemname)
 | 
			
		||||
end)
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_Pyromaniac.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_Pyromaniac.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_a_cat_in_a_pop_tart.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_a_cat_in_a_pop_tart.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_architect.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_architect.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_aspiring_farmer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_aspiring_farmer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_backpacker.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_backpacker.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_baker.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_baker.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_banker.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_banker.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_bricker.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_bricker.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_build_a_cave.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_build_a_cave.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_builder.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_builder.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_castorama.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_castorama.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_crafter_of_sticks.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_crafter_of_sticks.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_dandelions_are_yellow.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_dandelions_are_yellow.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_desert_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_desert_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_desert_dweller.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_desert_dweller.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_engineer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_engineer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_far_lands.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_far_lands.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_farming_skills_acquired.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_farming_skills_acquired.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_field_worker.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_field_worker.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_filthy_rich.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_filthy_rich.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_firefighter.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_firefighter.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_first_day_in_the_woods.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_first_day_in_the_woods.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_first_gold_find.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_first_gold_find.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_first_mese_find.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_first_mese_find.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_fortress.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_fortress.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_geraniums_are_blue.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_geraniums_are_blue.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_girls_best_friend.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_girls_best_friend.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_glacier_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_glacier_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_glasser.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_glasser.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_gold_rush.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_gold_rush.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_grasslands_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_grasslands_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_hardened_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_hardened_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_hardest_block_on_earth.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_hardest_block_on_earth.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_hotelier.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_hotelier.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_house_of_obsidian.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_house_of_obsidian.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_in_the_dungeon.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_in_the_dungeon.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_industrial_age.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_industrial_age.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_jungle_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_jungle_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_junglebaby.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_junglebaby.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_jungleman.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_jungleman.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_lava_and_water.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_lava_and_water.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_lava_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_lava_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level1.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level1.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level2.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level2.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level3.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level3.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level4.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level4.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level5.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level5.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level6.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level6.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level7.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_level7.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_light_it_up.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_light_it_up.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_little_library.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_little_library.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_long_ladder.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_long_ladder.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_lumberjack.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_lumberjack.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_marchand_de_sable.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_marchand_de_sable.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_master_architect.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_master_architect.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_master_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_master_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_mese_mastery.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_mese_mastery.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_mini_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_mini_miner.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_mushroom_lover.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_mushroom_lover.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_obsessed_with_obsidian.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_obsessed_with_obsidian.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_on_the_way.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_on_the_way.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_outpost.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_outpost.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_pharaoh.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_pharaoh.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_professional_lumberjack.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_professional_lumberjack.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_really_well_lit.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_really_well_lit.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_roses_are_red.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_roses_are_red.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_saint_maclou.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_saint_maclou.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_sam_the_trapper.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_sam_the_trapper.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_savannah_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_savannah_discoverer.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								textures/_Gimp/awards_semi_pro_lumberjack.xcf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/_Gimp/awards_semi_pro_lumberjack.xcf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user