diff --git a/public/assets/g/crazycattle3d/coi-serviceworker.min.js b/public/assets/g/crazycattle3d/coi-serviceworker.min.js new file mode 100644 index 00000000..e79fce1c --- /dev/null +++ b/public/assets/g/crazycattle3d/coi-serviceworker.min.js @@ -0,0 +1,2 @@ +/*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */ +let coepCredentialless=!1;"undefined"==typeof window?(self.addEventListener("install",(()=>self.skipWaiting())),self.addEventListener("activate",(e=>e.waitUntil(self.clients.claim()))),self.addEventListener("message",(e=>{e.data&&("deregister"===e.data.type?self.registration.unregister().then((()=>self.clients.matchAll())).then((e=>{e.forEach((e=>e.navigate(e.url)))})):"coepCredentialless"===e.data.type&&(coepCredentialless=e.data.value))})),self.addEventListener("fetch",(function(e){const r=e.request;if("only-if-cached"===r.cache&&"same-origin"!==r.mode)return;const s=coepCredentialless&&"no-cors"===r.mode?new Request(r,{credentials:"omit"}):r;e.respondWith(fetch(s).then((e=>{if(0===e.status)return e;const r=new Headers(e.headers);return r.set("Cross-Origin-Embedder-Policy",coepCredentialless?"credentialless":"require-corp"),coepCredentialless||r.set("Cross-Origin-Resource-Policy","cross-origin"),r.set("Cross-Origin-Opener-Policy","same-origin"),new Response(e.body,{status:e.status,statusText:e.statusText,headers:r})})).catch((e=>console.error(e))))}))):(()=>{const e={shouldRegister:()=>!0,shouldDeregister:()=>!1,coepCredentialless:()=>(window.chrome!==undefined||window.netscape!==undefined),doReload:()=>window.location.reload(),quiet:!1,...window.coi},r=navigator;r.serviceWorker&&r.serviceWorker.controller&&(r.serviceWorker.controller.postMessage({type:"coepCredentialless",value:e.coepCredentialless()}),e.shouldDeregister()&&r.serviceWorker.controller.postMessage({type:"deregister"})),!1===window.crossOriginIsolated&&e.shouldRegister()&&(window.isSecureContext?r.serviceWorker&&r.serviceWorker.register(window.document.currentScript.src).then((s=>{!e.quiet&&console.log("COOP/COEP Service Worker registered",s.scope),s.addEventListener("updatefound",(()=>{!e.quiet&&console.log("Reloading page to make use of updated COOP/COEP Service Worker."),e.doReload()})),s.active&&!r.serviceWorker.controller&&(!e.quiet&&console.log("Reloading page to make use of COOP/COEP Service Worker."),e.doReload())}),(r=>{!e.quiet&&console.error("COOP/COEP Service Worker failed to register:",r)})):!e.quiet&&console.log("COOP/COEP Service Worker not registered, a secure context is required."))})(); diff --git a/public/assets/g/crazycattle3d/index 7.html b/public/assets/g/crazycattle3d/index 7.html new file mode 100644 index 00000000..7307da18 --- /dev/null +++ b/public/assets/g/crazycattle3d/index 7.html @@ -0,0 +1,226 @@ + + + + + + + CrazyCattle3D + + + + + + + + + Your browser does not support the canvas tag. + + + + +
+ + +
+
+ + + + + + + + + + + + diff --git a/public/assets/g/crazycattle3d/index.apple-touch-icon.png b/public/assets/g/crazycattle3d/index.apple-touch-icon.png new file mode 100644 index 00000000..f078f5c5 Binary files /dev/null and b/public/assets/g/crazycattle3d/index.apple-touch-icon.png differ diff --git a/public/assets/g/crazycattle3d/index.audio.position.worklet.js b/public/assets/g/crazycattle3d/index.audio.position.worklet.js new file mode 100644 index 00000000..155d4e6e --- /dev/null +++ b/public/assets/g/crazycattle3d/index.audio.position.worklet.js @@ -0,0 +1,69 @@ +/**************************************************************************/ +/* godot.audio.position.worklet.js */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* 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. */ +/**************************************************************************/ + +const POST_THRESHOLD_S = 0.1; + +class GodotPositionReportingProcessor extends AudioWorkletProcessor { + constructor(...args) { + super(...args); + this.lastPostTime = currentTime; + this.position = 0; + this.ended = false; + + this.port.onmessage = (event) => { + if (event?.data?.type === 'ended') { + this.ended = true; + } + }; + } + + process(inputs, _outputs, _parameters) { + if (this.ended) { + return false; + } + + if (inputs.length > 0) { + const input = inputs[0]; + if (input.length > 0) { + this.position += input[0].length; + } + } + + // Posting messages is expensive. Let's limit the number of posts. + if (currentTime - this.lastPostTime > POST_THRESHOLD_S) { + this.lastPostTime = currentTime; + this.port.postMessage({ type: 'position', data: this.position }); + } + + return true; + } +} + +registerProcessor('godot-position-reporting-processor', GodotPositionReportingProcessor);