Update latest from upstream
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 689 B |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 278 KiB |
Before Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 589 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
@ -158,14 +158,9 @@
|
|||
<h1>Textures</h1>
|
||||
<div>
|
||||
<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">
|
||||
<option value="img/1_8_texturemap_redux.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">
|
||||
<option value="img/skin.png">
|
||||
</datalist>
|
||||
<input id="skin_url_upload" type="file" accept="image/*" style="display: none;">
|
||||
<button type="button" class="control"
|
||||
|
@ -179,14 +174,25 @@
|
|||
</select>
|
||||
</label>
|
||||
</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 class="control">
|
||||
<label>Cape URL: <input id="cape_url" type="text" value="" placeholder="none" list="default_capes"></label>
|
||||
<datalist id="default_capes">
|
||||
<option value="">
|
||||
<option value="img/mojang_cape.png">
|
||||
<option value="img/legacy_cape.png">
|
||||
<option value="img/hd_cape.png">
|
||||
<option value="img/cape.png">
|
||||
<option value="img/animated.png">
|
||||
</datalist>
|
||||
<input id="cape_url_upload" type="file" accept="image/*" style="display: none;">
|
||||
<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() {
|
||||
const input = document.getElementById("cape_url");
|
||||
const url = input.value;
|
||||
if (url === "") {
|
||||
skinViewer.loadCape(null);
|
||||
skinViewer.loadCustomCape(null);
|
||||
input.setCustomValidity("");
|
||||
} else {
|
||||
skinViewer.loadCape(url)
|
||||
.then(() => input.setCustomValidity(""))
|
||||
.catch(e => {
|
||||
input.setCustomValidity("Image can't be loaded.");
|
||||
console.error(e);
|
||||
});
|
||||
skinViewer.loadCustomCape(url);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -362,6 +374,17 @@
|
|||
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();
|
||||
capeReader.addEventListener("load", e => {
|
||||
document.getElementById("cape_url").value = capeReader.result;
|
||||
|
@ -375,6 +398,7 @@
|
|||
});
|
||||
document.getElementById("skin_url").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("reset_all").addEventListener("click", () => {
|
||||
skinViewer.dispose();
|
||||
|
@ -414,6 +438,7 @@
|
|||
}
|
||||
}
|
||||
reloadSkin();
|
||||
reloadEars();
|
||||
reloadCape();
|
||||
}
|
||||
|
||||
|
|
|
@ -14,29 +14,35 @@
|
|||
<script>
|
||||
const textures = [
|
||||
{
|
||||
skin: "img/1_8_texturemap_redux.png",
|
||||
cape: null
|
||||
skin: "img/skin.png",
|
||||
ears: null,
|
||||
cape: null,
|
||||
},
|
||||
{
|
||||
skin: "img/hacksore.png",
|
||||
cape: "img/legacy_cape.png"
|
||||
skin: "img/skin.png",
|
||||
ears: null,
|
||||
cape: "img/cape.png",
|
||||
},
|
||||
{
|
||||
skin: "img/haka.png",
|
||||
cape: null
|
||||
skin: "img/skin.png",
|
||||
ears: null,
|
||||
cape: "img/animated.png",
|
||||
},
|
||||
{
|
||||
skin: "img/hatsune_miku.png",
|
||||
cape: "img/mojang_cape.png"
|
||||
skin: "img/skin.png",
|
||||
ears: "img/ears.png",
|
||||
cape: null,
|
||||
},
|
||||
{
|
||||
skin: "img/ironman_hd.png",
|
||||
cape: "img/hd_cape.png"
|
||||
skin: "img/skin.png",
|
||||
ears: "img/ears.png",
|
||||
cape: "img/cape.png",
|
||||
},
|
||||
{
|
||||
skin: "img/sethbling.png",
|
||||
cape: null
|
||||
}
|
||||
skin: "img/skin.png",
|
||||
ears: "img/ears.png",
|
||||
cape: "img/animated.png",
|
||||
},
|
||||
];
|
||||
|
||||
(async function () {
|
||||
|
@ -55,7 +61,7 @@
|
|||
skinViewer.camera.position.z = 42.0;
|
||||
|
||||
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();
|
||||
const image = skinViewer.canvas.toDataURL();
|
||||
|
||||
|
|
|
@ -40,15 +40,9 @@
|
|||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz",
|
||||
"integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@rollup/pluginutils": "^3.1.0",
|
||||
|
@ -122,15 +116,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz",
|
||||
"integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true
|
||||
},
|
||||
"@types/resolve": {
|
||||
|
@ -143,21 +131,12 @@
|
|||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.9.1.tgz",
|
||||
"integrity": "sha512-XIr+Mfv7i4paEdBf0JFdIl9/tVxyj+rlilWIfZ97Be0lZ7hPvUbS5iHt9Glc8kRI53dsr0PcAEudbf8rO2wGgg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/experimental-utils": "3.9.1",
|
||||
>>>>>>> upstream/master
|
||||
"debug": "^4.1.1",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"regexpp": "^3.0.0",
|
||||
|
@ -166,16 +145,6 @@
|
|||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.9.1.tgz",
|
||||
"integrity": "sha512-lkiZ8iBBaYoyEKhCkkw4SAeatXyBq9Ece5bZXdLe1LWBUwTszGbmbiqmQbwWA8cSYDnjWXp9eDbXpf9Sn0hLAg==",
|
||||
|
@ -184,23 +153,11 @@
|
|||
"@types/json-schema": "^7.0.3",
|
||||
"@typescript-eslint/types": "3.9.1",
|
||||
"@typescript-eslint/typescript-estree": "3.9.1",
|
||||
>>>>>>> upstream/master
|
||||
"eslint-scope": "^5.0.0",
|
||||
"eslint-utils": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.9.1.tgz",
|
||||
"integrity": "sha512-y5QvPFUn4Vl4qM40lI+pNWhTcOWtpZAJ8pOEQ21fTTW4xTJkRplMjMRje7LYTXqVKKX9GJhcyweMz2+W1J5bMg==",
|
||||
|
@ -210,26 +167,10 @@
|
|||
"@typescript-eslint/experimental-utils": "3.9.1",
|
||||
"@typescript-eslint/types": "3.9.1",
|
||||
"@typescript-eslint/typescript-estree": "3.9.1",
|
||||
>>>>>>> upstream/master
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.9.1.tgz",
|
||||
"integrity": "sha512-15JcTlNQE1BsYy5NBhctnEhEoctjXOjOK+Q+rk8ugC+WXU9rAcS2BYhoh6X4rOaXJEpIYDl+p7ix+A5U0BqPTw==",
|
||||
|
@ -243,7 +184,6 @@
|
|||
"requires": {
|
||||
"@typescript-eslint/types": "3.9.1",
|
||||
"@typescript-eslint/visitor-keys": "3.9.1",
|
||||
>>>>>>> upstream/master
|
||||
"debug": "^4.1.1",
|
||||
"glob": "^7.1.6",
|
||||
"is-glob": "^4.0.1",
|
||||
|
@ -253,22 +193,14 @@
|
|||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.9.1.tgz",
|
||||
"integrity": "sha512-zxdtUjeoSh+prCpogswMwVUJfEFmCOjdzK9rpNjNBfm6EyPt99x3RrJoBOGZO23FCt0WPKUCOL5mb/9D5LjdwQ==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
"@yushijinhun/three-minifier-common": {
|
||||
"version": "0.2.0-alpha.2",
|
||||
"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": {
|
||||
"version": "0.2.0-alpha.2",
|
||||
"resolved": "https://registry.npmjs.org/@yushijinhun/three-minifier-rollup/-/three-minifier-rollup-0.2.0-alpha.2.tgz",
|
||||
|
@ -348,15 +279,9 @@
|
|||
}
|
||||
},
|
||||
"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",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
|
||||
"integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
|
@ -870,15 +795,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"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",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz",
|
||||
"integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
|
@ -1789,15 +1708,9 @@
|
|||
}
|
||||
},
|
||||
"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",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
||||
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true
|
||||
},
|
||||
"lodash.assignwith": {
|
||||
|
@ -2493,15 +2406,9 @@
|
|||
}
|
||||
},
|
||||
"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",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.3.tgz",
|
||||
"integrity": "sha512-Mlt39/kL2rA9egcbQbaZV1SNVplGqYYhDDMcGgHPPE0tvM3R4GrB+IEdYy2QtTrdzMQx57ZcqDFf/KWWm8F+uw==",
|
||||
>>>>>>> upstream/master
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fsevents": "~2.1.2"
|
||||
|
@ -2630,15 +2537,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"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",
|
||||
"resolved": "https://registry.npmjs.org/skinview-utils/-/skinview-utils-0.5.7.tgz",
|
||||
"integrity": "sha512-XhOuCzvGoHuYOymfuZ8IJklVgqkYfusuyQSZMWiE/kluh89ZtBjS3cwoHIff1+Z5mAXHoa+Vkr0wN3JHJvF2ag=="
|
||||
>>>>>>> upstream/master
|
||||
},
|
||||
"slice-ansi": {
|
||||
"version": "2.1.0",
|
||||
|
|
13
src/model.ts
|
@ -410,8 +410,8 @@ export class CapeObject extends Group {
|
|||
// front = inside
|
||||
const capeBox = new BoxGeometry(10, 16, 1);
|
||||
setVertices(capeBox,
|
||||
toCapeVertices(1, 0, 11, 1),
|
||||
toCapeVertices(11, 0, 21, 1),
|
||||
toCapeVertices(11, 1, 1, 0,),
|
||||
toCapeVertices(21, 1, 11, 0),
|
||||
toCapeVertices(11, 1, 12, 17),
|
||||
toCapeVertices(12, 1, 22, 17),
|
||||
toCapeVertices(0, 1, 1, 17),
|
||||
|
@ -505,11 +505,16 @@ export class EarsObject extends Group {
|
|||
constructor(texture: Texture) {
|
||||
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
|
||||
// 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
|
||||
setVertices(earBox,
|
||||
//from look at back
|
||||
|
|