123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- <!DOCTYPE html><!--
- tirnanog/base/index.html
- Copyright (C) 2022 bzt (bzt@codeberg)
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- @brief TirNanoG Base JavaScript character generator
- --><html><head><meta charset="utf-8"><title>TirNanoG Base - Web Character Generator</title>
- <script>
- // ------ configuration -----
- var prefix = "common";
- var files = [
- "1hair_5_beard.png",
- "1hair_5_bigbeard.png",
- "1hair_5_mustache.png",
- "1hair_6_bedhead.png",
- "1hair_6_braid.png",
- "1hair_6_bunches.png",
- "1hair_6_curtains.png",
- "1hair_6_dreadlocks.png",
- "1hair_6_halfmessy.png",
- "1hair_6_jefro.png",
- "1hair_6_knot.png",
- "1hair_6_longknot.png",
- "1hair_6_long.png",
- "1hair_6_loose.png",
- "1hair_6_messy.png",
- "1hair_6_parted.png",
- "1hair_6_pixie.png",
- "1hair_6_princess.png",
- "2clothes_1_plate_shoes.png",
- "2clothes_1_sandals_(male).png",
- "2clothes_1_shoes_(male).png",
- "2clothes_2_pants_(male).png",
- "2clothes_2_plate_pants.png",
- "2clothes_2_robe_skirt.png",
- "2clothes_2_shirt_(male).png",
- "2clothes_2_sleevless.png",
- "2clothes_3_boots_(male).png",
- "2clothes_3_chain.png",
- "2clothes_3_leather.png",
- "2clothes_3_longboots_(female).png",
- "2clothes_3_plate.png",
- "2clothes_4_bride_(female).png",
- "2clothes_4_corset_(female).png",
- "2clothes_4_dress_(female).png",
- "2clothes_4_fancy_(female).png",
- "2clothes_4_jacket.png",
- "2clothes_4_leather_bracers.png",
- "2clothes_4_leather_shoulder.png",
- "2clothes_4_plate_gloves.png",
- "2clothes_4_plate_shoulders.png",
- "2clothes_5_leather_belt.png",
- "2clothes_5_mask.png",
- "2clothes_5_ninja_(female).png",
- "2clothes_5_ninja_(male).png",
- "2clothes_5_rope_belt.png",
- "2clothes_5_scarf.png",
- "2clothes_6_bandage.png",
- "2clothes_6_bandana.png",
- "2clothes_8_chain_hood.png",
- "2clothes_8_earring.png",
- "2clothes_8_robe_hood.png",
- "2clothes_9_chain_hat.png",
- "2clothes_9_leather_hat.png",
- "2clothes_9_plate_helmet.png",
- "body_1_female.png",
- "body_1_male.png",
- "body_1_skeleton.png",
- "body_1_spider.png",
- "body_1_werewolfine.png",
- "body_1_werewolf.png",
- "body_1_zombie.png",
- "head_0_pupil.png",
- "head_1_bleeding_eye_(zombie).png",
- "head_1_bloody_arm.png",
- "head_1_brain_(zombie).png",
- "head_1_eyebrows.png",
- "head_1_eyelashes.png",
- "head_1_mouth.png",
- "head_1_nose_big.png",
- "head_1_nose_button.png",
- "head_1_nose.png",
- "head_1_nose_potato.png",
- "head_1_nose_straight.png",
- "head_1_ribs_(zombie).png",
- "head_1_spider_stripes_(spider).png",
- "head_2_birthmark1.png",
- "head_2_birthmark2.png",
- "head_2_birthmark3.png",
- "head_2_eyebrows_basic.png",
- "head_2_eyebrows_thick.png",
- "head_2_eyelines.png",
- "head_2_mouthlines.png",
- "head_3_lipstick_(female).png",
- "head_7_ear_big.png",
- "head_7_ear_elven.png",
- "head_7_horn1.png",
- "head_7_horn2.png",
- "toolf_1_quiver.png",
- "toolf_2_axe.png",
- "toolf_2_bow.png",
- "toolf_2_knife.png",
- "toolf_2_pickaxe.png",
- "toolf_2_staff.png",
- "toolf_3_shield.png",
- "toolb_1_quiver.png",
- "toolb_3_shield.png"
- ];
- // --------------------------
- </script>
- <style>
- BODY{margin:0;padding:0;background:#444644;color:#bebebe;overflow:hidden;}
- INPUT{background:#313331;border:1px solid #111;border-radius:3px;color:#bebebe;padding:2px 8px 2px 8px;}
- A{color:#7D7D7A;text-decoration:none;float:right;margin:8px 40px;}
- #title {position:absolute;width:100%;text-align:center;font-family:helvetica;font-size:24px;line-height:30px;padding:5px;}
- #title IMG{vertical-align:middle;}
- #components IMG{width:16px;height:16px;padding:2px;margin:2px;border:1px #5D5D5A outset;}
- #components .current{padding:3px 2px 1px 2px;border-style:inset;}
- #components{position:absolute;padding:0;margin:36px 0 0 320px;width:calc(100% - 322px - 194px);height:26px;}
- #options{position:absolute;padding:0;margin:36px 0 0 10px;width:300px;height:calc(100% - 92px);overflow-x:hidden;overflow-y:scroll;background:#313331;border:1px #5D5D5A inset;}
- #options DIV {margin:0;padding:5px;display:none;white-space:nowrap;text-overflow:ellipsis;}
- #options .current{display:block!important;}
- #variants {height:20px;display:inline-block;float:left;}
- #variants SPAN {display:inline-block;width:7px;height:8px;padding:2px;margin:2px;border:2px #5D5D5A outset;}
- #variants .current{border-style:inset;}
- #preview{position:absolute;padding:0;margin:62px 0 0 320px;}
- #content{position:absolute;padding:0;margin:194px 0 0 320px;width:calc(100% - 322px);height:calc(100% - 250px);overflow:auto;}
- #variants{display:inline-block;width:300px;margin:5px 10px 20px 10px;}
- #toolbar{position:absolute;bottom:6px;height:48px;width:100%;padding:0;margin:0;white-space:nowrap;text-overflow:ellipsis;}
- #toolbar INPUT[type=button]{margin:8px 20px 0px 20px;text-shadow:-1px -1px #111;background-image:linear-gradient(#686868 0%,#686868 1%,#515151 1%,#515151 60%,#484848 60%,#484848 99%,#444 99%,#444 100%);font-weight:bold;height:24px;}
- #toolbar INPUT[type=button]:active{background-image:linear-gradient(#444 0%,#444 1%,#484848 1%,#484848 60%,#515151 60%,#515151 99%,#686868 99%,#686868 100%);}
- INPUT[type=text]{width:168px;margin:36px 10px 18px 0px!important;float:right;}
- #save {margin:8px 20px 18px 0px!important;min-width:200px!important;text-align:center;float:right;}
- input:disabled + LABEL {color:#5D5D5A;}
- </style>
- <body onkeyup="sprgen_ctrl(event)">
- <div id="title"><img src="data:image/png;base64,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" alt="TirNanoG"> Base<span style="color:#7D7D7A"> - Web Character Generator</span></div>
- <div id="components"><img onclick="sprgen_sel('body', event);" class="current" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAS1BMVEVRAACfYVymYFOLaWWqZFbGgF7HiGnJimvJi3HNj3XepIHgpYPlqofnrInirojtybD0zq/zz7b10Lf20bn41Lv51bz61r332r/459zQ/KixAAAAAXRSTlMAQObYZgAAAGVJREFUGNN1j0kOgDAMAwuUxS4kbKX8/6VwgkSC3GxNEk0I30OBy3LmzTVacp5MHkRXlc400F3dCimkBZZ5mheD9ChHQf8CqLRohQeRFEcdY5IHaYgabMzVFgGte3sXdC689X68Lyb4A8u1HGqWAAAAAElFTkSuQmCC"><img onclick="sprgen_sel('head', event);" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABBVBMVEUAAAAAAAIAAAUuHyIxIiRsMS5tMy+FMixuPjJvQTUtUnWYUEGZVEaLYEqBZlyVZEyNZlOWZUy4blWUeGi6cFeTfW+UfXCXgHK/f17Bf2DAgWHPiGfBjHvBjXzCjXzQj3DWjmfPkG6vmIq4l4rPknG4l4vYk27UlnPUmHbXnH3kn3ncoYPioHzfoYDho4Lmo3zop4Pfqo7prInUsqDtuJjuuZruu5zuu57vu5zxwKPmxK3yzLTyzbP0zbX0zrX2z7T30Lf40rj40rn41Lr51Lv51bv51bz51b351r351r761r361r7518DY4eX52sb528j64NH049n64tXh6ev85tv76OD77eiK/qXOAAAAAXRSTlMAQObYZgAAAKJJREFUGNNjYMAKOATEhXk54VxWTWsHN2d7HUk2CJ9F2z0owM3NzdtSmhkswOPlExbqChRxMuAGC6h4ePj7uYGAhSJYQMPDDQrM1MECUi4wAVMJEJ9P3sg9xNPNzTPEXF+eDyggZqilym7s6GjMrqxmIgpSYqXgyxXs6BjM5atgBTaDUdBGKdDVNVDJhp8J6lQ9O5CRtroIvwjJycrKiDAQBwBSgBycrqDtZAAAAABJRU5ErkJggg=="><img onclick="sprgen_sel('toolf',event);" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAqFBMVEUAAAARAA8cEx4hFB0iFB0jFRwlFRwmFRsnFhspFhkpFhojHCQkIChFJRpFJR1GJh1IJx1JKB1LKR1MKR1NKh1RKhVTKxVULBVVLRZTLR5WLRZXLhdZLxc3OD88PUM8PUVFRUpJVllkUFZdWVxPX2JXX2FjXV9hX2FkY2dcb3Fqa29vbXBybm9tcnNkeHludnhyent3eoN/eXt1gIKDjY6Dnp+IoaKGoqMeZBM/AAAAAXRSTlMAQObYZgAAAGNJREFUGNNjYMAOGNH4csY6miqoQspGZqqSvMgishoGutzIAjz6huaKyAIiSvJapkh8YVFmBjUTBF9IjAVIauvB+ILirCBKQR3KF5BgQ3EDvxQ7Cp9PmgPVkTJcqHwmTga8AADQ6AYFPD6YtwAAAABJRU5ErkJggg=="></div>
- <input type="text" id="filename" value="noname" title="Name of the sprite sheet">
- <div id="options"><div id="body" class="current"></div><div id="head"></div><div id="toolf"></div></div>
- <canvas id="preview"></canvas>
- <div id="content"><span> Please enable JavaScript.</span><canvas id="output" width="1152" height="1024"></canvas></div>
- <div id="toolbar">
- <span id="variants"></span>
- <input type="button" value="Reset" onclick="sprgen_new()" style="margin-right:80px;" title="Reset sheet">
- <input type="button" value="⤾" onclick="sprgen_rotcw()" title="Rotate preview clock-wise">
- <input type="button" value="⤿" onclick="sprgen_rotccw()" title="Rotate preview counter clock-wise" style="margin-right:0px">
- <input type="button" id="save" value="Save PNG" onclick="sprgen_savepng()">
- <a href='CREDITS.txt' target='new'>CREDITS.txt</a></div>
- <a id="download" href="" style="display:none;" download></a><img id="grid" style="display:none;" src="data:image/png;base64,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gAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgFIAJNIMkEgzQCLNAAkASitAAoDSCpBIM0AizQCJNAMkACitAAkASitAIs0AiTQDJNIMkACgtAIkACitAAldefsA6c//9gFK5+eP+pNQAOhtA6T//gEIgAAIgACILhhdMLpgdMEAiCQ0SWgAIgnNMDzD8AzDMwwPQExEZCIiADEREYAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAASAfQWhvQWhvwWgFZK2Dp/vwAkt7zA0h6zw9AAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAALThABJicwOUjs8PQH8dgIQAoHQCJMQqWuAGAigtnx+A/jIAKX/+AJQ+gIRYTQvcOACl5/MD0F8FIO3PH4DSBZAQq2qB6wiQEOkEKE2fP6EtCQFA6QMo9ucPQJs1B6T86W/mHJDy+QGIHBAApQcg7b8/mxcg7fMDEAABUDoAikXAmxWg2OcHIAACoM2YA0r/MDw5IAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIG7HsZEASvPtOACI23EAEAABEAABEAABEAABEABxR0RuxwFAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAPTuAbTWBrTWBrxWQNYKWLo/P4Ck9/wAkt7zAxAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAAdA7AZBIM0AizQCJNAMkACitAAkASjNAIs0AiTQDJNIMkACgtAIkACjNAIk0AyTSDJBIM0ACgNIKkACgtw+Q0JW3D5D+/G8foPR9/jg7CQWA3jZA+u8fgAAIgAAIgOiC0QWjC0YXDIBIQpOEBiCS0AzDMwzPMDzD8ADEREQmIgIQExEBCIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACID+CgCttQGnG5B3/fxfrLH0rrFs9vPfWWP5dY1ls58fgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgDYsQI3i4soaYNee4u0tV5ZsFtsBCIAACIBeD6C4OysE6Eqh9juHXUnbbyZuASAAepcA2iH2v34DPNq+ozInp/LDFLsyi1IAsE00AdC6AXRT0iN337l4MTkuEjcBCIDeKYAqYzSsCKDYTw3nHE3e0y4+XAQg/uarAmiHaN8sAK2sARaLi8vsKCQHtEqAGsQp5aFWnAegdwCgyk8VedqLRGbyng/jagDQGwLootizTJMXLQAEQO8oQKtpgEczxadJ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gAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgABoXQESAoAACIAAKD0ACbEKgQAIgAAIgNYBICFWIxAAAdBGAUgIAEofQEKsSiAAWjeAhACgdAKk/O0HIHJAmxUg5e8/AKUPIO2/vwAEQJsTIO3vPwClC6BYDwCAAGgzAhT7+w9A5IAACIDIAQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQt+MAIAACIAACIAACIAACIAACIG7HAUAAxO04AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiANh1AAJLe8wNIes8PIOk9PwABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAC9EwAJAEorQAKA0gqQAKA0AyQAKK0ACQBKK0ACgNIMkACgtAIkACitAAkAevsACV0BoLcNkP77B6C3DZD++wcgAAIgAAIgumAARBeMLhgAkYQmCQ1AJKEZhgcghuEZhgcgJiIyERGAmIgIQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAD0VwDo+BrL+TWWzX7+79dY/rHGstnPf3GN5f/W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">
- <script>
- var compdiv = document.getElementById("components");
- var optsdiv = document.getElementById("options");
- var varsdiv = document.getElementById("variants");
- var tooldiv = document.getElementById("toolf");
- var dispdiv = document.getElementById("output");
- var gridimg = document.getElementById("grid");
- var preview = document.getElementById("preview");
- var output = document.createElement("CANVAS");
- var dnllnk = document.getElementById('download');
- var filnme = document.getElementById('filename');
- var components = [ "body", "head", "toolf" ];
- var cnt = 0, rot = 0, varid = "", images = new Object();
- function sprgen_new()
- {
- var i, imgs = compdiv.getElementsByTagName("IMG"), divs = optsdiv.getElementsByTagName("DIV"), inps = document.querySelectorAll("INPUT[type=checkbox]");
- for(i = 0; i < imgs.length; i++) imgs[i].className = !i ? "current" : "";
- for(i = 0; i < divs.length; i++) divs[i].className = !i ? "current" : "";
- for(i = 0; i < inps.length; i++) inps[i].checked = 0;
- rot = 0; sprgen_cellclk();
- }
- function sprgen_rotcw()
- {
- if(rot < 3) rot++; else rot = 0;
- }
- function sprgen_rotccw()
- {
- if(rot > 0) rot--; else rot = 3;
- }
- function sprgen_copy(can, idx)
- {
- var i, j, x, y, w, h, dst = output.getContext("2d"), src = can.getContext("2d"), buf, img;
- var pal = src.getImageData(can.width-8,can.height-16+parseInt(idx),8,1).data, b, c = [ 0, 0, 0 ];
- if(can.height == 1024) { x = 0; y = 0; w = can.width; h = can.height; } else { x = 768; y = 704; w = 256; h = 320; }
- buf = dst.getImageData(x,y,w,h); a = buf.data; img = src.getImageData(0,0,w,h); b = img.data;
- for(i = 0; i < w * h * 4; i += 4) {
- if(b[i+0] == b[i+1] && b[i+0] == b[i+2] && !(b[i+0] & 0x0F) && (b[i+0] & 0x10) && pal[3] == 0xff && (pal[0] || pal[1] || pal[2])) {
- j = (7 - (b[i+0] >> 5)) * 4; c[0] = pal[j+0]; c[1] = pal[j+1]; c[2] = pal[j+2]; } else { c[0] = b[i+0]; c[1] = b[i+1]; c[2] = b[i+2]; }
- if(!a[i+3]) { a[i+3] = b[i+3]; a[i+2] = c[2]; a[i+1] = c[1]; a[i+0] = c[0]; } else if(b[i+3]) {
- a[i+3] = (b[i+3]*b[i+3] + (256 - b[i+3])*a[i+3]) / 256; a[i+2] = (c[2]*b[i+3] + (256 - b[i+3])*a[i+2]) / 256;
- a[i+1] = (c[1]*b[i+3] + (256 - b[i+3])*a[i+1]) / 256; a[i+0] = (c[0]*b[i+3] + (256 - b[i+3])*a[i+0]) / 256;
- }
- }
- dst.putImageData(buf,x,y);
- }
- function sprgen_preview()
- {
- var c2d = output.getContext("2d"), dst = preview.getContext("2d"), anim = cnt % 6;
- preview.width=640;preview.height=128;
- dst.clearRect(0,0,preview.width,preview.height);
- /* first row: in every sheet in original LPC, all these anims should work for all assets */
- /* die */ dst.putImageData(c2d.getImageData((12+(cnt % 12 > 5 ? 5 : anim))*64,10*64,64,64),0,0);
- /* walk */ dst.putImageData(c2d.getImageData(anim*64,(rot+4)*64,64,64),64,0);
- /* slash */ dst.putImageData(c2d.getImageData((anim+6)*64,rot*64,64,64),128,0);
- /* thrust */ dst.putImageData(c2d.getImageData((anim+6)*64,(rot+4)*64,64,64),192,0);
- /* bowing */ dst.putImageData(c2d.getImageData((anim+6)*64,(rot+8)*64,64,64),256,0);
- /* cast */ dst.putImageData(c2d.getImageData((anim+6)*64,(rot+12)*64,64,64),320,0);
- /* second row: not in every original LPC, probably most assets broken and need manual fixing */
- /* spawn */ dst.putImageData(c2d.getImageData((12+(cnt % 12 > 5 ? 5 : anim))*64,9*64,64,64),0,64);
- /* climb */ dst.putImageData(c2d.getImageData((12+anim)*64,8*64,64,64),64,64);
- /* push */ dst.putImageData(c2d.getImageData((12+anim)*64,rot*64,64,64),128,64);
- /* carry */ dst.putImageData(c2d.getImageData((12+anim)*64,(rot+4)*64,64,64),192,64);
- /* run */ dst.putImageData(c2d.getImageData((anim)*64,(rot+8)*64,64,64),256,64);
- /* jump */ dst.putImageData(c2d.getImageData((anim)*64,(rot+12)*64,64,64),320,64);
- /* portrait */ dst.putImageData(c2d.getImageData(768,896,256,128),384,0);
- }
- function sprgen_regen()
- {
- var c2d = output.getContext("2d"), dst = dispdiv.getContext("2d");
- var i, j, k, divs = optsdiv.getElementsByTagName("DIV"), inps;
- output.width=dispdiv.width;output.height=dispdiv.height;
- c2d.clearRect(0,0,output.width,output.height); dst.clearRect(0,0,output.width,output.height);
- inps = tooldiv.getElementsByTagName("INPUT");
- for(k = 0; k < 10; k++) { for(i = 0; i < inps.length; i++) if(inps[i].checked && inps[i].getAttribute("data-order") == k && images[inps[i].id + "_back"] != undefined) sprgen_copy(images[inps[i].id + "_back"], inps[i].value); }
- for(k = 0; k < 10; k++) { for(j = 0; j < divs.length; j++) { if(divs[j] == tooldiv) continue; inps = divs[j].getElementsByTagName("INPUT");
- for(i = 0; i < inps.length; i++) if(inps[i].checked && inps[i].getAttribute("data-order") == k && images[inps[i].id + "_fore"] != undefined) sprgen_copy(images[inps[i].id + "_fore"], inps[i].value); }}
- inps = tooldiv.getElementsByTagName("INPUT");
- for(k = 0; k < 10; k++) { for(i = 0; i < inps.length; i++) if(inps[i].checked && inps[i].getAttribute("data-order") == k && images[inps[i].id + "_fore"] != undefined) sprgen_copy(images[inps[i].id + "_fore"], inps[i].value); }
- dst.drawImage(gridimg,0,0); c2d.putImageData(dst.getImageData(1024,704,128,320),1024,704); dst.drawImage(output,0,0); sprgen_preview();
- }
- function sprgen_selvar(idx)
- {
- var i, spns = varsdiv.getElementsByTagName("SPAN");
- if(!varid) return;
- document.getElementById(varid).value = idx;
- for(i = 0; i < spns.length; i++) spns[i].className = i == idx ? "current" : "";
- sprgen_regen();
- }
- function sprgen_cellclk()
- {
- var i, j, k, l, inps, pals, span;
- do {k = 0; inps = document.querySelectorAll("INPUT[type=checkbox]");for(i = 0; i < inps.length; i++) {if(inps[i].disabled) inps[i].checked = 0;rel = inps[i].getAttribute("rel");if(rel != undefined && rel != "") {l = document.getElementById(rel).disabled || !document.getElementById(rel).checked;if(inps[i].disabled != l) { k = 1; inps[i].disabled = l; break; }}}} while(k);
- varsdiv.innerHTML = ""; varid = "";
- if(event && event.target && event.target.type == "checkbox" && event.target.checked && event.target.getAttribute("data-pals")) {
- varid = event.target.id;pals = event.target.getAttribute("data-pals").split(";");
- for(i = 0; i < pals.length; i++) {span = document.createElement("SPAN");span.setAttribute("onclick", "sprgen_selvar("+i+")");span.className = i ? "" : "current";span.style.background = pals[i];varsdiv.appendChild(span);}
- }
- sprgen_regen();
- }
- function sprgen_sel(id, e)
- {
- var i, imgs = compdiv.getElementsByTagName("IMG"), divs = optsdiv.getElementsByTagName("DIV");
- for(i = 0; i < imgs.length; i++) imgs[i].className = e.target == imgs[i] ? "current" : "";
- for(i = 0; i < divs.length; i++) divs[i].className = divs[i].id == id ? "current" : "";
- }
- function sprgen_ctrl(e)
- {
- e.stopPropagation();e.preventDefault();
- if(e.keyCode==37 || e.key=="ArrowLeft") sprgen_rotcw(); else
- if(e.keyCode==39 || e.key=="ArrowRight") sprgen_rotccw();
- }
- function sprgen_loadimg(name, lyr, fn)
- {
- var img = new Image();
- images[name+"_"+lyr] = document.createElement("canvas");
- img.onload = function() {
- var c2d = images[name+"_"+lyr].getContext("2d"), pix;
- images[name+"_"+lyr].width=this.width;images[name+"_"+lyr].height=this.height;c2d.clearRect(0,0,this.width,this.height);c2d.drawImage(this,0,0);
- pix = c2d.getImageData(this.width-8, this.height-16, 8, 16).data;
- if(pix && pix[3] == 0xff && (pix[0] || pix[1] || pix[2])) {
- var i,x,y,r,g,b,n,txt = "";
- for(y = i = 0; y < 16; y++) {r=0;g=0;b=0;n=0;for(x = 0; x < 8; x++, i += 4) {if(pix[i+3] && (pix[i+0] || pix[i+1] || pix[i+2])){r+=pix[i+0];g+=pix[i+1];b+=pix[i+2];n++;}}
- if(n > 0)txt+=(txt!=""?";":"")+"rgb(" + parseInt(r / n) + "," + parseInt(g / n) + "," + parseInt(b / n) + ")";}
- if(txt!="")document.getElementById(name).setAttribute("data-pals", txt);
- }
- };
- img.src=(prefix?prefix+"/":"")+fn;
- }
- function sprgen_savepng()
- {
- if(filnme.value == undefined || filnme.value == null || filnme.value == "") filnme.value = "noname";
- dnllnk.setAttribute('href',output.toDataURL("image/png")); dnllnk.setAttribute('download',filnme.value+".png"); dnllnk.click();
- }
- function sprgen_init()
- {
- var i, j, tag, div, comp, name, deps, order;
- tag=document.getElementById("content");tag.removeChild(tag.firstChild);
- sprgen_regen();
- for(i = 0; i < files.length; i++) {
- j = files[i].indexOf('_'); comp = files[i].substr(0, j); name = files[i].substr(0, files[i].length - 4).substr(j + 1).replace(/^[0-9][_]?/,"");order=files[i].substr(j + 1, 1);
- if(name.indexOf('(') != -1) { deps = name.replace(/^[^\(]*\(/,"").replace(/\)[^\)]*$/,""); name = name.replace(/[_]?\(.*$/,""); } else deps = "";
- if(comp == "toolb") { tag = document.getElementById(name); if(tag) { sprgen_loadimg(name, "back", files[i]); continue; } }
- if(comp != "toolb" && components.indexOf(comp) == -1) {
- components.push(comp);
- tag = document.createElement("IMG");div = document.createElement("DIV");
- tag.setAttribute("onclick", "sprgen_sel('"+comp+"',event)");tag.src=(prefix?prefix+"/":"")+comp+".png";
- div.setAttribute("id", comp);compdiv.appendChild(tag);optsdiv.appendChild(div);
- }
- div = document.getElementById(comp == "toolb" ? "toolf" : comp);
- tag = document.createElement("INPUT");tag.setAttribute("type", "checkbox");tag.setAttribute("id", name);tag.setAttribute("value", 0);tag.setAttribute("data-order", order);tag.addEventListener("change", sprgen_cellclk);
- if(deps != "") {tag.setAttribute("rel", deps);tag.setAttribute("disabled", 1);}
- div.appendChild(tag);tag = document.createElement("LABEL");
- tag.setAttribute("for", name);if(deps!=""){tag.setAttribute("title", "Depends on: "+deps);}tag.innerText=name;div.appendChild(tag);
- tag = document.createElement("BR");div.appendChild(tag);sprgen_loadimg(name, (comp == "toolb" ? "back" : "fore"), files[i]);
- }
- sprgen_cellclk(); setInterval(function(){sprgen_preview();cnt++;}, 100);
- }
- sprgen_init();
- </script>
- </body></html>
|