From 17348122fc110738247bd82e88013fdc47b35d06 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Fri, 13 Jul 2012 17:19:29 -0400 Subject: [PATCH] Created a script to aid in the creation of new textures for whatever mods depend on unifieddyes. Rewrote README and expanded it to document the usage of that script. --- README | 164 +++++++++++++++++++++++++++++++++++++++++++++++-- gentextures.sh | 56 +++++++++++++++++ 2 files changed, 214 insertions(+), 6 deletions(-) create mode 100755 gentextures.sh diff --git a/README b/README index 0e28d3b..07d04c3 100644 --- a/README +++ b/README @@ -1,8 +1,160 @@ -This is a pretty extensive dyes mod, which has the sole purpose of -supplying a complete set of colors and a few greys, all of which are -intended to be used by other mods as needed to make colored objects. It -uses Ironzorg's Flowers mod as the source of the actual pigments. -Flowers can be had from one of the links below, or as part of neko259's -Nature Pack. +VanessaE's Unified Dyes Mod +=========================== + +This is a pretty extensive dyes mod, which has the sole purpose of supplying a +complete set of colors and a few greys, all of which are intended to be used by +other mods as needed to make colored objects. It uses Ironzorg's Flowers mod +as the source of the actual pigments (this same mod is part of neko259's nature +pack, and can be found in a few other mods/mod packs as well). In total, this mod provides [b]77[/b] colors (including greys) at present. + +Usage instructions, technical information +========================================= + +Colors +------ + +Creating a particular color of dye is pretty simple - just harvest coal, +cactus, or the appropriate flowers and start smelting them and crafting the +results together to get the various colors. There are 12 base colors, which +are formed as follows (the degree figure is that color's hue on a standard HSV +color wheel, and is what is used in the textures supplied with this mod): + +Red (0°): smelt one rose (yields 2 portions of red dye) +Orange (30°): smelt one tulip (yields 2) or mix red+yellow (yields 2) +Yellow (60°): smelt one yellow dandelion (yields 2) +Lime (90°): mix yellow + green (yields 2) +Green (120°): smelt one cactus or one waterlily (yields 2), + or mix yellow + blue (yields 2) +Aqua (150°): mix green + cyan (yields 2) +Cyan (180°): green + blue (yields 2) +Sky blue (210°): mix cyan + blue (yields 2) +Blue (240°): Smelt one viola (yields 2) +Violet (270°): mix blue + magenta (yields 2) or mix 2 blues + 1 red (yields 3) +Magenta (300°): Mix blue + red (yields 2) +Red-violet (330°): mix magenta + red (yields 2) + + +Greys +----- + +There are also three shades of grey plus pure black and pure white (figures in +parenthesis indicate the intended brightness of the shade, relative to white): + +Black (0%): smelt one piece of coal (yields 2) +Dark grey (25%): mix one portion of white paint with two portions of black dye + (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 (100%): see below. + +To obtain a medium-brightness (66%) version of a given color, mix the desired +base color from the list above 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 dark (33%) version of a given color, use two portions of black dye +along with the base color, which yields three portions of the final color. + + +White Paint +----------- + +To get the white paint mentioned above, first smelt some cobble into smooth +stone as usual. Then, smelt one smooth stone block to get 10 portions of +Titanium Dioxide. Finally, craft one portion of that with a bucket of water +and one piece of jungle grass. Yields one bucket of white paint. + + +Reduced 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 paint + color (yields 2), or two blacks + 1 +white + color (yields 4). For example, dark, low-saturation red = red + dark +grey paint, or red + two black + one white. + +Medium brightness, low saturation: medium grey paint + color (yields 2), or +black + white + color (yields 3). For example, medium, low-saturation green = +green + medium grey, or green + black + white. + +Bright, low saturation: light grey + 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. + + +RGB values +---------- + +All RGB values and filenames for all colors and shades of grey are represented +in the file "colors.txt" (which is generated with the bash script +"listcolors.sh", which actually reads from the texture files included with this +mod), included in the distribution directory. This script requires +Imagemagick. + + +Misc. Notes +----------- + +If you need to use /give commands, the node names are of the following format: + +unifieddyes:{nothing or "medium_" or "dark_"}{color}{nothing or "_s50"}. + +For example, low saturation dark yellow would be "unifieddyes:dark_yellow_s50", +while bright, full-saturation red would simply be "unifieddyes:red". + +See the texture filenames in the textures/ folder for further hints - all of +the item names follow the same format as the filenames, save for having a colon +(:) instead of the first underscore (_). + + +Semi-automatic generation of new textures +========================================= + +Obviously, in order for this mod to be useful, you'll need textures to use with +your crafting recipes. If you plan to support the entire range of colors +supplied by this mod, there is a BASH script included in the distribution +directory, named gentextures.sh, which will, with an appropriately- colored and +appropriately-named source texture, generate a complete set of colored and +greyscale textures based on that first one. + +This 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. + +To make this script for your mod, open it in your favorite editor and change +the TEXTURE variable near the top of the file to whatever your particular mod +will use as the basis of its texture filenames. For example, the default is +cotton, so the files created by the script will be named cotton_xxxxxx.png for +each of the supported colors. + +Then, using yoiur 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 with a filename of red_base_whatever.png, where +"whatever" is the same name you used in the TEXTURE variable above. The +default cotton setting, thus, would need a filename of red_base_cotton.png. + +Copy the gentextures.sh script to the same directory where you placed the base +texture, chmod 755 gentextures.sh if necessary, and run it using the usual +dot-slash notation: ./gentextures.sh + +The program will exit immediately if it can't find the base texture it needs +(i.e. if you didn't supply it, or if you named it wrong, or if it isn't it in +the same directory as the script). + +Otherwise, the program will create a new folder named generated-textures/ and +then 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). All of the output files will be placed in that folder. + +Use your favorite image browser or file manager to review the results, and if +they're right, copy them over to the textures/ folder in your mod. diff --git a/gentextures.sh b/gentextures.sh new file mode 100755 index 0000000..09d4067 --- /dev/null +++ b/gentextures.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# This line defines the base of the filename, e.g. cotton_xxx_xxx.png +TEXTURE="cotton" + +# This defines the name of the bright red source texture that will +# be used to generate all of the others. +base_texture="red_base_"$TEXTURE".png" + +base_colors="red orange yellow lime green aqua cyan skyblue blue violet magenta redviolet" + +echo -e "\nCurrently configured to generate filenames based on "$TEXTURE"." + +if [ ! -e "$base_texture" ] ; then { + echo -e "\nPlease supply a proper base texture from which to generate all" + echo "of the colors. It must be named "$base_texture" and must" + echo -e "be placed in the directory you ran this script from.\n" + exit 1 +} fi + +pushd . >/dev/null +mkdir generated-textures +cd generated-textures + +hue=0 +for name in $base_colors ; do + hue2=`echo "scale=10; ("$hue"*200/360)+100" |bc` + echo $name "("$hue" degrees)" + echo " dark" + convert ../$base_texture -modulate 33,100,$hue2 $TEXTURE"_dark_"$name".png" + echo " medium" + convert ../$base_texture -modulate 66,100,$hue2 $TEXTURE"_medium_"$name".png" + echo " bright" + convert ../$base_texture -modulate 100,100,$hue2 $TEXTURE"_"$name".png" + echo " dark, 50% saturation" + convert ../$base_texture -modulate 33,50,$hue2 $TEXTURE"_dark_"$name"_s50.png" + echo " medium, 50% saturation" + convert ../$base_texture -modulate 66,50,$hue2 $TEXTURE"_medium_"$name"_s50.png" + echo " bright, 50% saturation" + convert ../$base_texture -modulate 100,50,$hue2 $TEXTURE"_"$name"_s50.png" + hue=$((hue+30)) +done + +echo "greyscales" +echo " black" +convert ../$base_texture -modulate 15,0,0 $TEXTURE"_black.png" +echo " dark grey" +convert ../$base_texture -modulate 50,0,0 $TEXTURE"_darkgrey.png" +echo " medium grey" +convert ../$base_texture -modulate 100,0,0 $TEXTURE"_mediumgrey.png" +echo " light grey" +convert ../$base_texture -modulate 150,0,0 $TEXTURE"_lightgrey.png" +echo " white" +convert ../$base_texture -modulate 190,0,0 $TEXTURE"_white.png" + +popd >/dev/null