summaryrefslogtreecommitdiff
path: root/public/js/mp/dye.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/js/mp/dye.js')
-rw-r--r--public/js/mp/dye.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/public/js/mp/dye.js b/public/js/mp/dye.js
index e7af938..c8c5fd5 100644
--- a/public/js/mp/dye.js
+++ b/public/js/mp/dye.js
@@ -3,6 +3,7 @@ var mp = function(mp) {
mp.dye = {
getChannel: getChannel,
parseDyeString: parseDyeString,
+ asDyeString: asDyeString,
dyeImage: dyeImage
};
@@ -63,6 +64,39 @@ var mp = function(mp) {
}
/*
+ * Return a dye string matching the given dye specification.
+ */
+ function asDyeString(dye) {
+ var dyeString = "";
+
+ // skip null channel
+ for (var i = 1; i < channel.length; i++) {
+ var dyeChannel = channel[i];
+ var dyeParts = dye[dyeChannel];
+ if (!dyeParts || dyeParts.length == 0) {
+ continue;
+ }
+
+ dyeString += dyeChannel + ":#";
+
+ for (var j = 0; j < dyeParts.length; j++) {
+ var color = dyeParts[j];
+ dyeString += color[0].toString(16) + color[1].toString(16) + color[2].toString(16) + ",";
+ }
+
+ dyeString = dyeString.slice(0, -1);
+
+ dyeString += "|";
+ }
+
+ if (dyeString.length > 0) {
+ dyeString = dyeString.slice(0, -1);
+ }
+
+ return dyeString;
+ }
+
+ /*
* Dye the internal image data based on the specification provided by dyeData.
* The specification can be generated from a dyeString by parseDyeString.
* The array passed in will be modified.