Compare commits

...

88 Commits

Author SHA1 Message Date
a55f6faa14 further refine how colored itemstacks work 2018-08-21 23:28:17 -04: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
d21cbc129d Adding standard mod files 2016-03-27 21:36:36 -07:00
8d49d58331 Update and rename locale to locale/tr.txt 2015-03-02 19:36:15 +02:00
4d58fda283 OPTIMIZE _ALL_ THE TEXTURES! \:D/ 2015-01-23 14:10:13 -05:00
127caef5b3 use current intllib API 2014-12-27 01:02:35 -05:00
108 changed files with 1217 additions and 992 deletions

108
API.md Normal file
View File

@ -0,0 +1,108 @@
### 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",
place_param2 = 240,
groups = {snappy = 1, cracky = 2, ud_param2_colorable = 1}
on_construct = unifieddyes.on_construct,
after_place_node = unifieddyes.recolor_on_place,
after_dig_node = unifieddyes.after_dig_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).
`place_param2` generally is only needed for the 256-color palette, and should usually be set to 240 (which corresponds to white).
`groups` If your node can be colored by punching it with dye, 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.
`on_construct` see below.
`after_place_node` see below.
`after_dig_node` see below.
#### Function calls
**`unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)`**
Call this within your node's `after_place_node` callback to allow Unified Dyes to automatically color the node using the dye you last used on that kind of node The feature will remain active until the dye runs out, or the user places a different kind of colorable node, or the user cancels the feature.
**`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.select_node(pointed_thing)`**
Just what it says on the tin. :-) This function returns a position and node definition of whatever is being pointed at.
**`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 if it's medium grey.
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 hue field would match 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.
`wallmounted`: the 32-color palette, for nodes using `colorwallmounted` mode.
`extended`: the 256-color "extended" palette
**`unifieddyes.on_construct(pos)`**
This function, called in 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 strictly 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.after_dig_node(pos, oldnode, oldmetadata, digger)`**
This function handles returning dyes to the user when a node is dug. All colorized nodes need to call this in `after_dig_node`.
**`unifieddyes.on_use(itemstack, player, pointed_thing)`**
This function is used internally by Unfiied Dyes to actually make a dye able to colorize a node when you wield and punch with it. Unified Dyes redefines the minetest_game default dye items to call this function.
#### 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 itemstrings, 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.

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 292 B

View File

@ -1,2 +1,4 @@
default
dye
intllib?

1
description.txt Normal file
View File

@ -0,0 +1 @@
Unified Dyes expands the standard dye set from 15 to 90 colors.

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

1306
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

88
locale/tr.txt Normal file
View File

@ -0,0 +1,88 @@
# TUrkish translation
# Mahmutelmas06@hotmail.com
Lime Dye = Limon Yeşili Boya
Aqua Dye = Deniz mavisi Boya
Sky-blue Dye = Gök-Mavi Boya
Red-violet Dye = Kırmızılı Boya
Light Grey Dye = Açık Grey Boya
Dark Red Dye (low saturation) = Koyu Kırmızı Boya (düşük doygunluk)
Dark Orange Dye (low saturation) = Koyu Turuncu Boya (düşük doygunluk)
Dark Yellow Dye (low saturation) = Koyu Sarı Boya (düşük doygunluk)
Dark Lime Dye (low saturation) = Koyu Limon Yeşili Boya (düşük doygunluk)
Dark Green Dye (low saturation) = Koyu Yeşil Boya (düşük doygunluk)
Dark Aqua Dye (low saturation) = Koyu Deniz mavisi boya (düşük doygunluk)
Dark Cyan Dye (low saturation) = Koyu Cam göbeği Boya (düşük doygunluk)
Dark Sky-blue Dye (low saturation) = Koyu Gök-Mavi Boya (düşük doygunluk)
Dark Blue Dye (low saturation) = Koyu Mavi Boya (düşük doygunluk)
Dark Violet Dye (low saturation) = Koyu mor Boya (düşük doygunluk)
Dark Magenta Dye (low saturation) = Koyu Kızılımsı Mor Boya (düşük doygunluk)
Dark Red-violet Dye (low saturation) = Koyu Kırmızılı Boya (düşük doygunluk)
Dark Red Dye = Koyu Kırmızı Boya
Dark Orange Dye = Koyu Turuncu Boya
Dark Yellow Dye = Koyu Sarı Boya
Dark Lime Dye = Koyu Limon Yeşili Boya
Dark Green Dye = Koyu Yeşil Boya
Dark Aqua Dye = Koyu Deniz mavisi Boya
Dark Cyan Dye = Koyu Cam göbeği Boya
Dark Sky-blue Dye = Koyu Gök-Mavi Boya
Dark Blue Dye = Koyu Mavi Boya
Dark Violet Dye = Koyu mor Boya
Dark Magenta Dye = Koyu Kızılımsı Mor Boya
Dark Red-violet Dye = Koyu Kırmızılı Boya
Medium Red Dye (low saturation) = Kırmızı Boya (düşük doygunluk)
Medium Orange Dye (low saturation) = Turuncu Boya (düşük doygunluk)
Medium Yellow Dye (low saturation) = Sarı Boya (düşük doygunluk)
Medium Lime Dye (low saturation) = Limon Yeşili Boya (düşük doygunluk)
Medium Green Dye (low saturation) = Yeşil Boya (düşük doygunluk)
Medium Aqua Dye (low saturation) = Deniz mavisi Boya (düşük doygunluk)
Medium Cyan Dye (low saturation) = Cam göbeği Boya (düşük doygunluk)
Medium Sky-blue Dye (low saturation) = Gök-Mavi Boya (düşük doygunluk)
Medium Blue Dye (low saturation) = Mavi Boya (düşük doygunluk)
Medium Violet Dye (low saturation) = Koyu mor Boya (düşük doygunluk)
Medium Magenta Dye (low saturation) = Kızılımsı Mor Boya (düşük doygunluk)
Medium Red-violet Dye (low saturation) = Kırmızılı Boya (düşük doygunluk)
Medium Red Dye = Kırmızı Boya
Medium Orange Dye = Turuncu Boya
Medium Yellow Dye = Sarı Boya
Medium Lime Dye = Limon Yeşili Boya
Medium Green Dye = Yeşil Boya
Medium Aqua Dye = Deniz mavisi Boya
Medium Cyan Dye = Cam göbeği Boya
Medium Sky-blue = Gök-Mavi
Medium Blue Dye = Mavi Boya
Medium Violet Dye = Koyu mor Boya
Medium Magenta Dye = Kızılımsı Mor Boya
Medium Red-violet Dye = Kırmızılı Boya
Red Dye (low saturation) = Kırmızı Boya (düşük doygunluk)
Orange Dye (low saturation) = Turuncu Boya (düşük doygunluk)
Yellow Dye (low saturation) = Sarı Boya (düşük doygunluk)
Lime Dye (low saturation) = Limon Yeşili Boya (düşük doygunluk)
Green Dye (low saturation) = Yeşil Boya (düşük doygunluk)
Aqua Dye (low saturation) = Deniz mavisi Boya (düşük doygunluk)
Cyan Dye (low saturation) = Cam göbeği Boya (düşük doygunluk)
Sky-blue Dye (low saturation) = Gök-Mavi Boya (düşük doygunluk)
Blue Dye (low saturation) = Mavi Boya (düşük doygunluk)
Violet Dye (low saturation) = Koyu mor Boya (düşük doygunluk)
Magenta Dye (low saturation) = Kızılımsı Mor Boya (düşük doygunluk)
Red-violet Dye (low saturation) = Kırmızılı Boya (düşük doygunluk)
Red Dye = Kırmızı Boya
Orange Dye = Turuncu Boya
Yellow Dye = Sarı Boya
Lime Dye = Limon Yeşili Boya
Green Dye = Yeşil Boya
Aqua Dye = Deniz mavisi Boya
Cyan Dye = Cam göbeği Boya
Sky-blue Dye = Gök-Mavi Boya
Blue Dye = Mavi Boya
Violet Dye = Koyu mor Boya
Magenta Dye = Kızılımsı Mor Boya
Red-violet Dye = Kırmızılı Boya
[UnifiedDyes] Loaded! = [UnifiedBoyas] yüklendi!

1
mod.conf Normal file
View File

@ -0,0 +1 @@
name = unifieddyes

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.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 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: 136 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

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