require('./custom.less') const tree = require('./tree') const walk = require('./walk') require('./ui') require('./stl-exporter') const THREE = require('./three') // if (window.scene) { // var i = -6 // scene.traverse(o => { // o.name = o.type + i++ // }) // scene.getObjectByName('Bone3').rotation.z = 32 // } window.bake = () => { const character = CK.character const baker = new THREE.Baker(); baker.parse(character); console.log('Baked'); } window.save = (filename) => { const character = CK.character const exporter = new THREE.GLTFExporter(); exporter.parse(character, data => { window.data = data; console.log('done') if (filename) console.save(JSON.stringify(window.data), `${filename}.gltf`) }) } window.console.save = function(data, filename){ if(!data) { console.error('Console.save: No data') return; } if(!filename) filename = 'console.json' if(typeof data === "object"){ data = JSON.stringify(data, undefined, 4) } var blob = new Blob([data], {type: 'text/json'}), e = document.createEvent('MouseEvents'), a = document.createElement('a') a.download = filename a.href = window.URL.createObjectURL(blob) a.dataset.downloadurl = ['text/json', a.download, a.href].join(':') e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) a.dispatchEvent(e) } window.console.css = () => Array.from(document.styleSheets).map(ss => Array.from(ss.rules)).reduce((a, b) => a.concat(b), []).map(rule => rule.cssText).sort().join('\n') window.console.saveCss = (name) => window.console.save(window.console.css(), name || `${window.location.hostname}.css`) window.saveStl = (filename) => { var exporter = new THREE.STLExporter(); var data = exporter.parse( CK.character, { binary: false } ); console.save(data, `${filename || 'export'}.stl`) } const waitFor = fn => new Promise((resolve, reject) => { if (typeof fn === 'string') { const querySelector = fn fn = () => document.querySelector(querySelector) } const timer = setInterval(() => { try { const res = fn() if (res) { resolve(res) } } catch (err) { console.warn(err) } }) }) setInterval(() => { const links = Array.from(document.querySelectorAll('.shop-button')) links.forEach(link => { const a = document.createElement('a') a.className = 'shop-button clickable' a.innerText = 'Export STL' a.onclick = ev => { saveStl(CK.character.name || document.querySelector('.headerMenu-trigger-label').innerText.split('*').join('').trim()) ev.preventDefault() setTimeout(() => document.querySelector('.tab-Pose').click()) } link.replaceWith(a) }) // const kick = Array.from(document.querySelectorAll('.corner-kickstarter')) // kick.forEach(kick => { // kick.remove() // }) }, 1000) // // Your code here... // CK.Settings.rez = 'hiRez' // CK.Settings.forge = true // const CKBLoader = window.FuseBox.packages.creationkit.f["creationkit/resources/loaders/CKBLoader.js"].locals.exports.default // const oldLoad = CKBLoader.prototype.load // CKBLoader.prototype.load = function() { // const args = Array.from(arguments) // //args[0] = args[0].split('_loRez_').join('_').split('/static/').join('/forge/static/') // console.log(args) // return oldLoad.apply(this, args) // } window.Custom = { init() {} }