Update latest from upstream

This commit is contained in:
James Harrison 2020-09-10 23:59:12 +01:00
parent 65c6da2d62
commit 3e0a24841b
17 changed files with 71 additions and 134 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -158,14 +158,9 @@
<h1>Textures</h1> <h1>Textures</h1>
<div> <div>
<div class="control"> <div class="control">
<label>Skin URL: <input id="skin_url" type="text" value="img/1_8_texturemap_redux.png" placeholder="none" list="default_skins"></label> <label>Skin URL: <input id="skin_url" type="text" value="img/skin.png" placeholder="none" list="default_skins"></label>
<datalist id="default_skins"> <datalist id="default_skins">
<option value="img/1_8_texturemap_redux.png"> <option value="img/skin.png">
<option value="img/hacksore.png">
<option value="img/haka.png">
<option value="img/hatsune_miku.png">
<option value="img/ironman_hd.png">
<option value="img/sethbling.png">
</datalist> </datalist>
<input id="skin_url_upload" type="file" accept="image/*" style="display: none;"> <input id="skin_url_upload" type="file" accept="image/*" style="display: none;">
<button type="button" class="control" <button type="button" class="control"
@ -179,14 +174,25 @@
</select> </select>
</label> </label>
</div> </div>
<div>
<div class="control">
<label>Ear URL: <input id="ears_url" type="text" value="" placeholder="none" list="default_ears"></label>
<datalist id="default_ears">
<option value="">
<option value="img/ears.png">
</datalist>
<input id="ears_url_upload" type="file" accept="image/*" style="display: none;">
<button type="button" class="control"
onclick="document.getElementById('ears_url_upload').click();">Browse...</button>
</div>
</div>
<div> <div>
<div class="control"> <div class="control">
<label>Cape URL: <input id="cape_url" type="text" value="" placeholder="none" list="default_capes"></label> <label>Cape URL: <input id="cape_url" type="text" value="" placeholder="none" list="default_capes"></label>
<datalist id="default_capes"> <datalist id="default_capes">
<option value=""> <option value="">
<option value="img/mojang_cape.png"> <option value="img/cape.png">
<option value="img/legacy_cape.png"> <option value="img/animated.png">
<option value="img/hd_cape.png">
</datalist> </datalist>
<input id="cape_url_upload" type="file" accept="image/*" style="display: none;"> <input id="cape_url_upload" type="file" accept="image/*" style="display: none;">
<button type="button" class="control" <button type="button" class="control"
@ -257,19 +263,25 @@
} }
} }
function reloadEars() {
const input = document.getElementById("ears_url");
const url = input.value;
if (url === "") {
skinViewer.loadEars(null);
input.setCustomValidity("");
} else {
skinViewer.loadEars(url);
}
}
function reloadCape() { function reloadCape() {
const input = document.getElementById("cape_url"); const input = document.getElementById("cape_url");
const url = input.value; const url = input.value;
if (url === "") { if (url === "") {
skinViewer.loadCape(null); skinViewer.loadCustomCape(null);
input.setCustomValidity(""); input.setCustomValidity("");
} else { } else {
skinViewer.loadCape(url) skinViewer.loadCustomCape(url);
.then(() => input.setCustomValidity(""))
.catch(e => {
input.setCustomValidity("Image can't be loaded.");
console.error(e);
});
} }
} }
@ -362,6 +374,17 @@
skinReader.readAsDataURL(file); skinReader.readAsDataURL(file);
} }
}); });
const earsReader = new FileReader();
earsReader.addEventListener("load", e => {
document.getElementById("ears_url").value = earsReader.result;
reloadEars();
});
document.getElementById("ears_url_upload").addEventListener("change", e => {
const file = e.target.files[0];
if (file !== undefined) {
earsReader.readAsDataURL(file);
}
});
const capeReader = new FileReader(); const capeReader = new FileReader();
capeReader.addEventListener("load", e => { capeReader.addEventListener("load", e => {
document.getElementById("cape_url").value = capeReader.result; document.getElementById("cape_url").value = capeReader.result;
@ -375,6 +398,7 @@
}); });
document.getElementById("skin_url").addEventListener("change", () => reloadSkin()); document.getElementById("skin_url").addEventListener("change", () => reloadSkin());
document.getElementById("skin_model").addEventListener("change", () => reloadSkin()); document.getElementById("skin_model").addEventListener("change", () => reloadSkin());
document.getElementById("ears_url").addEventListener("change", () => reloadEars());
document.getElementById("cape_url").addEventListener("change", () => reloadCape()); document.getElementById("cape_url").addEventListener("change", () => reloadCape());
document.getElementById("reset_all").addEventListener("click", () => { document.getElementById("reset_all").addEventListener("click", () => {
skinViewer.dispose(); skinViewer.dispose();
@ -414,6 +438,7 @@
} }
} }
reloadSkin(); reloadSkin();
reloadEars();
reloadCape(); reloadCape();
} }

View File

@ -14,29 +14,35 @@
<script> <script>
const textures = [ const textures = [
{ {
skin: "img/1_8_texturemap_redux.png", skin: "img/skin.png",
cape: null ears: null,
cape: null,
}, },
{ {
skin: "img/hacksore.png", skin: "img/skin.png",
cape: "img/legacy_cape.png" ears: null,
cape: "img/cape.png",
}, },
{ {
skin: "img/haka.png", skin: "img/skin.png",
cape: null ears: null,
cape: "img/animated.png",
}, },
{ {
skin: "img/hatsune_miku.png", skin: "img/skin.png",
cape: "img/mojang_cape.png" ears: "img/ears.png",
cape: null,
}, },
{ {
skin: "img/ironman_hd.png", skin: "img/skin.png",
cape: "img/hd_cape.png" ears: "img/ears.png",
cape: "img/cape.png",
}, },
{ {
skin: "img/sethbling.png", skin: "img/skin.png",
cape: null ears: "img/ears.png",
} cape: "img/animated.png",
},
]; ];
(async function () { (async function () {
@ -55,7 +61,7 @@
skinViewer.camera.position.z = 42.0; skinViewer.camera.position.z = 42.0;
for (const { skin, cape } of textures) { for (const { skin, cape } of textures) {
await Promise.all([skinViewer.loadSkin(skin), skinViewer.loadCape(cape)]); await Promise.all([skinViewer.loadSkin(skin), skinViewer.loadEars(skin), skinViewer.loadCustomCape(cape)]);
skinViewer.render(); skinViewer.render();
const image = skinViewer.canvas.toDataURL(); const image = skinViewer.canvas.toDataURL();

99
package-lock.json generated
View File

@ -40,15 +40,9 @@
} }
}, },
"@rollup/plugin-node-resolve": { "@rollup/plugin-node-resolve": {
<<<<<<< HEAD
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz",
"integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==",
=======
"version": "9.0.0", "version": "9.0.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz",
"integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==",
>>>>>>> upstream/master
"dev": true, "dev": true,
"requires": { "requires": {
"@rollup/pluginutils": "^3.1.0", "@rollup/pluginutils": "^3.1.0",
@ -122,15 +116,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
<<<<<<< HEAD
"version": "14.0.22",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.22.tgz",
"integrity": "sha512-emeGcJvdiZ4Z3ohbmw93E/64jRzUHAItSHt8nF7M4TGgQTiWqFVGB8KNpLGFmUHmHLvjvBgFwVlqNcq+VuGv9g==",
=======
"version": "14.6.0", "version": "14.6.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz",
"integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==", "integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==",
>>>>>>> upstream/master
"dev": true "dev": true
}, },
"@types/resolve": { "@types/resolve": {
@ -143,21 +131,12 @@
} }
}, },
"@typescript-eslint/eslint-plugin": { "@typescript-eslint/eslint-plugin": {
<<<<<<< HEAD
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.0.tgz",
"integrity": "sha512-ubHlHVt1lsPQB/CZdEov9XuOFhNG9YRC//kuiS1cMQI6Bs1SsqKrEmZnpgRwthGR09/kEDtr9MywlqXyyYd8GA==",
"dev": true,
"requires": {
"@typescript-eslint/experimental-utils": "3.6.0",
=======
"version": "3.9.1", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.9.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.9.1.tgz",
"integrity": "sha512-XIr+Mfv7i4paEdBf0JFdIl9/tVxyj+rlilWIfZ97Be0lZ7hPvUbS5iHt9Glc8kRI53dsr0PcAEudbf8rO2wGgg==", "integrity": "sha512-XIr+Mfv7i4paEdBf0JFdIl9/tVxyj+rlilWIfZ97Be0lZ7hPvUbS5iHt9Glc8kRI53dsr0PcAEudbf8rO2wGgg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/experimental-utils": "3.9.1", "@typescript-eslint/experimental-utils": "3.9.1",
>>>>>>> upstream/master
"debug": "^4.1.1", "debug": "^4.1.1",
"functional-red-black-tree": "^1.0.1", "functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0", "regexpp": "^3.0.0",
@ -166,16 +145,6 @@
} }
}, },
"@typescript-eslint/experimental-utils": { "@typescript-eslint/experimental-utils": {
<<<<<<< HEAD
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.0.tgz",
"integrity": "sha512-4Vdf2hvYMUnTdkCNZu+yYlFtL2v+N2R7JOynIOkFbPjf9o9wQvRwRkzUdWlFd2YiiUwJLbuuLnl5civNg5ykOQ==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
"@typescript-eslint/types": "3.6.0",
"@typescript-eslint/typescript-estree": "3.6.0",
=======
"version": "3.9.1", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.9.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.9.1.tgz",
"integrity": "sha512-lkiZ8iBBaYoyEKhCkkw4SAeatXyBq9Ece5bZXdLe1LWBUwTszGbmbiqmQbwWA8cSYDnjWXp9eDbXpf9Sn0hLAg==", "integrity": "sha512-lkiZ8iBBaYoyEKhCkkw4SAeatXyBq9Ece5bZXdLe1LWBUwTszGbmbiqmQbwWA8cSYDnjWXp9eDbXpf9Sn0hLAg==",
@ -184,23 +153,11 @@
"@types/json-schema": "^7.0.3", "@types/json-schema": "^7.0.3",
"@typescript-eslint/types": "3.9.1", "@typescript-eslint/types": "3.9.1",
"@typescript-eslint/typescript-estree": "3.9.1", "@typescript-eslint/typescript-estree": "3.9.1",
>>>>>>> upstream/master
"eslint-scope": "^5.0.0", "eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0" "eslint-utils": "^2.0.0"
} }
}, },
"@typescript-eslint/parser": { "@typescript-eslint/parser": {
<<<<<<< HEAD
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.0.tgz",
"integrity": "sha512-taghDxuLhbDAD1U5Fk8vF+MnR0yiFE9Z3v2/bYScFb0N1I9SK8eKHkdJl1DAD48OGFDMFTeOTX0z7g0W6SYUXw==",
"dev": true,
"requires": {
"@types/eslint-visitor-keys": "^1.0.0",
"@typescript-eslint/experimental-utils": "3.6.0",
"@typescript-eslint/types": "3.6.0",
"@typescript-eslint/typescript-estree": "3.6.0",
=======
"version": "3.9.1", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.9.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.9.1.tgz",
"integrity": "sha512-y5QvPFUn4Vl4qM40lI+pNWhTcOWtpZAJ8pOEQ21fTTW4xTJkRplMjMRje7LYTXqVKKX9GJhcyweMz2+W1J5bMg==", "integrity": "sha512-y5QvPFUn4Vl4qM40lI+pNWhTcOWtpZAJ8pOEQ21fTTW4xTJkRplMjMRje7LYTXqVKKX9GJhcyweMz2+W1J5bMg==",
@ -210,26 +167,10 @@
"@typescript-eslint/experimental-utils": "3.9.1", "@typescript-eslint/experimental-utils": "3.9.1",
"@typescript-eslint/types": "3.9.1", "@typescript-eslint/types": "3.9.1",
"@typescript-eslint/typescript-estree": "3.9.1", "@typescript-eslint/typescript-estree": "3.9.1",
>>>>>>> upstream/master
"eslint-visitor-keys": "^1.1.0" "eslint-visitor-keys": "^1.1.0"
} }
}, },
"@typescript-eslint/types": { "@typescript-eslint/types": {
<<<<<<< HEAD
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.0.tgz",
"integrity": "sha512-JwVj74ohUSt0ZPG+LZ7hb95fW8DFOqBuR6gE7qzq55KDI3BepqsCtHfBIoa0+Xi1AI7fq5nCu2VQL8z4eYftqg==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.0.tgz",
"integrity": "sha512-G57NDSABHjvob7zVV09ehWyD1K6/YUKjz5+AufObFyjNO4DVmKejj47MHjVHHlZZKgmpJD2yyH9lfCXHrPITFg==",
"dev": true,
"requires": {
"@typescript-eslint/types": "3.6.0",
"@typescript-eslint/visitor-keys": "3.6.0",
=======
"version": "3.9.1", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.9.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.9.1.tgz",
"integrity": "sha512-15JcTlNQE1BsYy5NBhctnEhEoctjXOjOK+Q+rk8ugC+WXU9rAcS2BYhoh6X4rOaXJEpIYDl+p7ix+A5U0BqPTw==", "integrity": "sha512-15JcTlNQE1BsYy5NBhctnEhEoctjXOjOK+Q+rk8ugC+WXU9rAcS2BYhoh6X4rOaXJEpIYDl+p7ix+A5U0BqPTw==",
@ -243,7 +184,6 @@
"requires": { "requires": {
"@typescript-eslint/types": "3.9.1", "@typescript-eslint/types": "3.9.1",
"@typescript-eslint/visitor-keys": "3.9.1", "@typescript-eslint/visitor-keys": "3.9.1",
>>>>>>> upstream/master
"debug": "^4.1.1", "debug": "^4.1.1",
"glob": "^7.1.6", "glob": "^7.1.6",
"is-glob": "^4.0.1", "is-glob": "^4.0.1",
@ -253,22 +193,14 @@
} }
}, },
"@typescript-eslint/visitor-keys": { "@typescript-eslint/visitor-keys": {
<<<<<<< HEAD
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.0.tgz",
"integrity": "sha512-p1izllL2Ubwunite0ITjubuMQRBGgjdVYwyG7lXPX8GbrA6qF0uwSRz9MnXZaHMxID4948gX0Ez8v9tUDi/KfQ==",
=======
"version": "3.9.1", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.9.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.9.1.tgz",
"integrity": "sha512-zxdtUjeoSh+prCpogswMwVUJfEFmCOjdzK9rpNjNBfm6EyPt99x3RrJoBOGZO23FCt0WPKUCOL5mb/9D5LjdwQ==", "integrity": "sha512-zxdtUjeoSh+prCpogswMwVUJfEFmCOjdzK9rpNjNBfm6EyPt99x3RrJoBOGZO23FCt0WPKUCOL5mb/9D5LjdwQ==",
>>>>>>> upstream/master
"dev": true, "dev": true,
"requires": { "requires": {
"eslint-visitor-keys": "^1.1.0" "eslint-visitor-keys": "^1.1.0"
} }
}, },
<<<<<<< HEAD
=======
"@yushijinhun/three-minifier-common": { "@yushijinhun/three-minifier-common": {
"version": "0.2.0-alpha.2", "version": "0.2.0-alpha.2",
"resolved": "https://registry.npmjs.org/@yushijinhun/three-minifier-common/-/three-minifier-common-0.2.0-alpha.2.tgz", "resolved": "https://registry.npmjs.org/@yushijinhun/three-minifier-common/-/three-minifier-common-0.2.0-alpha.2.tgz",
@ -288,7 +220,6 @@
} }
} }
}, },
>>>>>>> upstream/master
"@yushijinhun/three-minifier-rollup": { "@yushijinhun/three-minifier-rollup": {
"version": "0.2.0-alpha.2", "version": "0.2.0-alpha.2",
"resolved": "https://registry.npmjs.org/@yushijinhun/three-minifier-rollup/-/three-minifier-rollup-0.2.0-alpha.2.tgz", "resolved": "https://registry.npmjs.org/@yushijinhun/three-minifier-rollup/-/three-minifier-rollup-0.2.0-alpha.2.tgz",
@ -348,15 +279,9 @@
} }
}, },
"ajv": { "ajv": {
<<<<<<< HEAD
"version": "6.12.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
"integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
=======
"version": "6.12.4", "version": "6.12.4",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
"integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
>>>>>>> upstream/master
"dev": true, "dev": true,
"requires": { "requires": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
@ -870,15 +795,9 @@
"dev": true "dev": true
}, },
"eslint": { "eslint": {
<<<<<<< HEAD
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz",
"integrity": "sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==",
=======
"version": "7.7.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz",
"integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==", "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==",
>>>>>>> upstream/master
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.0.0", "@babel/code-frame": "^7.0.0",
@ -1789,15 +1708,9 @@
} }
}, },
"lodash": { "lodash": {
<<<<<<< HEAD
"version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
=======
"version": "4.17.20", "version": "4.17.20",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
>>>>>>> upstream/master
"dev": true "dev": true
}, },
"lodash.assignwith": { "lodash.assignwith": {
@ -2493,15 +2406,9 @@
} }
}, },
"rollup": { "rollup": {
<<<<<<< HEAD
"version": "2.21.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.21.0.tgz",
"integrity": "sha512-BEGgy+wSzux7Ycq58pRiWEOBZaXRXTuvzl1gsm7gqmsAHxkWf9nyA5V2LN9fGSHhhDQd0/C13iRzSh4bbIpWZQ==",
=======
"version": "2.26.3", "version": "2.26.3",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.3.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.3.tgz",
"integrity": "sha512-Mlt39/kL2rA9egcbQbaZV1SNVplGqYYhDDMcGgHPPE0tvM3R4GrB+IEdYy2QtTrdzMQx57ZcqDFf/KWWm8F+uw==", "integrity": "sha512-Mlt39/kL2rA9egcbQbaZV1SNVplGqYYhDDMcGgHPPE0tvM3R4GrB+IEdYy2QtTrdzMQx57ZcqDFf/KWWm8F+uw==",
>>>>>>> upstream/master
"dev": true, "dev": true,
"requires": { "requires": {
"fsevents": "~2.1.2" "fsevents": "~2.1.2"
@ -2630,15 +2537,9 @@
"dev": true "dev": true
}, },
"skinview-utils": { "skinview-utils": {
<<<<<<< HEAD
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/skinview-utils/-/skinview-utils-0.5.6.tgz",
"integrity": "sha512-TkpkCkLHNmeltUrtmkMexS/6izDE6LD9VKrvEnKvAqByKcymiwfhFydzTCe1vsarnZK1VPtDbAvBh9/n6UkDLg=="
=======
"version": "0.5.7", "version": "0.5.7",
"resolved": "https://registry.npmjs.org/skinview-utils/-/skinview-utils-0.5.7.tgz", "resolved": "https://registry.npmjs.org/skinview-utils/-/skinview-utils-0.5.7.tgz",
"integrity": "sha512-XhOuCzvGoHuYOymfuZ8IJklVgqkYfusuyQSZMWiE/kluh89ZtBjS3cwoHIff1+Z5mAXHoa+Vkr0wN3JHJvF2ag==" "integrity": "sha512-XhOuCzvGoHuYOymfuZ8IJklVgqkYfusuyQSZMWiE/kluh89ZtBjS3cwoHIff1+Z5mAXHoa+Vkr0wN3JHJvF2ag=="
>>>>>>> upstream/master
}, },
"slice-ansi": { "slice-ansi": {
"version": "2.1.0", "version": "2.1.0",

View File

@ -410,8 +410,8 @@ export class CapeObject extends Group {
// front = inside // front = inside
const capeBox = new BoxGeometry(10, 16, 1); const capeBox = new BoxGeometry(10, 16, 1);
setVertices(capeBox, setVertices(capeBox,
toCapeVertices(1, 0, 11, 1), toCapeVertices(11, 1, 1, 0,),
toCapeVertices(11, 0, 21, 1), toCapeVertices(21, 1, 11, 0),
toCapeVertices(11, 1, 12, 17), toCapeVertices(11, 1, 12, 17),
toCapeVertices(12, 1, 22, 17), toCapeVertices(12, 1, 22, 17),
toCapeVertices(0, 1, 1, 17), toCapeVertices(0, 1, 1, 17),
@ -505,11 +505,16 @@ export class EarsObject extends Group {
constructor(texture: Texture) { constructor(texture: Texture) {
super(); super();
const earMaterial = new MeshBasicMaterial({ map: texture, transparent: true, opacity: 1, side: DoubleSide, alphaTest: 0.5 }); const earMaterial = new MeshBasicMaterial({
map: texture,
side: DoubleSide,
transparent: true,
alphaTest: 1e-5
});
// back = outside // back = outside
// front = inside // front = inside
const earBox = new BoxGeometry(6, 6, 1, 0, 0, 0); const earBox = new BoxGeometry(6, 6, 1);
//x1: number, y1: number, x2: number, y2: number //x1: number, y1: number, x2: number, y2: number
setVertices(earBox, setVertices(earBox,
//from look at back //from look at back