summaryrefslogtreecommitdiff
path: root/public/js/mp/dye.js
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2013-06-25 18:53:45 -0600
committerJared Adams <jaxad0127@gmail.com>2013-06-25 18:53:45 -0600
commitd4f71d8ed7a57cddb59dd58ca0b60558a984a2a1 (patch)
tree7556b6ca7240d66e29f434c297bc4c16e6b4e10b /public/js/mp/dye.js
parentda89573679309ad3c8ed11b93a806ea6384ba6fb (diff)
downloadmanaportal-d4f71d8ed7a57cddb59dd58ca0b60558a984a2a1.tar.gz
manaportal-d4f71d8ed7a57cddb59dd58ca0b60558a984a2a1.tar.bz2
manaportal-d4f71d8ed7a57cddb59dd58ca0b60558a984a2a1.tar.xz
manaportal-d4f71d8ed7a57cddb59dd58ca0b60558a984a2a1.zip
Add basic dye tool.
Diffstat (limited to 'public/js/mp/dye.js')
-rw-r--r--public/js/mp/dye.js30
1 files changed, 29 insertions, 1 deletions
diff --git a/public/js/mp/dye.js b/public/js/mp/dye.js
index 7cf8da5..e7af938 100644
--- a/public/js/mp/dye.js
+++ b/public/js/mp/dye.js
@@ -5,7 +5,12 @@ var mp = function(mp) {
parseDyeString: parseDyeString,
dyeImage: dyeImage
};
+
var channel = [null, "R", "G", "Y", "B", "M", "C", "W"];
+
+ /*
+ * Return the channel and intensity for the given RGB(A) array.
+ */
function getChannel(color) {
var r = color[0], g = color[1], b = color[2],
max = Math.max(r, g, b);
@@ -28,12 +33,35 @@ var mp = function(mp) {
return { channel: channel[idx], intensity: max };
}
+
/*
* Return a dye specification from a dye string.
*/
function parseDyeString(dyeString) {
- /* TODO */
+ var channelStrings = dyeString.split("|");
+ var dyeData = {};
+
+ for (var i = 0; i < channelStrings.length; i++) {
+ var channelStr = channelStrings[i];
+ if (channelStr[1] != ":" || channelStr[2] != "#") {
+ // TODO error
+ }
+
+ var channel = channelStr[0];
+ var parts = channelStr.substring(3).split(",");
+
+ var list = [];
+
+ for (var j = 0; j < parts.length; j++) {
+ list.push(mp.resource.parseColor(parts[j]));
+ }
+
+ dyeData[channel] = list;
+ }
+
+ return dyeData;
}
+
/*
* Dye the internal image data based on the specification provided by dyeData.
* The specification can be generated from a dyeString by parseDyeString.