1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-06-28 06:11:47 +02:00

initial commit

subgame + mods
This commit is contained in:
Ombridride
2014-10-28 18:01:32 +01:00
parent baab1b3f7c
commit 232b274c55
6451 changed files with 226156 additions and 0 deletions

1
mods/unifieddyes/.gitignore vendored Executable file
View File

@ -0,0 +1 @@
*~

614
mods/unifieddyes/LICENSE Executable file
View File

@ -0,0 +1,614 @@
LICENSING INFORMATION
For everything but the bucket textures, GPL 2.0
-----
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 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.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, 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 or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
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 give any other recipients of the Program a copy of this License
along with the Program.
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 Program or any portion
of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
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 Program, 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 Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) 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; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, 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 executable. However, as a
special exception, the source code 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.
If distribution of executable or 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 counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program 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.
5. 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 Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program 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 to
this License.
7. 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 Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program 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 Program.
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.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program 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.
9. The Free Software Foundation may publish revised and/or new versions
of the 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 Program
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 Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, 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
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
==============================================================================
For the bucket textures, CC-BY-SA 3.0
-----
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT
RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS.
CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND
DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE
CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE
IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
1. Definitions
"Adaptation" means a work based upon the Work, or upon the Work and other
pre-existing works, such as a translation, adaptation, derivative work,
arrangement of music or other alterations of a literary or artistic work, or
phonogram or performance and includes cinematographic adaptations or any other
form in which the Work may be recast, transformed, or adapted including in any
form recognizably derived from the original, except that a work that
constitutes a Collection will not be considered an Adaptation for the purpose
of this License. For the avoidance of doubt, where the Work is a musical work,
performance or phonogram, the synchronization of the Work in timed-relation
with a moving image ("synching") will be considered an Adaptation for the
purpose of this License.
"Collection" means a collection of literary or artistic works, such as
encyclopedias and anthologies, or performances, phonograms or broadcasts, or
other works or subject matter other than works listed in Section 1(f) below,
which, by reason of the selection and arrangement of their contents, constitute
intellectual creations, in which the Work is included in its entirety in
unmodified form along with one or more other contributions, each constituting
separate and independent works in themselves, which together are assembled into
a collective whole. A work that constitutes a Collection will not be considered
an Adaptation (as defined below) for the purposes of this License.
"Creative Commons Compatible License" means a license that is listed at
http://creativecommons.org/compatiblelicenses that has been approved by
Creative Commons as being essentially equivalent to this License, including, at
a minimum, because that license: (i) contains terms that have the same purpose,
meaning and effect as the License Elements of this License; and, (ii)
explicitly permits the relicensing of adaptations of works made available under
that license under this License or a Creative Commons jurisdiction license with
the same License Elements as this License.
"Distribute" means to make available to the public the original and copies
of the Work or Adaptation, as appropriate, through sale or other transfer of
ownership.
"License Elements" means the following high-level license attributes as
selected by Licensor and indicated in the title of this License: Attribution,
ShareAlike.
"Licensor" means the individual, individuals, entity or entities that
offer(s) the Work under the terms of this License.
"Original Author" means, in the case of a literary or artistic work, the
individual, individuals, entity or entities who created the Work or if no
individual or entity can be identified, the publisher; and in addition (i) in
the case of a performance the actors, singers, musicians, dancers, and other
persons who act, sing, deliver, declaim, play in, interpret or otherwise
perform literary or artistic works or expressions of folklore; (ii) in the case
of a phonogram the producer being the person or legal entity who first fixes
the sounds of a performance or other sounds; and, (iii) in the case of
broadcasts, the organization that transmits the broadcast.
"Work" means the literary and/or artistic work offered under the terms of
this License including without limitation any production in the literary,
scientific and artistic domain, whatever may be the mode or form of its
expression including digital form, such as a book, pamphlet and other writing;
a lecture, address, sermon or other work of the same nature; a dramatic or
dramatico-musical work; a choreographic work or entertainment in dumb show; a
musical composition with or without words; a cinematographic work to which are
assimilated works expressed by a process analogous to cinematography; a work of
drawing, painting, architecture, sculpture, engraving or lithography; a
photographic work to which are assimilated works expressed by a process
analogous to photography; a work of applied art; an illustration, map, plan,
sketch or three-dimensional work relative to geography, topography,
architecture or science; a performance; a broadcast; a phonogram; a compilation
of data to the extent it is protected as a copyrightable work; or a work
performed by a variety or circus performer to the extent it is not otherwise
considered a literary or artistic work.
"You" means an individual or entity exercising rights under this License
who has not previously violated the terms of this License with respect to the
Work, or who has received express permission from the Licensor to exercise
rights under this License despite a previous violation.
"Publicly Perform" means to perform public recitations of the Work and to
communicate to the public those public recitations, by any means or process,
including by wire or wireless means or public digital performances; to make
available to the public Works in such a way that members of the public may
access these Works from a place and at a place individually chosen by them; to
perform the Work to the public by any means or process and the communication to
the public of the performances of the Work, including by public digital
performance; to broadcast and rebroadcast the Work by any means including
signs, sounds or images.
"Reproduce" means to make copies of the Work by any means including without
limitation by sound or visual recordings and the right of fixation and
reproducing fixations of the Work, including storage of a protected performance
or phonogram in digital form or other electronic medium.
2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit,
or restrict any uses free from copyright or rights arising from limitations or
exceptions that are provided for in connection with the copyright protection
under copyright law or other applicable laws.
3. License Grant. Subject to the terms and conditions of this License, Licensor
hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the
duration of the applicable copyright) license to exercise the rights in the
Work as stated below:
to Reproduce the Work, to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated in the Collections;
to create and Reproduce Adaptations provided that any such Adaptation,
including any translation in any medium, takes reasonable steps to clearly
label, demarcate or otherwise identify that changes were made to the original
Work. For example, a translation could be marked "The original work was
translated from English to Spanish," or a modification could indicate "The
original work has been modified.";
to Distribute and Publicly Perform the Work including as incorporated in
Collections; and,
to Distribute and Publicly Perform Adaptations.
For the avoidance of doubt:
Non-waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or compulsory
licensing scheme cannot be waived, the Licensor reserves the exclusive right to
collect such royalties for any exercise by You of the rights granted under this
License;
Waivable Compulsory License Schemes. In those jurisdictions in which
the right to collect royalties through any statutory or compulsory licensing
scheme can be waived, the Licensor waives the exclusive right to collect such
royalties for any exercise by You of the rights granted under this License;
and,
Voluntary License Schemes. The Licensor waives the right to collect
royalties, whether individually or, in the event that the Licensor is a member
of a collecting society that administers voluntary licensing schemes, via that
society, from any exercise by You of the rights granted under this License.
The above rights may be exercised in all media and formats whether now known or
hereafter devised. The above rights include the right to make such
modifications as are technically necessary to exercise the rights in other
media and formats. Subject to Section 8(f), all rights not expressly granted by
Licensor are hereby reserved.
4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:
You may Distribute or Publicly Perform the Work only under the terms of
this License. You must include a copy of, or the Uniform Resource Identifier
(URI) for, this License with every copy of the Work You Distribute or Publicly
Perform. You may not offer or impose any terms on the Work that restrict the
terms of this License or the ability of the recipient of the Work to exercise
the rights granted to that recipient under the terms of the License. You may
not sublicense the Work. You must keep intact all notices that refer to this
License and to the disclaimer of warranties with every copy of the Work You
Distribute or Publicly Perform. When You Distribute or Publicly Perform the
Work, You may not impose any effective technological measures on the Work that
restrict the ability of a recipient of the Work from You to exercise the rights
granted to that recipient under the terms of the License. This Section 4(a)
applies to the Work as incorporated in a Collection, but this does not require
the Collection apart from the Work itself to be made subject to the terms of
this License. If You create a Collection, upon notice from any Licensor You
must, to the extent practicable, remove from the Collection any credit as
required by Section 4(c), as requested. If You create an Adaptation, upon
notice from any Licensor You must, to the extent practicable, remove from the
Adaptation any credit as required by Section 4(c), as requested.
You may Distribute or Publicly Perform an Adaptation only under the terms
of: (i) this License; (ii) a later version of this License with the same
License Elements as this License; (iii) a Creative Commons jurisdiction license
(either this or a later license version) that contains the same License
Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a
Creative Commons Compatible License. If you license the Adaptation under one of
the licenses mentioned in (iv), you must comply with the terms of that license.
If you license the Adaptation under the terms of any of the licenses mentioned
in (i), (ii) or (iii) (the "Applicable License"), you must comply with the
terms of the Applicable License generally and the following provisions: (I) You
must include a copy of, or the URI for, the Applicable License with every copy
of each Adaptation You Distribute or Publicly Perform; (II) You may not offer
or impose any terms on the Adaptation that restrict the terms of the Applicable
License or the ability of the recipient of the Adaptation to exercise the
rights granted to that recipient under the terms of the Applicable License;
(III) You must keep intact all notices that refer to the Applicable License and
to the disclaimer of warranties with every copy of the Work as included in the
Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or
Publicly Perform the Adaptation, You may not impose any effective technological
measures on the Adaptation that restrict the ability of a recipient of the
Adaptation from You to exercise the rights granted to that recipient under the
terms of the Applicable License. This Section 4(b) applies to the Adaptation as
incorporated in a Collection, but this does not require the Collection apart
from the Adaptation itself to be made subject to the terms of the Applicable
License.
If You Distribute, or Publicly Perform the Work or any Adaptations or
Collections, You must, unless a request has been made pursuant to Section 4(a),
keep intact all copyright notices for the Work and provide, reasonable to the
medium or means You are utilizing: (i) the name of the Original Author (or
pseudonym, if applicable) if supplied, and/or if the Original Author and/or
Licensor designate another party or parties (e.g., a sponsor institute,
publishing entity, journal) for attribution ("Attribution Parties") in
Licensor's copyright notice, terms of service or by other reasonable means, the
name of such party or parties; (ii) the title of the Work if supplied; (iii) to
the extent reasonably practicable, the URI, if any, that Licensor specifies to
be associated with the Work, unless such URI does not refer to the copyright
notice or licensing information for the Work; and (iv) , consistent with
Ssection 3(b), in the case of an Adaptation, a credit identifying the use of
the Work in the Adaptation (e.g., "French translation of the Work by Original
Author," or "Screenplay based on original Work by Original Author"). The credit
required by this Section 4(c) may be implemented in any reasonable manner;
provided, however, that in the case of a Adaptation or Collection, at a minimum
such credit will appear, if a credit for all contributing authors of the
Adaptation or Collection appears, then as part of these credits and in a manner
at least as prominent as the credits for the other contributing authors. For
the avoidance of doubt, You may only use the credit required by this Section
for the purpose of attribution in the manner set out above and, by exercising
Your rights under this License, You may not implicitly or explicitly assert or
imply any connection with, sponsorship or endorsement by the Original Author,
Licensor and/or Attribution Parties, as appropriate, of You or Your use of the
Work, without the separate, express prior written permission of the Original
Author, Licensor and/or Attribution Parties.
Except as otherwise agreed in writing by the Licensor or as may be
otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly
Perform the Work either by itself or as part of any Adaptations or Collections,
You must not distort, mutilate, modify or take other derogatory action in
relation to the Work which would be prejudicial to the Original Author's honor
or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in
which any exercise of the right granted in Section 3(b) of this License (the
right to make Adaptations) would be deemed to be a distortion, mutilation,
modification or other derogatory action prejudicial to the Original Author's
honor and reputation, the Licensor will waive or not assert, as appropriate,
this Section, to the fullest extent permitted by the applicable national law,
to enable You to reasonably exercise Your right under Section 3(b) of this
License (right to make Adaptations) but not otherwise.
5. Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING,
WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A
PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE.
SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN
NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS
LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
7. Termination
This License and the rights granted hereunder will terminate automatically
upon any breach by You of the terms of this License. Individuals or entities
who have received Adaptations or Collections from You under this License,
however, will not have their licenses terminated provided such individuals or
entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7,
and 8 will survive any termination of this License.
Subject to the above terms and conditions, the license granted here is
perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the Work
under different license terms or to stop distributing the Work at any time;
provided, however that any such election will not serve to withdraw this
License (or any other license that has been, or is required to be, granted
under the terms of this License), and this License will continue in full force
and effect unless terminated as stated above.
8. Miscellaneous
Each time You Distribute or Publicly Perform the Work or a Collection, the
Licensor offers to the recipient a license to the Work on the same terms and
conditions as the license granted to You under this License.
Each time You Distribute or Publicly Perform an Adaptation, Licensor offers
to the recipient a license to the original Work on the same terms and
conditions as the license granted to You under this License.
If any provision of this License is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of the
remainder of the terms of this License, and without further action by the
parties to this agreement, such provision shall be reformed to the minimum
extent necessary to make such provision valid and enforceable.
No term or provision of this License shall be deemed waived and no breach
consented to unless such waiver or consent shall be in writing and signed by
the party to be charged with such waiver or consent.
This License constitutes the entire agreement between the parties with
respect to the Work licensed here. There are no understandings, agreements or
representations with respect to the Work not specified here. Licensor shall not
be bound by any additional provisions that may appear in any communication from
You. This License may not be modified without the mutual written agreement of
the Licensor and You.
The rights granted under, and the subject matter referenced, in this
License were drafted utilizing the terminology of the Berne Convention for the
Protection of Literary and Artistic Works (as amended on September 28, 1979),
the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO
Performances and Phonograms Treaty of 1996 and the Universal Copyright
Convention (as revised on July 24, 1971). These rights and subject matter take
effect in the relevant jurisdiction in which the License terms are sought to be
enforced according to the corresponding provisions of the implementation of
those treaty provisions in the applicable national law. If the standard suite
of rights granted under applicable copyright law includes additional rights not
granted under this License, such additional rights are deemed to be included in
the License; this License is not intended to restrict the license of any rights
under applicable law.
Creative Commons Notice
Creative Commons is not a party to this License, and makes no warranty
whatsoever in connection with the Work. Creative Commons will not be liable to
You or any party on any legal theory for any damages whatsoever, including
without limitation any general, special, incidental or consequential damages
arising in connection to this license. Notwithstanding the foregoing two (2)
sentences, if Creative Commons has expressly identified itself as the Licensor
hereunder, it shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the Work is
licensed under the CCPL, Creative Commons does not authorize the use by either
party of the trademark "Creative Commons" or any related trademark or logo of
Creative Commons without the prior written consent of Creative Commons. Any
permitted use will be in compliance with Creative Commons' then-current
trademark usage guidelines, as may be published on its website or otherwise
made available upon request from time to time. For the avoidance of doubt, this
trademark restriction does not form part of the License.
Creative Commons may be contacted at http://creativecommons.org/.

248
mods/unifieddyes/README Executable file
View File

@ -0,0 +1,248 @@
VanessaE's Unified Dyes
=======================
The purpose of this mod originally was to supply a complete set of colors for
Minetest mod authors to use in their recipes. Since the default dyes mod that
is supplied with Minetest "common" is now usable (via flowers, also included in
"common"), this mod has become more of an extension pack.
Unified Dyes expands the standard dye set from 15 to 90 colors.
IMPORTANT: This mod is not intended to suggest that you should use the entire
palette. Rather, I was hoping people would just choose maybe the dozen or so
most useful colors to use in their mods.
Dependencies: default and dye from Minetest "common". This mod will NOT work
without these. This mod will NOT work without these. The default dye mod is
normally activated only in the standard "build" and "minetest_game" games, or perhaps if
someone has a modpack or game that includes them.
Recommends: flowers from common.
License: GPL 2.0 or higher for the code, CC-by-SA 3.0 for the textures.
Install: Unzip the distribution file, rename the resultant
VanessaE-unifieddyes-blahblah folder to just "unifieddyes", and move it into
Minetest's mods folder.
The Palette:
[ http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/color-swatches.png ]
[ The official palette, showing 84 colors and 5 greys. ]
In the image above, the "50%" markings on the left next to each shade mean 50%
saturation for all hues in that shade line. Note that the "light" shades don't
have (or need) that variant. For the greys, the percentages shown are of
brightness relative to pure white. There are three special cases: Light red
has been aliased to default pink dye, and dark green has been aliased to
default dark greey dye. Brown dye also exists in the default set, it's just
not shown in the palette above.
Usage instructions, technical information
=========================================
Getting Started
---------------
First thing's first: you're going to need to harvest some materials to make the
dyes from. For this, you need one or more of the following: roses (red),
tulips (orange), yellow dandelions (yellow), cactus (green), geraniums (blue),
violas (purple), coal (black), or white dandelions (white). Simply wander
around your world and collect whichever of the above you need to get your
colors.
[ http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/unifieddyes1.png ]
[ The 8 base colors directly obtainable from a material in the world. ]
Simply place one of the above materials into the crafting grid to obtain four
portions of dye in that color From those initial 8 colors, you can directly
fashion another 11, for a total of 19 standard colors (including the various
greys):
[ http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/unifieddyes2.png ]
[ The complete 19-color standard set. ]
The standardized colors and their crafting methods are as follows:
* Red (0°): one rose
* Orange (30°): one tulip, or put one red dye and one yellow dye into the
crafting grid to mix them (yields 2)
* Yellow (60°): one yellow dandelion
* Lime (90°): mix yellow + green (yields 2)
* Green (120°): one cactus, or mix yellow + blue (yields 2)
* Aqua (150°): mix green + cyan (yields 2)
* Cyan (180°): mix green + blue (yields 2)
* Sky blue (210°): mix cyan + blue (yields 2)
* Blue (240°): one geranium
* Violet (270°): one viola, or mix blue + magenta (yields 2).
* Magenta (300°): mix blue + red (yields 2)
* Red-violet (330°): mix magenta + red (yields 2)
* Black (7.5%): one piece of coal
* Dark grey (25%): mix one white + two black (yields 3)
* Medium grey (50%): mix one white and one black (yields 2)
* Light grey (75%): Mix two white and one black (yields 3)
* White (95%): one white dandelion.
The degree figures are the colors' hues on a standard HSV color wheel, and are
what I used in the textures supplied with this mod. For the greys, the figures
in parenthesis indicate the intended brightness of the shade, relative to
white. Note that black and white don't go all the way to the bottom/top of the
scale, as doing so may crush some details in textures made in those shades (see
below, regarding semi-automatic texture generation).
Darker/Lighter colors
---------------------
To obtain a dark (33%) version of a given color, use two portions of black dye
along with the base color from the list above, which yields three portions of
the final color.
To obtain a medium-brightness (66%) version of a given color, mix one portion
the base color with one portion of black dye (for example, medium lime = lime +
black). All such mixtures yield two portions of the final color.
To obtain a light (150% over full) version of a given color, mix one portion of
the base color with one portion of white dye. Yields 2 portions of the final
color.
Low-saturation colors
---------------------
To get the low saturation (50%) version of one of the base colors, mix one or
more of white, black, or a shade of grey with the desired base color:
Dark, low saturation: dark grey dye + color (yields 2), or two blacks + 1 white
+ color (yields 4). For example, dark, low-saturation red = red + dark grey,
or red + two black + one white.
Medium brightness, low saturation: medium grey dye + color (yields 2), or black
+ white + color (yields 3). For example, medium, low-saturation green = green
+ medium grey, or green + black + white.
Full, low saturation: light grey dye + color (yields 2), or 1 black + 2 whites
+ color (yields 4). For example, bright, low-saturation blue = blue + light
grey, or blue + black + 2 white.
There is no low-saturation version of the "light" colors.
Red + white always returns default pink dye, and black + green always returns
default dark green dye.
RGB values
----------
All RGB values and filenames for all colors and shades of grey are represented
in the file "colors.txt" (which was generated with the bash script
"listcolors.sh"), included in the distribution directory. Note that
listcolors.sh is an example only and was written for a different set of
textures than what Unified Dyes includes now.
Misc. Notes
-----------
If you need to use /give commands, the item names for the standard set of 12
regular "full" colors (plus pink, brown, and dark green) is simply "dye:color",
e.g. "dye:red", "dye:pink", or "dye:skyblue". Greys have a similar naming
convention: dye:white, dye:light_grey, dye:grey, dye:dark_grey, or dye:black.
For everything beyond those initial 19 colors, the item names are of the
following format:
unifieddyes:{"light_" or "medium_" or "dark_"}{color}{nothing or "_s50"}.
For example, low saturation dark yellow is "unifieddyes:dark_yellow_s50", while
light normal-saturation red-violet would be "unifieddyes:light_redviolet".
See the texture filenames in the textures/ folder for further hints - all of
the item names follow the same format as the corresponding filenames, save for
having a colon (:) instead of the first underscore (_).
Semi-automatic generation of textures
=====================================
The texture generator script
----------------------------
Obviously, in order for this mod or the above template to be useful, you'll
need textures. If you plan to support the entire range of colors offered by
Unified Dyes, there is a BASH script included with this mod as well with the
above template named gentextures.sh, which will, with an appropriately- colored
and appropriately-named source texture, and possibly an overlay texture,
generate a complete set of colored and greyscale textures.
The script requires bc (the calculator program) to handle some basic math
regarding the hue adjustments, and Imagemagick's "convert" program handles all
of the actual conversions.
First thing's first though - you need source textures. Using your favorite
image editor, create a single version of your desired texture. Draw it in the
brightest, deepest shade of RED you can muster without losing any detail, and
save it out. Ideally, you will want the average color of the texture, when
taking into account all bright and dark areas, to be as close as possible to
the hex value #FF0000 (0 degrees, 100% saturation, pure red) without losing any
appreciable #detail.
Save this source texture out as a PNG image, with a filename of
"whatever_base.png", where "whatever" is the one-word name of your mod - for
example, mymod_base.png.
If you want to add an image on top of the colored blocks, such as a frame,
which you want to be the same color throughout all of the textures, create it
now. It should consist only of those parts of the textures that you want to
leave unchanged, with some level of alpha transparency everywhere else,
depending on how much of the image needs to remain unchanged. Save it out as a
PNG image, using any filename you want, for example myoverlay.png.
Now, use chmod to make the script executable, if necessary, and run it.
If you don't need the overlay, you just need to supply one command line
argument: the base name of your mod. The script will use that parameter as the
basis of its texture filenames. For example:
./gentextures.sh mymod
The script will then look for mymod_base.png and copy and convert it into
things like mymod_red.png, mymod_dark_blue.png, and so on.
If you want to use an overlay also, skip the above step and run the script with
the base name as the first parameter, and the complete filename of your overlay
as the second instead. For example:
./gentextures.sh mymod myoverlay.png
Otherwise, the program will iterate through all of the hues and shades that are
supported by unifieddyes (though this is done manually, not by reading anything
from the mod), compositing your overlay image in after the recolor step, if
you're using that option.
All of the output files will be placed in a new folder, generated-textures/ in
the current directory. Note that the script looks for the above files in the
current directory also.
The script has a third mode as well:
./gentextures.sh -t mymod myoverlay.png
In this mode, the script will leave the base texture mymod_base.png unchanged,
and instead will rotate the colors of the overlay image and then composite that
onto the base texture. The same color changes will happen with the overlay in
this mode, so it's a good idea to make the overlay some fairly saturated shade
of red. Along with that, the base image should be some neutral color; any
color is fine as long as the result is what you wanted.
The program attempts to verify that the files you've asked it to use will
actually work, and will exit immediately if the any are invalid, missing, etc.
Use your favorite image browser or file manager to review the results in
generated-textures/, and if they're right, copy them over to the textures/
folder in your mod.
Note that this script does not generate brown and pink variations of your base
texture - you'll have to do those two manually.

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

101
mods/unifieddyes/changelog.txt Executable file
View File

@ -0,0 +1,101 @@
Changelog
---------
2013-04-30: Multiple changes
* Refactored the code to use default "common" dyes
rather than directly from flowers.
* This mod now depends on "default" and "dye" from the Minetest common
sub-game. Since the default dye mod uses default flowers, this mod no
longer checks for what version of flowers you're using, or even depends
on it.
* Bottle-based textures have been replaced with piles of dye powder, based
on the default red dye texture.
* All dyes are obtained by crafting, not cooking, for consistency with the
default dye mod.
* The somewhat-complicated method using separate "pigment" powders, glass
bottles and "liquid dye base" has been done away with. Now it's just
dry dye powders, as with the default dye mod.
* Also, got rid of the whole paint scheme, in favor of dry powders.
* All old dyes, paints, and Unified Dyes pigment powders have been aliased
back to the standard dye powders.
2012-07-26: Added a "version" check for the flowers dependency: If the
flowers mod defines "flowers:flower_geranium" (as is the case with my
update of 2012-08-01), then those will be used to get blue pigment
powder, and violas will produce violet powder, both of which can be
directly used to create their respective liquid dye colors. If it is
not defined (e.g. the user has an older version of the flowers mod),
then violas produce blue dye powder. Violet dye can still be formed by
mixing blue and magenta or blue and red dyes, as before.
2012-07-26: Better bottle textures. Note that these are blended against
the 50% grey field they normally appear on in the inventory display, so
they will show artifacts if you try to wield them. Don't do that. :-)
2012-07-26: Split off glass bottles into a separate mod, "Vessels".
This mod now depends on it.
2012-07-25 (almost immediately after): Fixed a copy&paste error for
black dye.
2012-07-25: Replaced missing craftitem entries and got rid of some
redundant code left over from last update. Added group settings for all
dyes according to recently-published standard. Fixed a few typos in
item descriptions, and straightened up capitalization.
2012-07-24: Added some extra steps to the dye-making process, added
recommendation that empty bottles be given back to the player on use.
Dyes are still easy to make, they just require a more realistic (and
this, harder) process now.
2012-07-16 (a bit later): fixed a minor error in generation of medium
grey.
2012-07-16: Added a new set of colors, "light" (brightness of 150%
versus the 'full' shade), for a total of 89. No 50% saturation version
of this set. Added a palette image showing the full set of colors.
2012-07-13: Fixed some missing commas.
2012-07-13: Added a script to aid in the generation of new textures for
mods that depend on unifieddyes. Moved this changelog from the forum
into the distribution directory. Rewrote the README to contain
everything from the forum post, and expanded it to document the new
generation script.
2012-07-12 (a bit later): added groups = {dye=1}, to each
register_craftitem call, to make it easier for other mods to identify
the dyes and categorize them.
2012-07-12: moved project to github.
2012-07-11 (continuing): Tweaked the script to remove titanium dioxide
from the output, since it isn't intended to be directly used as a
dye/paint (but rather, to make paint that can then be used).
Regenerated colors.txt.
2012-07-11 (immediately after): The script was reading the wrong pixel
from the image, resulting in lighter-than-correct colors. Fixed it and
regenerated the colors.txt file.
2012-07-11: Added a script to list all of the colors and their RGB
values and texture filenames, and a text file containing the output
thereof.
2012-07-08 (a bit later): deleted a few unused files (copy&paste error).
2012-07-08: Major boost in the number of available colors - was 8, now
77. Should cover pretty much the entire spectrum of colors one might
use in this game.
2012-07-02: Deleted a few redundant files (leftovers from when I wanted
to merge in flowers and then changed my mind).
2012-06-26: Initial upload.

90
mods/unifieddyes/colors.txt Executable file
View File

@ -0,0 +1,90 @@
Full-saturation colors:
-----------------------
dark aqua 0, 84, 42 unifieddyes_dark_aqua.png
dark blue 0, 0, 84 unifieddyes_dark_blue.png
dark cyan 0, 84, 83 unifieddyes_dark_cyan.png
dark green 0, 84, 0 unifieddyes_dark_green.png
dark lime 43, 84, 0 unifieddyes_dark_lime.png
dark magenta 84, 0, 83 unifieddyes_dark_magenta.png
dark orange 84, 42, 0 unifieddyes_dark_orange.png
dark red 84, 0, 0 unifieddyes_dark_red.png
dark redviolet 84, 0, 42 unifieddyes_dark_redviolet.png
dark skyblue 0, 42, 84 unifieddyes_dark_skyblue.png
dark violet 43, 0, 84 unifieddyes_dark_violet.png
dark yellow 84, 83, 0 unifieddyes_dark_yellow.png
medium aqua 0,169, 84 unifieddyes_medium_aqua.png
medium blue 0, 0,169 unifieddyes_medium_blue.png
medium cyan 0,169,167 unifieddyes_medium_cyan.png
medium green 0,169, 0 unifieddyes_medium_green.png
medium lime 87,169, 0 unifieddyes_medium_lime.png
medium magenta 169, 0,167 unifieddyes_medium_magenta.png
medium orange 169, 84, 0 unifieddyes_medium_orange.png
medium red 168, 0, 0 unifieddyes_medium_red.png
medium redviolet 169, 0, 84 unifieddyes_medium_redviolet.png
medium skyblue 0, 84,169 unifieddyes_medium_skyblue.png
medium violet 87, 0,169 unifieddyes_medium_violet.png
medium yellow 169,167, 0 unifieddyes_medium_yellow.png
aqua 1,255,127 unifieddyes_aqua.png
blue 1, 1,255 unifieddyes_blue.png
cyan 1,255,252 unifieddyes_cyan.png
green 1,255, 1 unifieddyes_green.png
lime 132,255, 1 unifieddyes_lime.png
magenta 255, 1,252 unifieddyes_magenta.png
orange 255,127, 1 unifieddyes_orange.png
red 255, 0, 0 unifieddyes_red.png
redviolet 255, 1,127 unifieddyes_redviolet.png
skyblue 1,127,255 unifieddyes_skyblue.png
violet 132, 1,255 unifieddyes_violet.png
yellow 255,252, 1 unifieddyes_yellow.png
Low-saturation colors:
----------------------
dark aqua 50% saturation 21, 63, 42 unifieddyes_dark_aqua_s50.png
dark blue 50% saturation 21, 21, 63 unifieddyes_dark_blue_s50.png
dark cyan 50% saturation 21, 63, 63 unifieddyes_dark_cyan_s50.png
dark green 50% saturation 21, 63, 21 unifieddyes_dark_green_s50.png
dark lime 50% saturation 43, 63, 21 unifieddyes_dark_lime_s50.png
dark magenta 50% saturation 63, 21, 63 unifieddyes_dark_magenta_s50.png
dark orange 50% saturation 63, 42, 21 unifieddyes_dark_orange_s50.png
dark red 50% saturation 63, 21, 21 unifieddyes_dark_red_s50.png
dark redviolet 50% saturation 63, 21, 42 unifieddyes_dark_redviolet_s50.png
dark skyblue 50% saturation 21, 42, 63 unifieddyes_dark_skyblue_s50.png
dark violet 50% saturation 43, 21, 63 unifieddyes_dark_violet_s50.png
dark yellow 50% saturation 63, 63, 21 unifieddyes_dark_yellow_s50.png
medium aqua 50% saturation 42,126, 84 unifieddyes_medium_aqua_s50.png
medium blue 50% saturation 42, 42,126 unifieddyes_medium_blue_s50.png
medium cyan 50% saturation 42,126,126 unifieddyes_medium_cyan_s50.png
medium green 50% saturation 42,126, 42 unifieddyes_medium_green_s50.png
medium lime 50% saturation 86,126, 42 unifieddyes_medium_lime_s50.png
medium magenta 50% saturation 126, 42,126 unifieddyes_medium_magenta_s50.png
medium orange 50% saturation 126, 84, 42 unifieddyes_medium_orange_s50.png
medium red 50% saturation 127, 42, 42 unifieddyes_medium_red_s50.png
medium redviolet 50% saturation 126, 42, 84 unifieddyes_medium_redviolet_s50.png
medium skyblue 50% saturation 42, 84,126 unifieddyes_medium_skyblue_s50.png
medium violet 50% saturation 86, 42,126 unifieddyes_medium_violet_s50.png
medium yellow 50% saturation 126,126, 42 unifieddyes_medium_yellow_s50.png
aqua 50% saturation 65,191,127 unifieddyes_aqua_s50.png
blue 50% saturation 65, 65,191 unifieddyes_blue_s50.png
cyan 50% saturation 65,191,190 unifieddyes_cyan_s50.png
green 50% saturation 65,191, 65 unifieddyes_green_s50.png
lime 50% saturation 130,191, 65 unifieddyes_lime_s50.png
magenta 50% saturation 191, 65,190 unifieddyes_magenta_s50.png
orange 50% saturation 191,127, 65 unifieddyes_orange_s50.png
red 50% saturation 192, 64, 64 unifieddyes_red_s50.png
redviolet 50% saturation 191, 65,127 unifieddyes_redviolet_s50.png
skyblue 50% saturation 65,127,191 unifieddyes_skyblue_s50.png
violet 50% saturation 130, 65,191 unifieddyes_violet_s50.png
yellow 50% saturation 191,190, 65 unifieddyes_yellow_s50.png
Greyscale:
----------
black 0, 0, 0 unifieddyes_black.png
dark grey 64, 64, 64 unifieddyes_darkgrey_paint.png
medium grey 128,128,128 unifieddyes_grey_paint.png
light grey 192,192,192 unifieddyes_lightgrey_paint.png
white 255,255,255 unifieddyes_white_paint.png

2
mods/unifieddyes/depends.txt Executable file
View File

@ -0,0 +1,2 @@
default
dye

View File

@ -0,0 +1,183 @@
#!/bin/bash
# This program auto-generates colorized textures for all 89 of the Unified
# Dyes colors, based on one or two input files.
# Copyright (C) 2012-2013, Vanessa Ezekowitz
# Email: vanessaezekowitz@gmail.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU 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.
if [ -z "`which convert`" ] ; then {
echo "Please install Imagemagick."
exit 1
} fi
if [ -z "`which bc`" ] ; then {
echo "Please install GNU bc."
exit 1
} fi
if [ $1 = "-t" ] ; then {
TINT_OVERLAY=$1
BASE=$2
COMPOSITE=$3
} else {
TINT_OVERLAY=""
BASE=$1
COMPOSITE=$2
} fi
if [ -z $1 ] || [ $1 == "--help" ] || [ $1 == "-h" ] || [[ $1 == "-t" && -z $3 ]] ; then {
echo -e "\nUsage:
\ngentextures.sh basename [overlay_filename]
gentextures.sh -t basename overlay_filename
\nThis script requires up to three parameters which supply the base
filename of the textures, an optional .png overlay, and possibly the
'-t' switch. The 'basename' is the first part of the filename that your
textures will use when your mod is done, which should almost always be
the same as the one-word name of your mod. For example, if you supply
the word 'mymod', this script will produce filenames like mymod_red.jpg
or 'mymod_dark_blue_s50.jpg'. The texture that this script will read
and recolor is derived from this parameter, and will be of the form
'basename_base.jpg', i.e. 'mymod_base.jpg'. \nYou can also supply an
overlay image filename. This image needs to be a .png or .gif or some
other alpha-capable format supported by ImageMagick, and will be
composited onto the output files after they have been colorized, but
without being modified. This is useful when you have some part of your
base image that will either get changed undesirably (for example, the
mortar among several bricks, or the shading detail of a stone pattern).
Simply draw two images: one containing the whole image to be colored,
and one containing the parts that should not be changed, with either
full or partial alpha transparency where the re-colored base image
should show through. Skilled use of color and alpha on this overlay can
lead to some interesting effects. \nIf you add '-t' as the first
parameter, the script will switch to 'tint overlay' mode. For this mode
to work, you must also supply the base name as usual, and you must
include an overlay image filename. Rather than re-color the base
texture, the script will alter the hue/saturation/value of the overlay
texture file instead, and leave the base texture unchanged. When using
this mode, the base texture should be drawn in some neutral color, but
any color is fine if it results in what you wanted.\n"
exit 1
} fi
if [[ ! -e $BASE"_base.jpg" ]]; then {
echo -e "\nThe basename '"$BASE"_base.jpg' was not found."
echo -e "\nAborting.\n"
exit 1
} fi
if [[ ! -z $COMPOSITE && ! -e $COMPOSITE ]]; then {
echo -e "\nThe requested composite file '"$COMPOSITE"' was not found."
echo -e "\nAborting.\n"
exit 1
} fi
convert $BASE"_base.jpg" -modulate 1,2,3 tempfile.jpg 1>/dev/null 2>/dev/null
if (( $? )) ; then {
echo -e "\nImagemagick failed while testing the base texture file."
echo -e "\nEither the base file '"$BASE"_base.jpg' isn't an image,"
echo "or it is broken, or Imagemagick itself just didn't work."
echo -e "\nPlease check and correct your base image and try again."
echo -e "\nAborting.\n"
exit 1
} fi
if [ ! -z $COMPOSITE ] ; then {
convert $BASE"_base.jpg" -modulate 1,2,3 $COMPOSITE -composite tempfile.jpg 1>/dev/null 2>/dev/null
if (( $? )) ; then {
echo -e "\nImagemagick failed while testing the composite file."
echo -e "\nEither the composite file '"$COMPOSITE"' isn't an image"
echo "or it is broken, or Imagemagick itself just didn't work."
echo -e "\nPlease check and correct your composite image and try again."
echo -e "\nAborting.\n"
exit 1
} fi
} fi
rm tempfile.jpg
base_colors="red orange yellow lime green aqua cyan skyblue blue violet magenta redviolet"
echo -e -n "\nGenerating filenames based on "$BASE"_base.jpg"
if [ ! -z $COMPOSITE ] ; then {
echo ","
echo -n "using "$COMPOSITE" as an overlay"
} fi
if [ ! -z $TINT_OVERLAY ] ; then {
echo ","
echo -n "and tinting the overlay instead of the base texture"
} fi
echo -e "...\n"
mkdir -p generated-textures
function generate_texture () {
name=$1
h=$2
s=$3
v=$4
if [ -z $TINT_OVERLAY ]; then {
if [ -z $COMPOSITE ]; then {
convert $BASE"_base.jpg" -modulate $v,$s,$h -quality 97 "generated-textures/"$BASE"_"$name".jpg"
} else {
convert $BASE"_base.jpg" -modulate $v,$s,$h -quality 97 $COMPOSITE -composite "generated-textures/"$BASE"_"$name".jpg"
} fi
} else {
convert $COMPOSITE -modulate $v,$s,$h -quality 97 MIFF:- | composite MIFF:- $BASE"_base.jpg" "generated-textures/"$BASE"_"$name".jpg"
} fi
}
hue=0
for color_name in $base_colors ; do
hue2=`echo "scale=10; ("$hue"*200/360)+100" |bc`
echo $color_name "("$hue" degrees)"
echo " dark"
generate_texture "dark_"$color_name $hue2 100 33
echo " medium"
generate_texture "medium_"$color_name $hue2 100 66
echo " full"
generate_texture $color_name $hue2 100 100
echo " light"
generate_texture "light_"$color_name $hue2 100 150
echo " dark, 50% saturation"
generate_texture "dark_"$color_name"_s50" $hue2 50 33
echo " medium, 50% saturation"
generate_texture "medium_"$color_name"_s50" $hue2 50 66
echo " full, 50% saturation"
generate_texture $color_name"_s50" $hue2 50 100
hue=$((hue+30))
done
echo "greyscales"
echo " black"
generate_texture black 0 0 15
echo " dark grey"
generate_texture darkgrey 0 0 50
echo " medium grey"
generate_texture grey 0 0 100
echo " light grey"
generate_texture lightgrey 0 0 150
echo " white"
generate_texture white 0 0 190

177
mods/unifieddyes/gentextures.sh Executable file
View File

@ -0,0 +1,177 @@
#!/bin/bash
# This program auto-generates colorized textures for all 89 of the Unified
# Dyes colors, based on one or two input files.
# Copyright (C) 2012-2013, Vanessa Ezekowitz
# Email: vanessaezekowitz@gmail.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU 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.
if [ -z "`which convert`" ] ; then {
echo "Please install Imagemagick."
exit 1
} fi
if [ -z "`which bc`" ] ; then {
echo "Please install GNU bc."
exit 1
} fi
if [ $1 = "-t" ] ; then {
TINT_OVERLAY=$1
BASE=$2
COMPOSITE=$3
} else {
TINT_OVERLAY=""
BASE=$1
COMPOSITE=$2
} fi
if [ -z $1 ] || [ $1 == "--help" ] || [ $1 == "-h" ] || [[ $1 == "-t" && -z $3 ]] ; then {
echo -e "\nUsage:
\ngentextures.sh basename [overlay_filename]
gentextures.sh -t basename overlay_filename
\nThis script requires up to three parameters which supply the base filename
of the textures, an optional overlay, and possibly the '-t' switch. The
'basename' is the first part of the filename that your textures will use when
your mod is done, which should almost always be the same as the one-word name
of your mod. For example, if you supply the word 'mymod', this script will
produce filenames like mymod_red.png or 'mymod_dark_blue_s50.png'. The
texture that this script will read and recolor is derived from this parameter,
and will be of the form 'basename_base.png', i.e. 'mymod_base.png'.
\nYou can also supply an optional overlay image filename. This image will be
composited onto the output files after they have been colorized, but without
being modified. This is useful when you have some part of your base image
that will either get changed undesirably (for example, the mortar among
several bricks, or the shading detail of a stone pattern). Simply draw two
images: one containing the whole image to be colored, and one containing the
parts that should not be changed, with either full or partial alpha
transparency where the re-colored base image should show through. Skilled use
of color and alpha on this overlay can lead to some interesting effects.
\nIf you add '-t' as the first parameter, the script will switch to 'tint
overlay' mode. For this mode to work, you must also supply the base name as
usual, and you must include an overlay image filename. Rather than re-color
the base texture, the script will alter the hue/saturation/value of the
overlay texture file instead, and leave the base texture unchanged. When
using this mode, the base texture should be drawn in some neutral color, but
any color is fine if it results in what you wanted.\n"
exit 1
} fi
if [[ ! -e $BASE"_base.png" ]]; then {
echo -e "\nThe basename '"$BASE"_base.png' was not found."
echo -e "\nAborting.\n"
exit 1
} fi
if [[ ! -z $COMPOSITE && ! -e $COMPOSITE ]]; then {
echo -e "\nThe requested composite file '"$COMPOSITE"' was not found."
echo -e "\nAborting.\n"
exit 1
} fi
convert $BASE"_base.png" -modulate 1,2,3 tempfile.png 1>/dev/null 2>/dev/null
if (( $? )) ; then {
echo -e "\nImagemagick failed while testing the base texture file."
echo -e "\nEither the base file '"$BASE"_base.png' isn't an image,"
echo "or it is broken, or Imagemagick itself just didn't work."
echo -e "\nPlease check and correct your base image and try again."
echo -e "\nAborting.\n"
exit 1
} fi
if [ ! -z $COMPOSITE ] ; then {
convert $BASE"_base.png" -modulate 1,2,3 $COMPOSITE -composite tempfile.png 1>/dev/null 2>/dev/null
if (( $? )) ; then {
echo -e "\nImagemagick failed while testing the composite file."
echo -e "\nEither the composite file '"$COMPOSITE"' isn't an image"
echo "or it is broken, or Imagemagick itself just didn't work."
echo -e "\nPlease check and correct your composite image and try again."
echo -e "\nAborting.\n"
exit 1
} fi
} fi
rm tempfile.png
base_colors="red orange yellow lime green aqua cyan skyblue blue violet magenta redviolet"
echo -e -n "\nGenerating filenames based on "$BASE"_base.png"
if [ ! -z $COMPOSITE ] ; then {
echo ","
echo -n "using "$COMPOSITE" as an overlay"
} fi
if [ ! -z $TINT_OVERLAY ] ; then {
echo ","
echo -n "and tinting the overlay instead of the base texture"
} fi
echo -e "...\n"
mkdir -p generated-textures
function generate_texture () {
name=$1
h=$2
s=$3
v=$4
if [ -z $TINT_OVERLAY ]; then {
if [ -z $COMPOSITE ]; then {
convert $BASE"_base.png" -modulate $v,$s,$h "generated-textures/"$BASE"_"$name".png"
} else {
convert $BASE"_base.png" -modulate $v,$s,$h $COMPOSITE -composite "generated-textures/"$BASE"_"$name".png"
} fi
} else {
convert $COMPOSITE -modulate $v,$s,$h MIFF:- | composite MIFF:- $BASE"_base.png" "generated-textures/"$BASE"_"$name".png"
} fi
}
hue=0
for color_name in $base_colors ; do
hue2=`echo "scale=10; ("$hue"*200/360)+100" |bc`
echo $color_name "("$hue" degrees)"
echo " dark"
generate_texture "dark_"$color_name $hue2 100 33
echo " medium"
generate_texture "medium_"$color_name $hue2 100 66
echo " full"
generate_texture $color_name $hue2 100 100
echo " light"
generate_texture "light_"$color_name $hue2 100 150
echo " dark, 50% saturation"
generate_texture "dark_"$color_name"_s50" $hue2 50 33
echo " medium, 50% saturation"
generate_texture "medium_"$color_name"_s50" $hue2 50 66
echo " full, 50% saturation"
generate_texture $color_name"_s50" $hue2 50 100
hue=$((hue+30))
done
echo "greyscales"
echo " black"
generate_texture black 0 0 15
echo " dark grey"
generate_texture darkgrey 0 0 50
echo " medium grey"
generate_texture grey 0 0 100
echo " light grey"
generate_texture lightgrey 0 0 150
echo " white"
generate_texture white 0 0 190

377
mods/unifieddyes/init.lua Executable file
View File

@ -0,0 +1,377 @@
--[[
Unified Dyes
This mod provides an extension to the Minetest 0.4.x dye system
==============================================================================
Copyright (C) 2012-2013, Vanessa Ezekowitz
Email: vanessaezekowitz@gmail.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 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 General Public License for more details.
You should have received a copy of the GNU 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.
==============================================================================
--]]
--=====================================================================
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if (minetest.get_modpath("intllib")) then
dofile(minetest.get_modpath("intllib").."/intllib.lua")
S = intllib.Getter(minetest.get_current_modname())
else
S = function ( s ) return s end
end
-- Items/recipes needed to generate the few base colors that are not
-- provided by the standard dyes mod.
-- Lime
minetest.register_craftitem(":dye:lime", {
description = S("Lime Dye"),
inventory_image = "unifieddyes_lime.png",
groups = { dye=1, excolor_lime=1, unicolor_lime=1, not_in_creative_inventory=1 }
})
minetest.register_craft( {
type = "shapeless",
output = "dye:lime 2",
recipe = {
"dye:yellow",
"dye:green",
},
})
-- Aqua
minetest.register_craftitem(":dye:aqua", {
description = S("Aqua Dye"),
inventory_image = "unifieddyes_aqua.png",
groups = { dye=1, excolor_aqua=1, unicolor_aqua=1, not_in_creative_inventory=1 }
})
minetest.register_craft( {
type = "shapeless",
output = "dye:aqua 2",
recipe = {
"dye:cyan",
"dye:green",
},
})
-- Sky blue
minetest.register_craftitem(":dye:skyblue", {
description = S("Sky-blue Dye"),
inventory_image = "unifieddyes_skyblue.png",
groups = { dye=1, excolor_sky_blue=1, unicolor_sky_blue=1, not_in_creative_inventory=1 }
})
minetest.register_craft( {
type = "shapeless",
output = "dye:skyblue 2",
recipe = {
"dye:cyan",
"dye:blue",
},
})
-- Red-violet
minetest.register_craftitem(":dye:redviolet", {
description = S("Red-violet Dye"),
inventory_image = "unifieddyes_redviolet.png",
groups = { dye=1, excolor_red_violet=1, unicolor_red_violet=1, not_in_creative_inventory=1 }
})
minetest.register_craft( {
type = "shapeless",
output = "dye:redviolet 2",
recipe = {
"dye:red",
"dye:magenta",
},
})
-- Light grey
minetest.register_craftitem(":dye:light_grey", {
description = S("Light Grey Dye"),
inventory_image = "unifieddyes_lightgrey.png",
groups = { dye=1, excolor_lightgrey=1, unicolor_light_grey=1, not_in_creative_inventory=1 }
})
minetest.register_craft( {
type = "shapeless",
output = "dye:light_grey 2",
recipe = {
"dye:grey",
"dye:white",
},
})
-- Extra craft for black dye
minetest.register_craft( {
type = "shapeless",
output = "dye:black 4",
recipe = {
"default:coal_lump",
},
})
-- Extra craft for dark grey dye
minetest.register_craft( {
type = "shapeless",
output = "dye:dark_grey 3",
recipe = {
"dye:black",
"dye:black",
"dye:white",
},
})
-- Extra craft for light grey dye
minetest.register_craft( {
type = "shapeless",
output = "dye:light_grey 3",
recipe = {
"dye:black",
"dye:white",
"dye:white",
},
})
-- Extra craft for green dye
minetest.register_craft( {
type = "shapeless",
output = "dye:green 4",
recipe = {
"default:cactus",
},
})
-- =================================================================
-- Generate all of additional variants of hue, saturation, and
-- brightness.
-- "s50" in a file/item name means "saturation: 50%".
-- Brightness levels in the textures are 33% ("dark"), 66% ("medium"),
-- 100% ("full", but not so-named), and 150% ("light").
local HUES = {
"red",
"orange",
"yellow",
"lime",
"green",
"aqua",
"cyan",
"skyblue",
"blue",
"violet",
"magenta",
"redviolet"
}
local HUES2 = {
"Red",
"Orange",
"Yellow",
"Lime",
"Green",
"Aqua",
"Cyan",
"Sky-blue",
"Blue",
"Violet",
"Magenta",
"Red-violet"
}
for i = 1, 12 do
local hue = HUES[i]
local hue2 = HUES2[i]
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:dark_" .. hue .. "_s50 2",
recipe = {
"dye:" .. hue,
"dye:dark_grey",
},
})
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:dark_" .. hue .. "_s50 4",
recipe = {
"dye:" .. hue,
"dye:black",
"dye:black",
"dye:white"
},
})
if hue == "green" then
minetest.register_craft( {
type = "shapeless",
output = "dye:dark_green 3",
recipe = {
"dye:" .. hue,
"dye:black",
"dye:black",
},
})
else
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:dark_" .. hue .. " 3",
recipe = {
"dye:" .. hue,
"dye:black",
"dye:black",
},
})
end
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:medium_" .. hue .. "_s50 2",
recipe = {
"dye:" .. hue,
"dye:grey",
},
})
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:medium_" .. hue .. "_s50 3",
recipe = {
"dye:" .. hue,
"dye:black",
"dye:white",
},
})
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:medium_" .. hue .. " 2",
recipe = {
"dye:" .. hue,
"dye:black",
},
})
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:" .. hue .. "_s50 2",
recipe = {
"dye:" .. hue,
"dye:grey",
"dye:white",
},
})
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:" .. hue .. "_s50 4",
recipe = {
"dye:" .. hue,
"dye:white",
"dye:white",
"dye:black",
},
})
if hue ~= "red" then
minetest.register_craft( {
type = "shapeless",
output = "unifieddyes:light_" .. hue .. " 2",
recipe = {
"dye:" .. hue,
"dye:white",
},
})
end
minetest.register_craftitem("unifieddyes:dark_" .. hue .. "_s50", {
description = S("Dark " .. hue2 .. " Dye (low saturation)"),
inventory_image = "unifieddyes_dark_" .. hue .. "_s50.png",
groups = { dye=1, ["unicolor_dark_"..hue.."_s50"]=1, not_in_creative_inventory=1 }
})
if hue ~= "green" then
minetest.register_craftitem("unifieddyes:dark_" .. hue, {
description = S("Dark " .. hue2 .. " Dye"),
inventory_image = "unifieddyes_dark_" .. hue .. ".png",
groups = { dye=1, ["unicolor_dark_"..hue]=1, not_in_creative_inventory=1 }
})
end
minetest.register_craftitem("unifieddyes:medium_" .. hue .. "_s50", {
description = S("Medium " .. hue2 .. " Dye (low saturation)"),
inventory_image = "unifieddyes_medium_" .. hue .. "_s50.png",
groups = { dye=1, ["unicolor_medium_"..hue.."_s50"]=1, not_in_creative_inventory=1 }
})
minetest.register_craftitem("unifieddyes:medium_" .. hue, {
description = S("Medium " .. hue2 .. " Dye"),
inventory_image = "unifieddyes_medium_" .. hue .. ".png",
groups = { dye=1, ["unicolor_medium_"..hue]=1, not_in_creative_inventory=1 }
})
minetest.register_craftitem("unifieddyes:" .. hue .. "_s50", {
description = S(hue2 .. " Dye (low saturation)"),
inventory_image = "unifieddyes_" .. hue .. "_s50.png",
groups = { dye=1, ["unicolor_"..hue.."_s50"]=1, not_in_creative_inventory=1 }
})
if hue ~= "red" then
minetest.register_craftitem("unifieddyes:light_" .. hue, {
description = S("Light " .. hue2 .. " Dye"),
inventory_image = "unifieddyes_light_" .. hue .. ".png",
groups = { dye=1, ["unicolor_light_"..hue]=1, not_in_creative_inventory=1 }
})
end
minetest.register_alias("unifieddyes:"..hue, "dye:"..hue)
minetest.register_alias("unifieddyes:pigment_"..hue, "dye:"..hue)
end
minetest.register_alias("unifieddyes:light_red", "dye:pink")
minetest.register_alias("unifieddyes:dark_green", "dye:dark_green")
minetest.register_alias("unifieddyes:white_paint", "dye:white")
minetest.register_alias("unifieddyes:titanium_dioxide", "dye:white")
minetest.register_alias("unifieddyes:lightgrey_paint", "dye:light_grey")
minetest.register_alias("unifieddyes:grey_paint", "dye:grey")
minetest.register_alias("unifieddyes:darkgrey_paint", "dye:dark_grey")
minetest.register_alias("unifieddyes:carbon_black", "dye:black")
print(S("[UnifiedDyes] Loaded!"))

79
mods/unifieddyes/listcolors.sh Executable file
View File

@ -0,0 +1,79 @@
#!/bin/bash
# This program lists out the RGB triads for the colors used in each of the 89
# dyes found in the Unified Dyes mod.
# Copyright (C) 2012-2013, Vanessa Ezekowitz
# Email: vanessaezekowitz@gmail.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU 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.
pushd . >/dev/null
cd textures
echo -e "\n\nFull-saturation colors:"
echo -e "-----------------------\n"
for i in `ls *dark*.png|grep -v _s50|grep -v paint|grep -v black` ; do
rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","`
color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'`
printf "%-32s %-12s %s\n" "$color" "$rgb" "$i"
done |sort
for i in `ls *medium*.png|grep -v _s50|grep -v paint|grep -v black` ; do
rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","`
color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'`
printf "%-32s %-12s %s\n" "$color" "$rgb" "$i"
done |sort
for i in `ls *.png|grep -v medium |grep -v dark|grep -v _s50|grep -v paint|grep -v black|grep -v titanium` ; do
rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","`
color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'`
printf "%-32s %-12s %s\n" "$color" "$rgb" "$i"
done |sort
echo -e "\nLow-saturation colors:"
echo -e "----------------------\n"
for i in `ls *dark*_s50.png|grep -v paint|grep -v black` ; do
rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","`
color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'`
printf "%-32s %-12s %s\n" "$color" "$rgb" "$i"
done |sort
for i in `ls *medium*_s50.png|grep -v paint|grep -v black` ; do
rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","`
color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'`
printf "%-32s %-12s %s\n" "$color" "$rgb" "$i"
done |sort
for i in `ls *_s50.png|grep -v dark|grep -v medium|grep -v paint|grep -v black` ; do
rgb=`convert $i -crop 1x1+8+11 -depth 8 txt: |grep "0,0: (" |cut -f 2- -d "(" |cut -f 1-3 -d ","`
color=`basename $i .png | sed 's/_/ /g; s/unifieddyes //; s/s50/50% saturation/'`
printf "%-32s %-12s %s\n" "$color" "$rgb" "$i"
done |sort
echo -e "\nGreyscale:"
echo -e "----------\n"
printf "%-32s %-12s %s\n" "black" " 0, 0, 0" "unifieddyes_black.png"
printf "%-32s %-12s %s\n" "dark grey" " 64, 64, 64" "unifieddyes_darkgrey_paint.png"
printf "%-32s %-12s %s\n" "medium grey" "128,128,128" "unifieddyes_grey_paint.png"
printf "%-32s %-12s %s\n" "light grey" "192,192,192" "unifieddyes_lightgrey_paint.png"
printf "%-32s %-12s %s\n" "white" "255,255,255" "unifieddyes_white_paint.png"
popd >/dev/null

74
mods/unifieddyes/locale/de.txt Executable file
View File

@ -0,0 +1,74 @@
# Translation by Xanthin
Lime Dye = Gelbgruener Farbstoff (Gelbgruen)
Aqua Dye = Aqua Farbstoff
Sky-blue Dye = Himmelblauer Farbstoff
Red-violet Dye = Rotvioletter Farbstoff
Light Grey Dye = Hellgrauer Farbstoff
Dark Red Dye (low saturation) = Dunkelroter Farbstoff (geringe Saettigung)
Dark Orange Dye (low saturation) = Dunkeloranger Farbstoff (geringe Saettigung)
Dark Yellow Dye (low saturation) = Dunkelgelber Farbstoff (geringe Saettigung)
Dark Lime Dye (low saturation) = Gelbgruenerlime Farbstoff (geringe Saettigung)
Dark Green Dye (low saturation) = Dunkelgruener Farbstoff (geringe Saettigung)
Dark Aqua Dye (low saturation) = Dunkelaqua Farbstoff (geringe Saettigung)
Dark Cyan Dye (low saturation) = Dunkeltuerkiser Farbstoff (geringe Saettigung)
Dark Sky-blue Dye (low saturation) = Dunkelhimmelblauer Farbstoff (geringe Saettigung)
Dark Blue Dye (low saturation) = Dunkelblauer Farbstoff (geringe Saettigung)
Dark Violet Dye (low saturation) = Dunkelvioletter Farbstoff (geringe Saettigung)
Dark Magenta Dye (low saturation) = Dunkelmagenta Farbstoff (geringe Saettigung)
Dark Red-violet Dye (low saturation) = Dunkelrotvioletter Farbstoff (geringe Saettigung)
Dark Red Dye = Dunkelroter Farbstoff
Dark Orange Dye = Dunkeloranger Farbstoff
Dark Yellow Dye = Dunkelgelber Farbstoff
Dark Lime Dye = Dunkelgelbgruener Farbstoff
Dark Green Dye = Dunkelgruener Farbstoff
Dark Aqua Dye = Dunkelaqua Farbstoff
Dark Cyan Dye = Dunkeltuerkiser Farbstoff
Dark Sky-blue Dye = Dunkelhimmelblauer Farbstoff
Dark Blue Dye = Dunkelblauer Farbstoff
Dark Violet Dye = Dunkelvioletter Farbstoff
Dark Magenta Dye = Dunkelmagenta Farbstoff
Dark Red-violet Dye = Dunkelrotvioletter Farbstoff
Medium Red Dye (low saturation) = Mittelroter Farbstoff (geringe Saettigung)
Medium Orange Dye (low saturation) = Mitteloranger Farbstoff (geringe Saettigung)
Medium Yellow Dye (low saturation) = Mittelgelber Farbstoff (geringe Saettigung)
Medium Lime Dye (low saturation) = Mittelgelbgruener Farbstoff (geringe Saettigung)
Medium Green Dye (low saturation) = Mittelgruener Farbstoff (geringe Saettigung)
Medium Aqua Dye (low saturation) = Mittelaqua Farbstoff (geringe Saettigung)
Medium Cyan Dye (low saturation) = Mitteltuerkiser Farbstoff (geringe Saettigung)
Medium Sky-blue Dye (low saturation) = Mittelhimmelblauer Farbstoff (geringe Saettigung)
Medium Blue Dye (low saturation) = Mittelblauer Farbstoff (geringe Saettigung)
Medium Violet Dye (low saturation) = Mittelvioletter Farbstoff (geringe Saettigung)
Medium Magenta Dye (low saturation) = Mittelmagenta Farbstoff (geringe Saettigung)
Medium Red-violet Dye (low saturation) = Mittelrotvioletter Farbstoff (geringe Saettigung)
Medium Red Dye = Mittelroter Farbstoff
Medium Orange Dye = Mitteloranger Farbstoff
Medium Yellow Dye = Mittelgelber Farbstoff
Medium Lime Dye = Mittelgelbgruener Farbstoff
Medium Green Dye = Mittelgruener Farbstoff
Medium Aqua Dye = Mittelaqua Farbstoff
Medium Cyan Dye = Mitteltuerkiser Farbstoff
Medium Sky-blue = Mittelhimmelblauer Farbstoff
Medium Blue Dye = Mittelblauer Farbstoff
Medium Violet Dye = Mittelvioletter Farbstoff
Medium Magenta Dye = Mittelmagenta Farbstoff
Medium Red-violet Dye = Mittelrotvioletter Farbstoff
Red Dye (low saturation) = Roter Farbstoff (geringe Saettigung)
Orange Dye (low saturation) = Oranger Farbstoff (geringe Saettigung)
Yellow Dye (low saturation) = Gelber Farbstoff (geringe Saettigung)
Lime Dye (low saturation) = Gelbgruener Farbstoff (geringe Saettigung)
Green Dye (low saturation) = Gruener Farbstoff (geringe Saettigung)
Aqua Dye (low saturation) = Aqua Farbstoff (geringe Saettigung)
Cyan Dye (low saturation) = Tuerkiser Farbstoff (geringe Saettigung)
Sky-blue Dye (low saturation) = Himmelblauer Farbstoff (geringe Saettigung)
Blue Dye (low saturation) = Blauer Farbstoff (geringe Saettigung)
Violet Dye (low saturation) = Violetter Farbstoff (geringe Saettigung)
Magenta Dye (low saturation) = Magenta Farbstoff (geringe Saettigung) lila
Red-violet Dye (low saturation) = Rotvioletter Farbstoff (geringe Saettigung)
[UnifiedDyes] Loaded! = [UnifiedDyes] geladen!

View File

@ -0,0 +1,87 @@
# Template
Lime Dye =
Aqua Dye =
Sky-blue Dye =
Red-violet Dye =
Light Grey Dye =
Dark Red Dye (low saturation) =
Dark Orange Dye (low saturation) =
Dark Yellow Dye (low saturation) =
Dark Lime Dye (low saturation) =
Dark Green Dye (low saturation) =
Dark Aqua Dye (low saturation) =
Dark Cyan Dye (low saturation) =
Dark Sky-blue Dye (low saturation) =
Dark Blue Dye (low saturation) =
Dark Violet Dye (low saturation) =
Dark Magenta Dye (low saturation) =
Dark Red-violet Dye (low saturation) =
Dark Red Dye =
Dark Orange Dye =
Dark Yellow Dye =
Dark Lime Dye =
Dark Green Dye =
Dark Aqua Dye =
Dark Cyan Dye =
Dark Sky-blue Dye =
Dark Blue Dye =
Dark Violet Dye =
Dark Magenta Dye =
Dark Red-violet Dye =
Medium Red Dye (low saturation) =
Medium Orange Dye (low saturation) =
Medium Yellow Dye (low saturation) =
Medium Lime Dye (low saturation) =
Medium Green Dye (low saturation) =
Medium Aqua Dye (low saturation) =
Medium Cyan Dye (low saturation) =
Medium Sky-blue Dye (low saturation) =
Medium Blue Dye (low saturation) =
Medium Violet Dye (low saturation) =
Medium Magenta Dye (low saturation) =
Medium Red-violet Dye (low saturation) =
Medium Red Dye =
Medium Orange Dye =
Medium Yellow Dye =
Medium Lime Dye =
Medium Green Dye =
Medium Aqua Dye =
Medium Cyan Dye =
Medium Sky-blue =
Medium Blue Dye =
Medium Violet Dye =
Medium Magenta Dye =
Medium Red-violet Dye =
Red Dye (low saturation) =
Orange Dye (low saturation) =
Yellow Dye (low saturation) =
Lime Dye (low saturation) =
Green Dye (low saturation) =
Aqua Dye (low saturation) =
Cyan Dye (low saturation) =
Sky-blue Dye (low saturation) =
Blue Dye (low saturation) =
Violet Dye (low saturation) =
Magenta Dye (low saturation) =
Red-violet Dye (low saturation) =
Red Dye =
Orange Dye =
Yellow Dye =
Lime Dye =
Green Dye =
Aqua Dye =
Cyan Dye =
Sky-blue Dye =
Blue Dye =
Violet Dye =
Magenta Dye =
Red-violet Dye =
[UnifiedDyes] Loaded! =

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B