1
0
mirror of https://github.com/mt-mods/unifieddyes.git synced 2025-06-28 14:26:21 +02:00

Compare commits

..

147 Commits

Author SHA1 Message Date
ad12387432 use "split" for split-89 palette instead of true. 2018-09-08 12:09:25 -04:00
7b18314235 drop support for the old 89 color palette - obsolete
(the full version)
2018-09-08 11:49:20 -04:00
73a062f026 don't register pink recipe twice for wallmounted 2018-09-08 11:30:14 -04:00
0413f23df1 fix incorrect handling of "azure" re: wallmounted palette
(it doesn't exist there :P  replaced with light blue)
also fixed missing craft helper recipe for same
and fixed missing light_red in color<->palette table.
2018-09-08 11:21:00 -04:00
8fbd9cd23b condense legend a bit
move selected dye label over next to/under "Your selection"
2018-09-08 11:08:37 -04:00
997d703b94 eliminate most egregious string concats in color select form
build it into a table and return table.concat()
instead of using foo = foo..bar or foo = bar..baz..meh  everywhere
2018-09-08 10:53:25 -04:00
95f009a282 show in color selector when a dye is on-hand in survival, but unavailable
(right-clicked node can't use it)
2018-09-08 10:24:08 -04:00
fb2c14b4a8 rename "available" overlay to "onhand" 2018-09-08 10:15:51 -04:00
42093582df show "on hand" indicators in "avail only" screen 2018-09-08 10:13:31 -04:00
3cbb25d92a pass inv to colored squared function 2018-09-08 10:09:42 -04:00
0589d8f02e dim-out the user's color choice in the color selector
and reject it on clicking "Accept",
if they went to "Show All" to select a color,
but then went back to "Show Avail" before clicking Accept.

(i.e. only accept what's shown as available to click on)
2018-09-08 10:05:13 -04:00
fc199cced4 moved the formspec code for the colored squares to its own function 2018-09-08 09:47:31 -04:00
da9ab7215c make airbrush show only the colors the right-clicked node can use
(with button to toggle between that mode and show-all)
2018-09-08 09:09:13 -04:00
19febc877d fix typo 2018-08-28 22:50:05 -04:00
c3036aba00 handle special case of split palette with full colors in node name
also check for ud_param2_colorable before proceeding to airbrush
also handle new -> old color names in split palette switching
2018-08-28 22:44:02 -04:00
d53fb146dd show the player's current painting-with color,
if no color is selected, if any

if no painting-with and no selected, shows a "?"
2018-08-27 20:01:15 -04:00
5b1051f8ae show the "your selection" legend in creative mode
(since it now shows the selected color instead of an empty box)
2018-08-27 19:52:15 -04:00
62806f795e better handling of exiting the color selector form
also prints a warning if the user clicked "Accept" without a color selected
2018-08-27 19:45:34 -04:00
057baacf2d make "Your selection" legend show your selected color
or show a "?" when a color hasn't been chosen
2018-08-27 19:30:36 -04:00
f7cc4be2c3 update API 2018-08-27 02:50:45 -04:00
4dc4b0e08a fix broken re-painting of nodes using the split palettes
(broken in multiple places....oy.)

also, fix wrong light green shade in colorwallmounted palette

also, fixed many wrong/missing aliases and translations between old and current colors
(i.e. aqua<->spring, skyblue<->azure, redviolet<->rose)
2018-08-27 01:10:44 -04:00
3898337fc3 don't try to match last_color to registered_items table, that breaks aliases 2018-08-27 00:05:34 -04:00
088b5ee120 tweak switching-to msg 2018-08-26 22:35:40 -04:00
2e4c2e2667 add "***" to all other warning/info msgs 2018-08-26 22:31:56 -04:00
6ecb115465 warn the user to open the color selector
instead of crashing if they have no color set :-)
2018-08-26 22:27:43 -04:00
4dde37c191 remove "already that color" chat msg (some found it annoying) 2018-08-26 22:16:28 -04:00
c9d7733d87 use right-click (on any random node) to open the color selector
experimental code to read the param2 of a node and make a dye out of it
used by airbrush, shift-right-click to change to that color
2018-08-26 22:15:37 -04:00
0a589e7529 use shift-right-click for color select form
(instead of punch or shift-punch)

Must be pointing at a node, doesn't matter what it is, but with a range
of 12, it's hard not to.
2018-08-26 19:34:01 -04:00
409ee441c4 respect protection 2018-08-26 08:59:28 -04:00
ca1ab44e78 add recipe for airbrush 2018-08-26 08:41:04 -04:00
e13d514ff7 allow shift-punch for airbrush form 2018-08-26 08:28:56 -04:00
fa71e3166c allow replacement nodes during airbrushing 2018-08-26 07:23:40 -04:00
414d72d2a6 new punch-to-colorize scheme
using a tool, the airbrush, for the job

point at air/nothing and punch while wielding the airbrush
to open the color selection form.
2018-08-26 07:10:00 -04:00
568168fe1f better handling of the register_on_placenode rotation fix 2018-08-26 07:09:20 -04:00
c005dc358a minor changes to colorwallmounted palette
got rid of the separate brown swatch in the colorwallmounted palette, as
it was being bypassed by the brown-> medium orange translation --
replaced it with light green.

fixed missing colorwallmounted light blue/azure check-and-return in
get_paletteidx()
2018-08-25 02:40:17 -04:00
c7fc48c8d0 fix some broken aliases,
add some corresponding ones (unifieddyes:* vs. dye:*)
2018-08-25 00:38:24 -04:00
de5f73e976 clarify usage of make_colored_itemstack() 2018-08-24 23:53:53 -04:00
0d00a7eae6 workaround for placing nodes with no color info in itemstack 2018-08-24 11:13:42 -04:00
adf1bc2c50 remove the old obsolete on_use stuff
(was applied to dye items, obsolete now)
2018-08-24 05:41:27 -04:00
35d34d809e more API doc tweaks 2018-08-23 05:56:02 -04:00
28b429785c more API.md tweaks 2018-08-22 22:27:07 -04:00
cac65df76c clarify API regarding neutral_node field 2018-08-22 20:39:45 -04:00
d3274ab66f remove debug prints 2018-08-22 20:07:15 -04:00
d2512952d9 forgot to add pink to craft helper 2018-08-22 20:06:29 -04:00
5557178cb4 proper handling of 89-color "split" palette in craft helper 2018-08-22 20:01:03 -04:00
4847b926d5 preserve color bits in rotation fixup calls 2018-08-22 04:25:43 -04:00
e3648f77e2 remove debug prints 2018-08-22 03:27:17 -04:00
b49ed1724b fix hue table type for wallmounted in craft helper 2018-08-22 03:14:20 -04:00
992bca7e15 update API for new paradigm
plus some minor cleanups and style fixes
2018-08-22 01:10:19 -04:00
2a81653492 Merge branch 'colored-itemstacks'
Make colored itemstacks the official code
2018-08-21 23:29:43 -04:00
a55f6faa14 further refine how colored itemstacks work 2018-08-21 23:28:17 -04:00
da24c09f62 check if pointed thing actually works in on_use 2018-08-03 09:22:17 -04:00
cd130cf8de Merge pull request #23 from katkaha/dye_aliases
adding aliases for brown and grey dyes
2018-05-11 08:57:49 -04:00
f6581b6ba3 adding aliases for brown and grey dyes 2018-05-10 20:13:31 +02:00
48cd40a5c2 Agrege la traducción al español 2018-04-23 20:09:02 -07:00
0d654eafec Merge pull request #21 from Jat15/patch-2
Fix grayscale with 89-color palette
2017-12-11 15:09:20 -05:00
5dc464a4b2 Fix grayscale with 89-color palette
Fixes #19
2017-12-11 10:35:30 +01:00
3c8b698e8e Merge pull request #20 from MuhdNurHidayat/master
Add Malay translation
2017-11-13 22:21:14 -05:00
e947a073ef Add Malay translation 2017-11-14 02:43:28 +08:00
3764d33490 Merge pull request #16 from fat115/master
add french translation
2017-08-12 16:24:58 -04:00
384ccc3d44 add french translation 2017-08-06 15:11:07 +02:00
08695d01ac some mods still need unifieddyes:white -> dye:white alias 2017-08-01 14:31:04 -04:00
d843b33e7c Merge pull request #14 from afmachado/master
Translation to Brazilian Portuguese
2017-07-20 01:38:40 -04:00
54c3316423 Translation to Brazilian Portuguese
Translation to Brazilian Portuguese
2017-06-27 18:55:52 -03:00
a8caed8195 separate the make-colored-itemstack code into its own function 2017-06-20 17:01:54 -04:00
731c7d133e disable old after_dig_node() callbacks
(don't split a digged node into neutral+dye)
2017-06-20 17:01:54 -04:00
ad8ab99bd8 disable auto-coloring code entirely 2017-06-20 17:01:54 -04:00
07101b99fe add helper function for crafting param2-colorized items
One call registers the full set of 32, 89, or 256 colors.

Pass it a recipe of the following general form

```lua
unifieddyes.register_color_craft({
        output = "mymod:colorized_node",
        type = <nil or "shapeless">
        palette = <see below>,
        neutral_node = "some_mod:neutral_node",
        recipe = {
                <see below>
        }
})
```

palette may be either "wallmounted" (32 colors), false or omitted
entirely (89 colors), or "extended" (256 colors).

The recipe section is either a shapeless list, or a standard three-line
shaped recipe, same as the regular register_craft() function.  The key
difference is two placeholder keys that are now supported:

  * if an item in the recipe is "MAIN_DYE", then Unified Dyes will, with
    each pass of its registration loop, substitute the actual "dye:foo"
    craft item in its place which corresponds with the current loop's color.
  * if an item in the recipe list is "NEUTRAL_NODE", then the value of the
    "neutral_node" field will be substituted in its place.

The expectation here is that the modder probably has some base recipe in
mind that, given no dyes, would result in a neutral, uncolored node.  This
call creates all the recipes that would be needed to craft colored versions
of that neutral node either using that base recipe with dye added, or by
crafting the neutral node with some dye after the fact.
2017-06-20 17:01:54 -04:00
133bc06e3d link API to README 2017-06-20 17:00:46 -04:00
9018efd1b9 rename README 2017-06-20 16:58:33 -04:00
9503386100 update README, point user to forum for detailed usage info 2017-06-20 16:50:24 -04:00
40b836edf4 document the API 2017-06-20 16:44:27 -04:00
495479c6a2 remove a few redundant aliases 2017-06-20 16:11:15 -04:00
0822757382 add alternate recipe for dark orange 2017-06-20 16:04:00 -04:00
ffd03b9c3c clean-up of dark/medium orange and light/red
(fixes #13)
2017-06-20 15:44:28 -04:00
8b20a069d3 rotation fixes for compat with minetest 0.4.16 2017-06-04 16:17:37 -04:00
9dd533f4a0 Merge pull request #9 from AntumDeluge/settings
Replace deprecated 'setting_getbool' with 'settings:get_bool'
2017-05-18 05:44:39 -04:00
83261d5db4 Merge pull request #8 from AntumDeluge/master
Replace deprecated call to 'get_look_yaw' with 'get_look_horizontal'
2017-05-18 05:44:31 -04:00
73e05d9c76 Replace deprecated 'setting_getbool' with 'settings:get_bool' 2017-05-13 16:55:37 -07:00
df3f1b18ab Replace deprecated call to 'get_look_yaw' with 'get_look_horizontal' 2017-05-03 23:05:40 -07:00
df177c26a7 allow shift-punching on a colorable node, to cancel auto-coloring
also add a message in the chat when auto-color is activated, and with what.
2017-03-18 15:56:28 -04:00
cf186f5f9c make sure the pointed thing is a node before checking protection 2017-03-18 14:37:09 -04:00
726bb75e1d add recolor-on-place helper
if you add `after_place_node = unifieddyes.recolor_on_place,`
to your node def, UD will automatically colorize the node when
placed, using the last dye you colored that kind of node with.

If you switch to some other colorable node, or you run out of whatever
color dye you were using at the time, a warning message will be printed
and the autocolor will be reset back to neutral.

If a player signs off, autocolor for him/her is reset to neutral
(this also helps prevent a minor memory leak)

also get rid of one or two debug prints.
2017-03-18 03:26:05 -04:00
8fc5468212 remove outdated comment 2017-03-17 22:26:51 -04:00
63153f1093 protection check on_use 2017-03-17 03:18:06 -04:00
15b6016f0f on_construct for nodes that were 89-color or static,
but now use an LBM to convert to the 256-color palette
2017-03-14 02:05:52 -04:00
978e88bda5 don't crash if the dye target is an unknown node :P 2017-03-11 21:20:10 -05:00
70b1f9fbc9 made base_color_crafts, shade_crafts,
and greymixes tables globally accessible
2017-02-26 22:32:56 -05:00
2804327825 get rid of some redundant variables
(just directly reference the table elements instead)
2017-02-26 18:56:12 -05:00
315dfb8283 add another recipe 2017-02-26 18:39:41 -05:00
f852fb6861 add more hue recipes
also fix a variable that got capitalized for some reason
2017-02-26 18:37:34 -05:00
2b9831a869 add more "direct" recipes
for the more esoteric colors
2017-02-26 17:57:44 -05:00
0cd0758c08 only use the node def's palette entry to check palette type
(don't assume it has to be paramtype2="color", otherwise that screws up
uncolored nodes that need this check for on_use)
2017-02-26 10:55:49 -05:00
46a55946ef define on_use for default dyes
(forgot to include the overrides)
2017-02-25 16:45:57 -05:00
dcf9bf648f override default dyes to keep their hues/shades consistent
with how this mod uses them.  Also fix missing aliases for same.
2017-02-25 16:41:16 -05:00
58cac62bf4 clean up greyscale portion of extended palette
remap greys slightly, tweak related recipes
2017-02-25 15:41:14 -05:00
22243fa684 add grey crafts and consolidate slightly 2017-02-25 14:41:53 -05:00
9f36afaf50 greys were mapped slightly wrong, fixed 2017-02-25 14:07:35 -05:00
3f9e8e4554 fix missing full-s50 defs,
fix a couple more broken recipes
2017-02-25 13:22:08 -05:00
92da3a5345 add crafting recipes for all hues and some greys
also fix broken light grey registration
2017-02-25 12:44:22 -05:00
91d260b538 make some color tables globally accessible (in unifieddyes namespace) 2017-02-24 22:52:05 -05:00
e3f73e07e7 remove some debug statements 2017-02-24 21:56:29 -05:00
fe455a7e44 dyes -> not in creative inv 2017-02-24 20:42:04 -05:00
d2819353c2 fix greys in palette conversion table 2017-02-24 20:13:43 -05:00
fbe762cf19 it's okay to use an oversized palette
also formula for 89->256 table was wrong
2017-02-24 19:57:48 -05:00
e0c87656ed Mark the node via its metadata if it's been painted with 256-color palette 2017-02-24 19:21:15 -05:00
cf89bc6a24 translate new dye names to old for 89-color palette check 2017-02-24 18:48:02 -05:00
50013d21d1 Add detection and setting of new palette
(with any luck, all that's left now is to update the mods that use
Unified Dyes, where the new palette is wanted)
2017-02-24 18:38:15 -05:00
9ad1f28ae1 auto-generate the various dye craftitems
and base them all on a single colorized texture.
2017-02-24 17:40:37 -05:00
68f8c18bc3 get rid of HUES2 table (use string ops to replace it) 2017-02-24 14:28:38 -05:00
0ceb8f0afe add extended palette
full 256-color range:
24 full hues, with four lighter shades and two darker shades, plus
low-saturation versions of the full and darker shades,
and 16 levels of greyscale
2017-02-24 14:21:59 -05:00
34299b01a0 fix not being able to pick up dropped objects while wielding dye 2017-02-21 07:46:38 -05:00
295cd027f2 add on_rotate handler
to correct rotation for "fake wallmounted" nodes so that they always appear
to be on the floor, pointing at one of the four NSEW directions.
2017-02-18 13:00:06 -05:00
aacb377f8c "widen" the range for floor/ceiling placement checking
in fix_rotation function
2017-02-17 23:13:22 -05:00
80e5429bf3 add helper functions for rotation correction 2017-02-17 23:04:47 -05:00
0aa55cc4d7 re-generated all of the palettes
Some colors were a little bit "off" from the official spec.  Started
from the standard 12 hues, with their RGB values manually set to exactly
0, 128, or 255 as appropriate, then brightness and saturation adjusted
as needed for each shade band.  Black is set at 8 percent (0x141414).
2017-02-07 15:42:13 -05:00
b0ccff164d add light_blue to wallmounted palette 2017-02-06 09:30:04 -05:00
4d11406f8d Pink/brown color translation tweaks
Only perform pink -> light_red and brown -> dark_orange translations if
not using the "colorwallmounted" palette.
2017-02-06 09:22:10 -05:00
e3b7e9d534 fix broken check-for-colorable 2017-02-05 20:21:04 -05:00
e981b29cd2 use on_use instead of on_rightclick to apply dyes
also add some useful messages if the target was already
the same color as the dye, can't be colored, can't take
the requested color, etc.
2017-02-04 19:40:15 -05:00
112ba73ed6 better pink shade in the colorwallmounted palette
(now it's standard web pink, but shifted 15 degrees toward red and
saturation maxed out)
2017-01-30 18:27:07 -05:00
935f15c343 don't set a custom param2 if the placed node has no facedir/wallmount 2017-01-30 05:50:02 -05:00
de61a1333b fix wallmounted grey numbering 2017-01-30 05:32:17 -05:00
1b0e384278 fix messed-up grayscale color select logic 2017-01-29 00:06:08 -05:00
3b942c352f remove some debug statements 2017-01-28 21:57:14 -05:00
8ea8b01dcc add API option for "colorwallmounted" paramtype2
(pass "wallmounted" to the "is_color_fdir" field where needed)

Comes with an abridged, 32-color version of the master palette,
containing Red, Orange, Yellow, Green, Cyan, Blue, Violet, and Magenta,
in three shades each, plus the usual black/three greys/white, plus pink
and brown in two of the extrs spaces.
2017-01-28 21:51:46 -05:00
966166b1b9 only crop the palleteidx if param2 is colorfacedir
(prevent a potential bug later: some day, maybe there
will be more than 89 colors in UD)
2017-01-28 18:19:58 -05:00
aef03c1932 colorfdir -> is_color_fdir
(preparing for later inclusion of some kind of wallmounted palette)
2017-01-28 18:18:27 -05:00
e146c55ca0 fix a couple more missing aliases 2017-01-28 09:37:10 -05:00
2fcae9d17d fix several dye-handling bugs 2017-01-28 09:02:14 -05:00
aeb179a129 API CHANGE: after_dig_node instead of on_destruct
This also fixes the case where digging a block just drops
the dye on the ground instead of putting it in the player's inv.
2017-01-28 08:05:44 -05:00
0fbf6baa72 fix facedir not being set when simple node placement fall-through is called 2017-01-28 07:19:30 -05:00
525a143398 removed obsolete scripts and image 2017-01-26 19:37:29 -05:00
4622d25e76 fix wrong param2 setting 2017-01-26 19:02:55 -05:00
3e93c10cfd handle both cases of nodes being set with facedir 2017-01-26 15:49:06 -05:00
2959698111 remove debug statements 2017-01-26 14:21:54 -05:00
b42376ba3d improve handling of greyscale in get-hsv function 2017-01-26 13:51:38 -05:00
1c5d79800f add an alternate "find HSV" function.
Note that if the result is greyscale, the name ("black", "grey", ...) is
returned in the "hue" field, sat is empty string, and val is "light",
"dark", or empty string.
2017-01-26 13:42:36 -05:00
b1ad76ab72 handle a few more color-to-grey and grey-to-color cases 2017-01-26 11:23:34 -05:00
3f7fb1af74 Just do the node's color search manually
(to handle cases where the node has more than just the standard-format
nodename:[shade_]hue[_s50] naming, e.g. stairsplus nodes like:

nodename:stair_[shade_]hue[_s50][_some_extra_details]
2017-01-26 11:06:31 -05:00
4f1303aac1 handle special cases for greyscale dyes and unpainted nodes 2017-01-26 07:10:48 -05:00
1773af6868 rework how split palettes are handled 2017-01-26 06:18:37 -05:00
1c7f403f29 add "split" palette for mods that need facedir + param2 color 2017-01-25 18:21:26 -05:00
00459f8859 only allow placing the wielded thing if it's actually a node 2017-01-25 16:05:24 -05:00
1426efb517 include standard 89-color UD palette 2017-01-25 13:56:31 -05:00
7c48587c6a add a few missing aliases 2017-01-25 13:19:20 -05:00
17522711de Add some helper functions to support the new param2-style coloring
Most of the code came from cheapie's plasticbox mod
2017-01-25 12:59:49 -05:00
113 changed files with 1937 additions and 987 deletions

184
API.md Normal file
View File

@ -0,0 +1,184 @@
### API
This section details the Unified Dyes API and how to use it with your mods.
In your node definition, you must include a few things to interface with Unified Dyes. Here is an example:
```lua
minetest.register_node("mymod:colored_node", {
description = "My custom colored node",
tiles = { "mymod_custom_colored_node.png" },
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
groups = {snappy = 1, cracky = 2, ud_param2_colorable = 1}
on_construct = unifieddyes.on_construct,
airbrush_replacement_node = "mymod:my_other_colored_node"
})
```
`paramtype2` must be one of:
- "color": this is an 89-color or 256-color node
- "colorwallmounted": this is a 32-color node using "wallmounted" mode
- "colorfacedir": this node uses one of the "split" 89-color palettes.
`palette` must be set to match the `paramtype2` setting, and must be one of:
- "unifieddyes_palette.png"
- "unifieddyes_palette_extended.png"
- "unifieddyes_palette_colorwallmounted.png"
- or one of the "split" hues palettes (see below).
`groups`: If your node can be colored by using the airbrush, its groups entry must contain the key ud_param2_colorable = 1, among whatever else you'd normally put there. If the node is software-controlled, as might be the case for some mesecons-digilines aware node, then this group key should be omitted.
If your node if of the kind where you need the split palette, but you need to put the *full color name* into the node name, as opposed to just the hue, then add the keys `ud_color_start` and `ud_color_end` and set them to the positions of the first and last characters of the color name (where 1 is the first character of the mod name at the start of the node name, i.e. "mymod:foo_bar_orange_baz" would have the start set to 15 and the end at 20).
`on_construct`: see below.
`airbrush_replacement_node`: The node to swap in when the airbrush is used on this node. For example, you could `minetest.override_item()` on some default node to add this field, pointing to a colorable node of your own, so that when the default node is painted, it's replaced with yours in the new color.
#### Function calls
**`unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)`
`unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)`**
These two are used to re-orient `wallmounted` nodes after placing. The former allows positioning to floor, ceiling, and four walls, while the latter restricts the rotation to just the four walls. The latter is most often used with a node whose model is designed so that the four wall positions actually place the model "upright", facing +/- X or Z. This is a hacky way to make a node look like it has basic `facedir` capability, while being able to use the 32-color palette.
**`unifieddyes.fix_after_screwdriver_nsew(pos, node, user, mode, new_param2)`**
This serves the same purpose as the `fix_rotation_nsew`, but is used to restrict the node's rotation after it's been hit with the screwdriver.
**`unifieddyes.is_buildable_to(placer_name, ...)`**
Again, another obvious one, returns whether or not the pointed node is `buildable_to` (can be overwritten by another node).
**`unifieddyes.get_hsv(name)`**
Accepts an item name, and returns the corresponding hue, saturation, and value (in that order), as strings.
If the item name is a color (not greyscale), then `hue` will be the basic hue for that color, saturation will be empty string for high saturation or "\_s50" for low, and value will be "dark_", "medium_", "light_", or an empty string if it's full color.
If the item name is greyscale, then `hue` will contain "white", "light_grey", "grey", "dark_grey", or "black", saturation will (ironically) be an empty string, and value will be "light_", "dark_", or empty string to correspond with the contents of `hue`.
For example:
* "mymod:mynode_red" would return ("red", "", "")
* "mymod:mynode_light_blue" would return ("blue", "", "light_")
* "mymod:mynode_dark_yellow_s50" would return ("yellow", "_s50", "dark_")
* "mymod:mynode_dark_grey" would return ("dark_grey", "", "dark_")
**`unifieddyes.getpaletteidx(color, palette_type)`**
When given a `color` string (in the form of "dye:foo" or "unifieddyes:foo") and `palette_type` (either a boolean or string), this function returns the numerical index into that palette, and the hue name as a string.
* `false` or `nil`: the 89-color palette
* `true`: 89 color "split" palette mode, for nodes that need full `facedir` support. In this case, the returned hue will be the color of whichever of the 13 "split" palettes the node is using, and the index will be 1-7, representing the shade within that palette. See my coloredwoods mod for more information on how this mode is used. If the node is black, white, or grey, the hue will be set to 0.
* `wallmounted`: the 32-color palette, for nodes using `colorwallmounted` mode.
* `extended`: the 256-color "extended" palette
**`unifieddyes.color_to_name(param2, def)`**
This function will attempt to return the name of the color indicated by `param2`. `palette` tells the function which palette filename was used with that param2 value. The returned value should be suitable as a dye item name when prefixed with "dye:".
**`unifieddyes.on_airbrush(itemstack, player, pointed_thing)`**
This is called when a node is punched while wielding the airbrush.
**`unifieddyes.show_airbrush_form(player)`**
This one does just what it sounds like - it shows the color selector formspec.
**`unifieddyes.on_construct(pos)`**
This function, usually called from your node definition's `on_construct`, just sets the `palette = "ext"` metadata key for the node after it's been placed. This can then be read in an LBM to determine if this node needs to be converted from the old 89-color palette to the extended 256-color palette. Although it is good practice to call this for any node that uses the 256-color palette, it isn't actually necessary as long as the node has never used the 89-color palette, and won't be subjected to an LBM that changes its color.
**`unifieddyes.register_color_craft(recipe)`**
This will loop through all of Unified Dyes' color lists, generating one recipe for every color in the palette given in the call. Example usage:
```lua
unifieddyes.register_color_craft({
output = "mymod:colored_node 6",
palette = "extended",
neutral_node = "mymod:my_base_node_material",
recipe = {
{ "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" },
{ "MAIN_DYE", "NEUTRAL_NODE", "MAIN_DYE" },
{ "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" }
}
})
```
`output` is a standard item string as in the normal `minetest.register_craft()` call.
`palette` specifies the palette type to iterate through ("extended" and "wallmounted" are obvious, and if not specified, it'll use the 89 color palette).
`type` can be "shapeless" or unspecified/`nil`, and works the same as in the normal call.
`neutral_node` should specify the name of whatever item or node serves as the base, neutrally-colored material in your recipe. This really only applies if your node is just made from one item (or more than one of the same item), plus one or more dyes. If your node is just made from a collection of assorted items and no one item is really the neutral material, or anyway if you don't need this substitution, you must set it to an empty string.
`recipe` is the same as in the normal call, except that Unified Dyes will replace all instances of the string "NEUTRAL_NODE" with the item specified in the preceding `neutral_node` field. Every instance of "MAIN_DYE" will be replaced with a portion of dye, as Unified Dyes' recipe helper works through its color lists (i.e. this field will become whatever dye is needed for each recipe).
`output_prefix` and `output_suffix`, if specified (must use both if at all), will cause the recipe registration to ignore the usual `output` field, and instead set to the output item to `output_prefix` + (hue) + `output_suffix`. Used for mods that use the split 89-color palette. `hue` will thus be one of the 12 hues, or "grey", as defined by the split palettes.
**`unifieddyes.make_colored_itemstack(itemstack, palette, color)`**
Makes a colored itemstack out of the given `itemstack` and `color` (as a dye, e.g. "dye:dark_red_s50"), setting the correct index per the `palette` field, which works as described above for `unifieddyes.getpaletteidx()`. Said itemstack is returned as a string suitable for use as the output field of a craft recipe, equal in size to the itemstack passed into the function (e.g. if you give it "mymod:colored_node 7", it'll return a stack of 7 colored items).
#### Tables
In addition to the above API calls, Unified Dyes provides several useful tables
`unifieddyes.HUES` contains a list of the 12 hues used by the 89-color palette.
`unifieddyes.HUES_EXTENDED` contains a list of the 24 hues in the 256-color palette. Each line contains the color name and its RGB value expressed as three numbers (rather than the usual `#RRGGBB` string).
`unifieddyes.base_color_crafts` contains a condensed list of crafting recipes for all 24 basic hues, plus black and white, most of which have multiple alternative recipes. Each line contains the name of the color, up to five dye itemstrings (with `nil` in each unused space), and the yield for that craft.
`unifieddyes.shade_crafts` contains recipes for each of the 10 shades a hue can take on, used with one or two portions of the dye corresponding to that hue. Each line contains the shade name with trailing "_", the saturation name (either "_s50" or empty string), up to three dye item strings, and the yield for that craft.
`unifieddyes.greymixes` contains the recipes for the 14 shades of grey. Each line contains the grey shade number from 1-14, up to four dye item names, and the yield for that craft.
#### Converting an old mod
If your mod used the old paradigm where you craft a neutral-colored item, place it, and punch with dye to color it, and you wish to convert it to colored itemstacks, take the following actions for each node:
* Remove these keys from your node definition:
```lua
place_param2 = 240,
after_dig_node = unifieddyes.after_dig_node,
after_place_node = unifieddyes.recolor_on_place,
ud_replacement_node = "mod:some_node"
```
* Add the `airbrush_replacement_node` key to the node definition, if needed.
* Add a call to `unifieddyes.register_color_craft(recipe)`, the create-all-the-recipes helper described above (of course, you don't have to register any recipes if you don't want to, or you can roll your own, your choice).
**If your mod never has never used Unified Dyes at all**
* Remove all of your various colored node definitions, keeping only the one for the white version of your node, or delete them all, and keep whatever node you consider to be "neutral colored".
* Delete all of the colored texture files too, except keep the brightest, highest-contrast, most detailed one - whichever color that happens to be. Most likely, red or green will be the best one.
* Convert that remaining texture to grayscale, enhance its contrast as much as you can without distorting it, and rename it and the node it'll be used to something neutral-sounding.
* Add the `on_construct` and `palette` keys to your neutral node definition, for example:
`palette = "unifieddyes_palette_extended.png",`
`on_construct = unifieddyes.on_construct,`
* Adjust your node's groups to specify that the node can be colored. Example (note the last item):
`groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, ud_param2_colorable = 1},`
* Remove all crafting recipes for all colored versions of that node, keeping only the one that makes the "neutral" one.
* Add the above recipes helper call (which replaces those delted recipes)
* If your colored node is based on someone else's neutral node, for example if you made a mod that creates multiple colors of minetest_game's default clay, you may find it best to create a single "stand-in" node that's identical to the neutral node, but named for your mod, hidden from the creative inventory, and which has a properly-prepared grayscale texture image in addition to the above keys. Use `minetest.override_item()` to add the `on_construct`, `palette`, and `airbrush_replacement_node` keys, and the `ud_param2_colorable` group, to that "someone else's" node. Then use that node and your custom, hidden node in the craft helper call.
* You will need to write a run-only-once LBM to convert your old statically-colored nodes to use hardware coloring. See above for functions that will help reduce the work required for this part.
**If your mod has no colorable items**
If you wish to expand your mod to support color, just follow the above "never used" section, skipping the "remove/delete this and that" items, and of course omitting the LBM.

248
README
View File

@ -1,248 +0,0 @@
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 above
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.

16
README.md Normal file
View File

@ -0,0 +1,16 @@
VanessaE's Unified Dyes
=======================
The purpose of this mod originally was to supply a complete set of colors for Minetest mod authors to use for colorized nodes, or to reference in recipes. Since the advent of the default dyes mod in minetest_game, this mod has become more of an extension of the default mod. Since the advent of param2 colorization, it has also become a library for general color handling.
Unified Dyes expands the standard dye set from 15 colors to 32, 89, or 256 (see the API and usage info).
Dependencies: Minetest engine version 0.4.16 or higher and a corresponding copy of minetest_game.
License: GPL 2.0 or higher.
Install: Unzip the distribution file, rename the resultant folder to just "unifieddyes", move it into Minetest's mods folder, and enable it in your world configuration.
Usage: for detailed usage information, please see [the Unified Dyes Thread](https://forum.minetest.net/viewtopic.php?f=11&t=2178&p=28399) on the Minetest forum.
API: the full API is documented here: https://github.com/minetest-mods/unifieddyes/blob/master/API.md

View File

@ -1,183 +0,0 @@
#!/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

View File

@ -1,177 +0,0 @@
#!/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

1641
init.lua

File diff suppressed because it is too large Load Diff

View File

@ -1,79 +0,0 @@
#!/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

87
locale/es.txt Normal file
View File

@ -0,0 +1,87 @@
# Traducido por Carlos Barraza
Lime Dye = Colorante Lima
Aqua Dye = Colorante Agua
Sky-blue Dye = Colorante Azul Cielo
Red-violet Dye = Colorante Rojo Violeta
Light Grey Dye = Colorante Gris Claro
Dark Red Dye (low saturation) = Colorante Rojo Oscuro (baja saturación)
Dark Orange Dye (low saturation) = Colorante Naranja Oscuro (baja saturación)
Dark Yellow Dye (low saturation) = Colorante Amarillo Oscuro (baja saturación)
Dark Lime Dye (low saturation) = Colorante Lima Oscuro (baja saturación)
Dark Green Dye (low saturation) = Colorante Verde Oscuro (baja saturación)
Dark Aqua Dye (low saturation) = Colorante Agua Oscuro (baja saturación)
Dark Cyan Dye (low saturation) = Colorante Cian Oscuro (baja saturación)
Dark Sky-blue Dye (low saturation) = Colorante Azul Cielo Oscuro (baja saturación)
Dark Blue Dye (low saturation) = Colorante Azul Oscuro (baja saturación)
Dark Violet Dye (low saturation) = Colorante Violeta Oscuro (baja saturación)
Dark Magenta Dye (low saturation) = Colorante Magenta Oscuro (baja saturación)
Dark Red-violet Dye (low saturation) = Colorante Rojo Violeta Oscuro (baja saturación)
Dark Red Dye = Colorante Rojo Oscuro
Dark Orange Dye = Colorante Naranja Oscuro
Dark Yellow Dye = Colorante Amarillo Oscuro
Dark Lime Dye = Colorante Lima Oscuro
Dark Green Dye = Colorante Verde Oscuro
Dark Aqua Dye = Colorante Agua Oscuro
Dark Cyan Dye = Colorante Cian Oscuro
Dark Sky-blue Dye = Colorante Azul Cielo Oscuro
Dark Blue Dye = Colorante Azul Oscuro
Dark Violet Dye = Colorante Violeta Oscuro
Dark Magenta Dye = Colorante Magenta Oscuro
Dark Red-violet Dye = Colorante Rojo Violeta Oscuro
Medium Red Dye (low saturation) = Colorante Rojo Claro (baja saturación)
Medium Orange Dye (low saturation) = Colorante Naranja Claro (baja saturación)
Medium Yellow Dye (low saturation) = Colorante Amarillo Claro (baja saturación)
Medium Lime Dye (low saturation) = Colorante Lima Claro (baja saturación)
Medium Green Dye (low saturation) = Colorante Verde Claro (baja saturación)
Medium Aqua Dye (low saturation) = Colorante Agua Claro (baja saturación)
Medium Cyan Dye (low saturation) = Colorante Cian Claro (baja saturación)
Medium Sky-blue Dye (low saturation) = Colorante Azul Cielo Claro (baja saturación)
Medium Blue Dye (low saturation) = Colorante Azul Claro (baja saturación)
Medium Violet Dye (low saturation) = Colorante Violeta Claro (baja saturación)
Medium Magenta Dye (low saturation) = Colorante Magenta Claro (baja saturación)
Medium Red-violet Dye (low saturation) = Colorante Rojo Violeta Claro (baja saturación)
Medium Red Dye = Colorante Rojo Claro
Medium Orange Dye = Colorante Naranja Claro
Medium Yellow Dye = Colorante Amarillo Claro
Medium Lime Dye = Colorante Lima Claro
Medium Green Dye = Colorante Verde Claro
Medium Aqua Dye = Colorante Agua Claro
Medium Cyan Dye = Colorante Cian Claro
Medium Sky-blue = Colorante Azul Cielo Claro
Medium Blue Dye = Colorante Azul Claro
Medium Violet Dye = Colorante Violeta Claro
Medium Magenta Dye = Colorante Magenta Claro
Medium Red-violet Dye = Colorante Rojo Violeta Claro
Red Dye (low saturation) = Colorante Rojo (baja saturación)
Orange Dye (low saturation) = Colorante Naranja (baja saturación)
Yellow Dye (low saturation) = Colorante Amarillo (baja saturación)
Lime Dye (low saturation) = Colorante Lima (baja saturación)
Green Dye (low saturation) = Colorante Verde (baja saturación)
Aqua Dye (low saturation) = Colorante Agua (baja saturación)
Cyan Dye (low saturation) = Colorante Cian (baja saturación)
Sky-blue Dye (low saturation) = Colorante Azul Cielo (baja saturación)
Blue Dye (low saturation) = Colorante Azul (baja saturación)
Violet Dye (low saturation) = Colorante Violeta (baja saturación)
Magenta Dye (low saturation) = Colorante Magenta (baja saturación)
Red-violet Dye (low saturation) = Colorante Rojo Violeta (baja saturación)
Red Dye = Colorante Rojo
Orange Dye = Colorante Naranja
Yellow Dye = Colorante Amarillo
Lime Dye = Colorante Lima
Green Dye = Colorante Verde
Aqua Dye = Colorante Agua
Cyan Dye = Colorante Cian
Sky-blue Dye = Colorante Azul Cielo
Blue Dye = Colorante Azul
Violet Dye = Colorante Violeta
Magenta Dye = Colorante Magenta
Red-violet Dye = Colorante Rojo Violeta
[UnifiedDyes] Loaded! = [ColorantesUnificados] Cargado.

87
locale/fr.txt Normal file
View File

@ -0,0 +1,87 @@
# Template
Lime Dye = Teinture citron-vert
Aqua Dye = Teinture aqua
Sky-blue Dye = Teinture bleu ciel
Red-violet Dye = Teinture rouge-violet
Light Grey Dye = Teinture gris clair
Dark Red Dye (low saturation) = Teinture rouge foncé (basse saturation)
Dark Orange Dye (low saturation) = Teinture orange foncé (basse saturation)
Dark Yellow Dye (low saturation) = Teinture jaune foncé (basse saturation)
Dark Lime Dye (low saturation) = Teinture citron-vert foncé (basse saturation)
Dark Green Dye (low saturation) = Teinture vert foncé (basse saturation)
Dark Aqua Dye (low saturation) = Teinture aqua foncé (basse saturation)
Dark Cyan Dye (low saturation) = Teinture cyan foncé (basse saturation)
Dark Sky-blue Dye (low saturation) = Teinture bleu ciel foncé (basse saturation)
Dark Blue Dye (low saturation) = Teinture bleu foncé (basse saturation)
Dark Violet Dye (low saturation) = Teinture violet foncé (basse saturation)
Dark Magenta Dye (low saturation) = Teinture magenta foncé (basse saturation)
Dark Red-violet Dye (low saturation) = Teinture rouge-violet foncé (basse saturation)
Dark Red Dye = Teinture rouge foncé
Dark Orange Dye = Teinture orange foncé
Dark Yellow Dye = Teinture jaune foncé
Dark Lime Dye = Teinture citron-vert foncé
Dark Green Dye = Teinture vert foncé
Dark Aqua Dye = Teinture aqua foncé
Dark Cyan Dye = Teinture cyan foncé
Dark Sky-blue Dye = Teinture bleu ciel foncé
Dark Blue Dye = Teinture bleu foncé
Dark Violet Dye = Teinture violet foncé
Dark Magenta Dye = Teinture magenta foncé
Dark Red-violet Dye = Teinture rouge-violet foncé
Medium Red Dye (low saturation) = Teinture rouge moyen (basse saturation)
Medium Orange Dye (low saturation) = Teinture orange moyen (basse saturation)
Medium Yellow Dye (low saturation) = Teinture jaune moyen (basse saturation)
Medium Lime Dye (low saturation) = Teinture citron-vert moyen (basse saturation)
Medium Green Dye (low saturation) = Teinture vert moyen (basse saturation)
Medium Aqua Dye (low saturation) = Teinture aqua moyen (basse saturation)
Medium Cyan Dye (low saturation) = Teinture cyan moyen (basse saturation)
Medium Sky-blue Dye (low saturation) = Teinture bleu ciel moyen (basse saturation)
Medium Blue Dye (low saturation) = Teinture bleu moyen (basse saturation)
Medium Violet Dye (low saturation) = Teinture violet moyen (basse saturation)
Medium Magenta Dye (low saturation) = Teinture magenta moyen (basse saturation)
Medium Red-violet Dye (low saturation) = Teinture rouge-violet moyen (basse saturation)
Medium Red Dye = Teinture rouge moyen
Medium Orange Dye = Teinture orange moyen
Medium Yellow Dye = Teinture jaune moyen
Medium Lime Dye = Teinture citron-vert moyen
Medium Green Dye = Teinture vert moyen
Medium Aqua Dye = Teinture aqua moyen
Medium Cyan Dye = Teinture cyan moyen
Medium Sky-blue = Teinture bleu ciel moyen
Medium Blue Dye = Teinture bleu moyen
Medium Violet Dye = Teinture violet moyen
Medium Magenta Dye = Teinture magenta moyen
Medium Red-violet Dye = Teinture rouge-violet moyen
Red Dye (low saturation) = Teinture rouge (basse saturation)
Orange Dye (low saturation) = Teinture orange (basse saturation)
Yellow Dye (low saturation) = Teinture jaune (basse saturation)
Lime Dye (low saturation) = Teinture citron-vert (basse saturation)
Green Dye (low saturation) = Teinture vert (basse saturation)
Aqua Dye (low saturation) = Teinture aqua (basse saturation)
Cyan Dye (low saturation) = Teinture cyan (basse saturation)
Sky-blue Dye (low saturation) = Teinture bleu ciel (basse saturation)
Blue Dye (low saturation) = Teinture bleu (basse saturation)
Violet Dye (low saturation) = Teinture violet (basse saturation)
Magenta Dye (low saturation) = Teinture magenta (basse saturation)
Red-violet Dye (low saturation) = Teinture rouge-violet (basse saturation)
Red Dye = Teinture rouge
Orange Dye = Teinture orange
Yellow Dye = Teinture jaune
Lime Dye = Teinture citron-vert
Green Dye = Teinture vert
Aqua Dye = Teinture aqua
Cyan Dye = Teinture cyan
Sky-blue Dye = Teinture bleu ciel
Blue Dye = Teinture bleu
Violet Dye = Teinture violet
Magenta Dye = Teinture magenta
Red-violet Dye = Teinture rouge-violet
[UnifiedDyes] Loaded! = [UnifiedDyes] chargé !

87
locale/ms.txt Normal file
View File

@ -0,0 +1,87 @@
# Malay translation by MuhdNurHidayat
Lime Dye = Pewarna Hijau Pucuk Pisang
Aqua Dye = Pewarna Akuamarin
Sky-blue Dye = Pewarna Biru Langit
Red-violet Dye = Pewarna Merah Lembayung
Light Grey Dye = Pewarna Kelabu Muda
Dark Red Dye (low saturation) = Pewarna Merah Tua (penepuan rendah)
Dark Orange Dye (low saturation) = Pewarna Jingga Tua (penepuan rendah)
Dark Yellow Dye (low saturation) = Pewarna Kuning Tua (penepuan rendah)
Dark Lime Dye (low saturation) = Pewarna Hijau Pucuk Pisang Tua (penepuan rendah)
Dark Green Dye (low saturation) = Pewarna Hijau Tua (penepuan rendah)
Dark Aqua Dye (low saturation) = Pewarna Akuamarin Tua (penepuan rendah)
Dark Cyan Dye (low saturation) = Pewarna Sian Tua (penepuan rendah)
Dark Sky-blue Dye (low saturation) = Pewarna Biru Langit Tua (penepuan rendah)
Dark Blue Dye (low saturation) = Pewarna Biru Tua (penepuan rendah)
Dark Violet Dye (low saturation) = Pewarna Lembayung Tua (penepuan rendah)
Dark Magenta Dye (low saturation) = Pewarna Magenta Tua (penepuan rendah)
Dark Red-violet Dye (low saturation) = Pewarna Merah Lembayung Tua (penepuan rendah)
Dark Red Dye = Pewarna Merah Tua
Dark Orange Dye = Pewarna Jingga Tua
Dark Yellow Dye = Pewarna Kuning Tua
Dark Lime Dye = Pewarna Hijau Pucuk Pisang Tua
Dark Green Dye = Pewarna Hijau Tua
Dark Aqua Dye = Pewarna Akuamarin Tua
Dark Cyan Dye = Pewarna Sian Tua
Dark Sky-blue Dye = Pewarna Biru Langit Tua
Dark Blue Dye = Pewarna Biru Tua
Dark Violet Dye = Pewarna Lembayung Tua
Dark Magenta Dye = Pewarna Magenta Tua
Dark Red-violet Dye = Pewarna Merah Lembayung Tua
Medium Red Dye (low saturation) = Pewarna Merah Sederhana (penepuan rendah)
Medium Orange Dye (low saturation) = Pewarna Jingga Sederhana (penepuan rendah)
Medium Yellow Dye (low saturation) = Pewarna Kuning Sederhana (penepuan rendah)
Medium Lime Dye (low saturation) = Pewarna Hijau Pucuk Pisang Sederhana (penepuan rendah)
Medium Green Dye (low saturation) = Pewarna Hijau Sederhana (penepuan rendah)
Medium Aqua Dye (low saturation) = Pewarna Akuamarin Sederhana (penepuan rendah)
Medium Cyan Dye (low saturation) = Pewarna Sian Sederhana (penepuan rendah)
Medium Sky-blue Dye (low saturation) = Pewarna Biru Langit Sederhana (penepuan rendah)
Medium Blue Dye (low saturation) = Pewarna Biru Sederhana (penepuan rendah)
Medium Violet Dye (low saturation) = Pewarna Lembayung Sederhana (penepuan rendah)
Medium Magenta Dye (low saturation) = Pewarna Magenta Sederhana (penepuan rendah)
Medium Red-violet Dye (low saturation) = Pewarna Merah Lembayung Sederhana (penepuan rendah)
Medium Red Dye = Pewarna Merah Sederhana
Medium Orange Dye = Pewarna Jingga Sederhana
Medium Yellow Dye = Pewarna Kuning Sederhana
Medium Lime Dye = Pewarna Hijau Pucuk Pisang Sederhana
Medium Green Dye = Pewarna Hijau Sederhana
Medium Aqua Dye = Pewarna Akuamarin Sederhana
Medium Cyan Dye = Pewarna Sian Sederhana
Medium Sky-blue = Pewarna Biru Langit Sederhana
Medium Blue Dye = Pewarna Biru Sederhana
Medium Violet Dye = Pewarna Lembayung Sederhana
Medium Magenta Dye = Pewarna Magenta Sederhana
Medium Red-violet Dye = Pewarna Merah Lembayung Sederhana
Red Dye (low saturation) = Pewarna Merah (penepuan rendah)
Orange Dye (low saturation) = Pewarna Jingga (penepuan rendah)
Yellow Dye (low saturation) = Pewarna Kuning (penepuan rendah)
Lime Dye (low saturation) = Pewarna Hijau Pucuk Pisang (penepuan rendah)
Green Dye (low saturation) = Pewarna Hijau (penepuan rendah)
Aqua Dye (low saturation) = Pewarna Akuamarin (penepuan rendah)
Cyan Dye (low saturation) = Pewarna Sian (penepuan rendah)
Sky-blue Dye (low saturation) = Pewarna Biru Langit (penepuan rendah)
Blue Dye (low saturation) = Pewarna Biru (penepuan rendah)
Violet Dye (low saturation) = Pewarna Lembayung (penepuan rendah)
Magenta Dye (low saturation) = Pewarna Magenta (penepuan rendah)
Red-violet Dye (low saturation) = Pewarna Merah Lembayung(penepuan rendah)
Red Dye = Pewarna Merah
Orange Dye = Pewarna Jingga
Yellow Dye = Pewarna Kuning
Lime Dye = Pewarna Hijau Pucuk Pisang
Green Dye = Pewarna Hijau
Aqua Dye = Pewarna Akuamarin
Cyan Dye = Pewarna Sian
Sky-blue Dye = Pewarna Biru Langit
Blue Dye = Pewarna Biru
Violet Dye = Pewarna Lembayung
Magenta Dye = Pewarna Magenta
Red-violet Dye = Pewarna Merah Lembayung
[UnifiedDyes] Loaded! = [UnifiedDyes] Telah Dimuatkan!

85
locale/pt.txt Normal file
View File

@ -0,0 +1,85 @@
Lime Dye = Corante Lima
Aqua Dye = Corante Água
Sky-blue Dye = Corante Azul-Céu
Red-violet Dye = Corante Vermelho-Violeta
Light Grey Dye = Corante Cinza Claro
Dark Red Dye (low saturation) = Corante Vermelho Escuro (baixa saturação)
Dark Orange Dye (low saturation) = Corante Laranja Escuro (baixa saturação)
Dark Yellow Dye (low saturation) = Corante Amarelo Escuro (baixa saturação)
Dark Lime Dye (low saturation) = Corante Lima Escuro (baixa saturação)
Dark Green Dye (low saturation) = Corante Verde Escuro (baixa saturação)
Dark Aqua Dye (low saturation) = Corante Água Escuro (baixa saturação)
Dark Cyan Dye (low saturation) = Corante Ciano Escuro (baixa saturação)
Dark Sky-blue Dye (low saturation) = Corante Azul-Céu Escuro (baixa saturação)
Dark Blue Dye (low saturation) = Corante Azul Escuro (baixa saturação)
Dark Violet Dye (low saturation) = Corante Violeta Escuro (baixa saturação)
Dark Magenta Dye (low saturation) = Corante Magenta Escuro (baixa saturação)
Dark Red-violet Dye (low saturation) = Corante Vermelho-Violeta Escuro (baixa saturação)
Dark Red Dye = Corante Vermelho Escuro
Dark Orange Dye = Corante Laranja Escuro
Dark Yellow Dye = Corante Amarelo Escuro
Dark Lime Dye = Corante Lima Escuro
Dark Green Dye = Corante Verde Escuro
Dark Aqua Dye = Corante Água Escuro
Dark Cyan Dye = Corante Ciano Escuro
Dark Sky-blue Dye = Corante Azul-Céu Escuro
Dark Blue Dye = Corante Azul Escuro
Dark Violet Dye = Corante Violeta Escuro
Dark Magenta Dye = Corante Magenta Escuro
Dark Red-violet Dye = Corante Vermelho-Violeta Escuro
Medium Red Dye (low saturation) = Corante Vermelho Médio (baixa saturação)
Medium Orange Dye (low saturation) = Corante Laranja Médio (baixa saturação)
Medium Yellow Dye (low saturation) = Corante Amarelo Médio (baixa saturação)
Medium Lime Dye (low saturation) = Corante Lima Médio (baixa saturação)
Medium Green Dye (low saturation) = Corante Verde Médio (baixa saturação)
Medium Aqua Dye (low saturation) = Corante Água Médio (baixa saturação)
Medium Cyan Dye (low saturation) = Corante Ciano Médio (baixa saturação)
Medium Sky-blue Dye (low saturation) = Corante Azul-Céu Médio (baixa saturação)
Medium Blue Dye (low saturation) = Corante Azul Médio (baixa saturação)
Medium Violet Dye (low saturation) = Corante Violeta Médio (baixa saturação)
Medium Magenta Dye (low saturation) = Corante Magenta Médio (baixa saturação)
Medium Red-violet Dye (low saturation) = Corante Vermelho-Violeta Médio (baixa saturação)
Medium Red Dye = Corante Vermelho Médio
Medium Orange Dye = Corante Laranja Médio
Medium Yellow Dye = Corante Amarelo Médio
Medium Lime Dye = Corante Lima Médio
Medium Green Dye = Corante Verde Médio
Medium Aqua Dye = Corante Água Médio
Medium Cyan Dye = Corante Ciano Médio
Medium Sky-blue = Corante Azul-Céu Médio
Medium Blue Dye = Corante Azul Médio
Medium Violet Dye = Corante Violeta Médio
Medium Magenta Dye = Corante Magenta Médio
Medium Red-violet Dye = Corante Vermelho-Violeta Médio
Red Dye (low saturation) = Corante Vermelho (baixa saturação)
Orange Dye (low saturation) = Corante Laranja (baixa saturação)
Yellow Dye (low saturation) = Corante Amarelo (baixa saturação)
Lime Dye (low saturation) = Corante Lima (baixa saturação)
Green Dye (low saturation) = Corante Vermelho (baixa saturação)
Aqua Dye (low saturation) = Corante Água (baixa saturação)
Cyan Dye (low saturation) = Corante Ciano (baixa saturação)
Sky-blue Dye (low saturation) = Corante Azul-Céu (baixa saturação)
Blue Dye (low saturation) = Corante Azul (baixa saturação)
Violet Dye (low saturation) = Corante Violeta (baixa saturação)
Magenta Dye (low saturation) = Corante Magenta (baixa saturação)
Red-violet Dye (low saturation) = Corante Vermelho-Violeta (baixa saturação)
Red Dye = Corante Vermelho
Orange Dye = Corante Laranja
Yellow Dye = Corante Amarelo
Lime Dye = Corante Lima
Green Dye = Corante Verde
Aqua Dye = Corante Água
Cyan Dye = Corano Ciano
Sky-blue Dye = Corante Azul-Céu
Blue Dye = Corante Azul
Violet Dye = Corante Violeta
Magenta Dye = Corante Magenta
Red-violet Dye = Corante Vermelho-Violeta
[UnifiedDyes] Loaded! = [UnifiedDyes] Carregado!

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Some files were not shown because too many files have changed in this diff Show More