diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..00f4fd8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+
+.vs/slnx.sqlite
diff --git a/herosaver.js b/herosaver.js
index 61314c1..f6fd864 100644
--- a/herosaver.js
+++ b/herosaver.js
@@ -184,12 +184,19 @@ function init() {
}
- var character_area = jQuery(".characterArea");
- //var stl = jQuery("").css({"margin-left": "20px", "font-size": "1.4em", "color" : "rgba(255, 255, 255, 0.8)", "cursor" : "pointer"}).text("Export Figure");
- var stl_base = jQuery("").css({"margin-left": "20px", "font-size": "1.4em", "color" : "rgba(255, 255, 255, 0.8)", "cursor" : "pointer" }).text("Export Figure");
- var sjson = jQuery("").css({"margin-left": "20px", "font-size": "1.4em", "color" : "rgba(255, 255, 255, 0.8)", "cursor" : "pointer" }).text("Save JSON");
- var ljson = jQuery("").attr({"type": "file", "id": "ljson"}).css({"display":"none"}).text("Load JSON");
- var labeljson = jQuery("").attr({"for": "ljson"}).css({"margin-left": "20px", "font-size": "1.4em", "color" : "rgba(255, 255, 255, 0.8)", "cursor" : "pointer"}).text("Load JSON");
+ var characterArea_hook = ".characterArea";
+ var menu_style = {"margin-left": "20px", "font-size": "1.4em", "color" : "rgba(255, 255, 255, 0.8)", "cursor" : "pointer" };
+
+ var character_area, stl, stl_base, sjson, ljson, labeljson;
+
+ stl = jQuery("").css(menu_style).text("Export Figure");
+ stl_base = jQuery("").css(menu_style).text("Export Model (STL)");
+ sjson = jQuery("").css(menu_style).text("Export (JSON)");
+ ljson = jQuery("").attr({"type": "file", "id": "ljson"}).css({"display":"none"}).text("Import (JSON)");
+ labeljson = jQuery("").attr({"for": "ljson"}).css(menu_style).text("Import (JSON)");
+
+ character_area = jQuery(characterArea_hook);
+
//character_area.append(stl);
character_area.append(stl_base);
character_area.append(sjson);
@@ -237,25 +244,22 @@ function init() {
}
console.log(figure);
var stlString = exporter.parse(figure)
- var name = CK.data.meta.character_name
- name = name === "" ? "unnamed" : name
+ var name = get_name();
download(stlString, name + '.stl', 'application/sla');
});*/
stl_base.click(function(e) {
e.preventDefault();
var exporter = new RK.STLExporter();
var stlString = exporter.parse([CK.character])
- var name = CK.data.meta.character_name
- name = name === "" ? "unnamed" : name
- download(stlString, name + '_base.stl', 'application/sla');
+ var name = get_name();
+ download(stlString, name + '.stl', 'application/sla');
});
sjson.click(function(e) {
e.preventDefault();
var char_json = JSON.stringify(CK.data);
- var name = CK.data.meta.character_name
- name = name === "" ? "unnamed" : name
+ var name = get_name();
download(char_json, name + ".json", "text/plain");
});
@@ -285,3 +289,22 @@ function inject_script(url, callback) {
inject_script("//code.jquery.com/jquery-3.3.1.min.js", function () {
inject_script("//cdnjs.cloudflare.com/ajax/libs/three.js/100/three.js", function () { init() })
});
+
+function get_name() {
+ var timestamp = new Date().getUTCMilliseconds();
+ var uqID = timestamp.toString(36);
+ var name = "Character " + uqID;
+ try {
+ var getName = CK.character.data.meta.character_name
+ name = getName === "" ? name : getName;
+ } catch (e) {
+ if (e instanceof ReferenceError) {
+ console.log("Name of character data location has changed");
+ console.log(e);
+ } else {
+ console.log("Other Error");
+ console.log(e);
+ }
+ }
+ return name;
+}
\ No newline at end of file
diff --git a/herosaver.min.js b/herosaver.min.js
index 61c9358..24ec94e 100644
--- a/herosaver.min.js
+++ b/herosaver.min.js
@@ -1 +1 @@
-function init(){!function(){var e,t;RK.STLExporter=function(){},RK.STLExporter.prototype={constructor:THREE.STLExporter,parse:(e=new THREE.Vector3,t=new THREE.Matrix3,function(r){console.log(r);var n="";for(var o in n+="solid exported\n",r)r[o].traverse(function(r){if(r instanceof RK.Mesh){if(0==r.visible)return;var o=r.geometry,a=r.matrixWorld,i=r.skeleton,s=r;if(o instanceof RK.BufferGeometry){var c=o.clone();o=(new RK.Geometry).fromBufferGeometry(o);for(var d=c.getAttribute("skinIndex"),l=c.getAttribute("skinWeight"),p=c.getAttribute("morphTarget0"),f=0;void 0!==p;)f++,p=c.getAttribute("morphTarget"+f);if(void 0!==d){o.skinIndices=[],o.skinWeights=[],o.morphTargets=[];for(var u=0;u").css({"margin-left":"20px","font-size":"1.4em",color:"rgba(255, 255, 255, 0.8)",cursor:"pointer"}).text("Export Figure"),o=jQuery("").css({"margin-left":"20px","font-size":"1.4em",color:"rgba(255, 255, 255, 0.8)",cursor:"pointer"}).text("Save JSON"),a=jQuery("").attr({type:"file",id:"ljson"}).css({display:"none"}).text("Load JSON"),i=jQuery("").attr({for:"ljson"}).css({"margin-left":"20px","font-size":"1.4em",color:"rgba(255, 255, 255, 0.8)",cursor:"pointer"}).text("Load JSON");r.append(n),r.append(o),r.append(a),r.append(i),r.css("right",0),n.click(function(e){e.preventDefault();var t=(new RK.STLExporter).parse([CK.character]),r=CK.data.meta.character_name;r=""===r?"unnamed":r,download(t,r+"_base.stl","application/sla")}),o.click(function(e){e.preventDefault();var t=JSON.stringify(CK.data),r=CK.data.meta.character_name;r=""===r?"unnamed":r,download(t,r+".json","text/plain")}),a.on("change",function(e){e.preventDefault();var t=e.target.files[0],r=new FileReader;r.onload=function(e){e.preventDefault(),CK.change(JSON.parse(e.target.result))},r.readAsText(t)})}()}function inject_script(e,t){var r=document.getElementsByTagName("head")[0],n=document.createElement("script");n.src=e,n.onload=function(e){t()},r.appendChild(n)}!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.download=t()}(this,function(){return function e(t,r,n){function o(e){e=(t=e.split(/[:;,]/))[1];for(var t,r=(t=("base64"==t[2]?atob:decodeURIComponent)(t.pop())).length,n=0,o=new Uint8Array(r);nc.length&&(p=c.split("/").pop().split("?")[0],d.href=c,-1!==d.href.indexOf(c))){var f=new XMLHttpRequest;return f.open("GET",c,!0),f.responseType="blob",f.onload=function(t){e(t.target.response,p,"application/octet-stream")},setTimeout(function(){f.send()},0),f}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(t)){if(!(2096103.424").css(s).text("Export Figure"),n=jQuery("").css(s).text("Export Model (STL)"),o=jQuery("").css(s).text("Export (JSON)"),a=jQuery("").attr({type:"file",id:"ljson"}).css({display:"none"}).text("Import (JSON)"),i=jQuery("").attr({for:"ljson"}).css(s).text("Import (JSON)"),(r=jQuery(".characterArea")).append(n),r.append(o),r.append(a),r.append(i),r.css("right",0),n.click(function(e){e.preventDefault();var t=(new RK.STLExporter).parse([CK.character]),r=get_name();download(t,r+".stl","application/sla")}),o.click(function(e){e.preventDefault();var t=JSON.stringify(CK.data),r=get_name();download(t,r+".json","text/plain")}),a.on("change",function(e){e.preventDefault();var t=e.target.files[0],r=new FileReader;r.onload=function(e){e.preventDefault(),CK.change(JSON.parse(e.target.result))},r.readAsText(t)})}()}function inject_script(e,t){var r=document.getElementsByTagName("head")[0],n=document.createElement("script");n.src=e,n.onload=function(e){t()},r.appendChild(n)}function get_name(){(new Date).getUTCMilliseconds().toString(16);var e="Character_uqID";try{var t=CK.character.data.meta.character_name;e=""===t?e:t}catch(e){e instanceof ReferenceError?(console.log("Name of character data location has changed"),console.log(e)):(console.log("Other Error"),console.log(e))}return e}!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.download=t()}(this,function(){return function e(t,r,n){function o(e){e=(t=e.split(/[:;,]/))[1];for(var t,r=(t=("base64"==t[2]?atob:decodeURIComponent)(t.pop())).length,n=0,o=new Uint8Array(r);nc.length&&(p=c.split("/").pop().split("?")[0],l.href=c,-1!==l.href.indexOf(c))){var f=new XMLHttpRequest;return f.open("GET",c,!0),f.responseType="blob",f.onload=function(t){e(t.target.response,p,"application/octet-stream")},setTimeout(function(){f.send()},0),f}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(t)){if(!(2096103.424