Game
- Updating home page
This commit is contained in:
93
site/interface/site/home3D/home3D.js
Normal file
93
site/interface/site/home3D/home3D.js
Normal file
@ -0,0 +1,93 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* home3D.js :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/08/22 17:19:17 by edbernar #+# #+# */
|
||||
/* Updated: 2024/08/22 19:33:44 by edbernar ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
import * as THREE from 'three'
|
||||
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
|
||||
import { OrbitControls } from 'three/examples/jsm/Addons.js';
|
||||
|
||||
|
||||
|
||||
const loader = new GLTFLoader();
|
||||
|
||||
const scene = new THREE.Scene();
|
||||
const renderer = new THREE.WebGLRenderer({antialias: true});
|
||||
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / innerWidth);
|
||||
const ambiantLight = new THREE.AmbientLight(0xffffff, 0.1);
|
||||
const spotLight = new THREE.SpotLight(0xffffff, 100, 0, 0.5);
|
||||
const helper = new THREE.SpotLightHelper(spotLight);
|
||||
|
||||
|
||||
renderer.shadowMap.enabled = true;
|
||||
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||
scene.add(helper);
|
||||
document.body.getElementsByClassName('homeSection')[0].appendChild(renderer.domElement);
|
||||
scene.background = new THREE.Color(0x325352)
|
||||
camera.position.set(-10, 10, -10);
|
||||
spotLight.position.set(-10, 10, -10);
|
||||
spotLight.castShadow = true;
|
||||
scene.add(spotLight);
|
||||
helper.update();
|
||||
scene.add(ambiantLight);
|
||||
const controls = new OrbitControls(camera, renderer.domElement);
|
||||
|
||||
function home3D()
|
||||
{
|
||||
createPlane();
|
||||
createBox();
|
||||
loader.load( './modeles/tv.glb', (gltf) => {
|
||||
const tv = gltf.scene.children[0];
|
||||
console.log(tv);
|
||||
tv.position.set(0, 0.68, 0);
|
||||
tv.material = new THREE.MeshPhysicalMaterial({color: 0x222222});
|
||||
tv.scale.set(0.1, 0.08, 0.12);
|
||||
tv.castShadow = true;
|
||||
tv.receiveShadow = true;
|
||||
scene.add(tv);
|
||||
}, undefined, function ( error ) {
|
||||
console.error( error );
|
||||
} );
|
||||
|
||||
renderer.setAnimationLoop(loop)
|
||||
}
|
||||
|
||||
function createPlane()
|
||||
{
|
||||
const geometry = new THREE.PlaneGeometry(20, 20);
|
||||
const material = new THREE.MeshPhysicalMaterial({side: THREE.DoubleSide, color: 0xffffff});
|
||||
const mesh = new THREE.Mesh(geometry, material);
|
||||
|
||||
mesh.position.set(0, 0, 0);
|
||||
mesh.rotateX(-(Math.PI / 2));
|
||||
mesh.receiveShadow = true;
|
||||
scene.add(mesh);
|
||||
}
|
||||
|
||||
function createBox()
|
||||
{
|
||||
const geometry = new THREE.BoxGeometry(1, 1, 1);
|
||||
const material = new THREE.MeshPhysicalMaterial({color: 0xffffff});
|
||||
const mesh = new THREE.Mesh(geometry, material);
|
||||
|
||||
mesh.position.set(-3, 0.5, -3);
|
||||
mesh.receiveShadow = true;
|
||||
scene.add(mesh);
|
||||
}
|
||||
|
||||
|
||||
function loop()
|
||||
{
|
||||
controls.update();
|
||||
renderer.render(scene, camera);
|
||||
}
|
||||
|
||||
export { home3D };
|
@ -40,7 +40,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<section class="homeSection">
|
||||
<p>THREEJS</p>
|
||||
</section>
|
||||
<section class="homeSection relative">
|
||||
<img id="firstBall" src="style/ball3D2.png">
|
||||
|
@ -3,33 +3,30 @@
|
||||
/* ::: :::::::: */
|
||||
/* main.js :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: madegryc <madegryc@student.42.fr> +#+ +:+ +#+ */
|
||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/07/30 13:50:35 by edbernar #+# #+# */
|
||||
/* Updated: 2024/08/14 18:25:04 by madegryc ### ########.fr */
|
||||
/* Updated: 2024/08/22 18:01:38 by edbernar ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
import { createNotification } from "./notification/main.js";
|
||||
import { liveChat } from "./liveChat/main.js";
|
||||
import { liveChat } from "/liveChat/main.js";
|
||||
import { login } from "./login/main.js";
|
||||
import { home3D } from "./home3D/home3D.js"
|
||||
|
||||
window.addEventListener('scroll', function() {
|
||||
window.addEventListener('scroll', () => {
|
||||
const scrollPosition = window.scrollY;
|
||||
const rotationAngle = scrollPosition * 0.1; // Ajustez ce facteur pour contrôler l'angle de rotation
|
||||
const rotationAngle = scrollPosition * 0.1;
|
||||
const parallaxElement = document.querySelector('#firstBall');
|
||||
const parallaxElement2 = document.querySelector('#secondBall');
|
||||
const parallaxSpeed = scrollPosition * -0.17; // Ajustez ce facteur pour ralentir le défilement
|
||||
const parallaxSpeed = scrollPosition * -0.17;
|
||||
|
||||
// Appliquer la rotation en fonction de la position de défilement
|
||||
parallaxElement.style.transform = `translateX(-50%) translateY(${-parallaxSpeed}px) rotate(${rotationAngle}deg)`;
|
||||
parallaxElement2.style.transform = `translateX(50%) translateY(${-parallaxSpeed}px) rotate(${rotationAngle}deg)`;
|
||||
|
||||
// Ajuster la position de l'arrière-plan pour l'effet de parallaxe
|
||||
// parallaxElement.style.backgroundPositionY = `${parallaxSpeed}px`;
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
liveChat();
|
||||
login();
|
||||
home3D();
|
||||
});
|
||||
|
BIN
site/interface/site/modeles/tv.glb
Normal file
BIN
site/interface/site/modeles/tv.glb
Normal file
Binary file not shown.
58
site/interface/site/node_modules/.package-lock.json
generated
vendored
58
site/interface/site/node_modules/.package-lock.json
generated
vendored
@ -3,6 +3,23 @@
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
|
||||
@ -20,6 +37,18 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz",
|
||||
"integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz",
|
||||
@ -102,6 +131,21 @@
|
||||
"@esbuild/win32-x64": "0.21.5"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||
@ -193,6 +237,20 @@
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.1.tgz",
|
||||
"integrity": "sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
||||
|
31
site/interface/site/node_modules/.vite/deps/_metadata.json
generated
vendored
31
site/interface/site/node_modules/.vite/deps/_metadata.json
generated
vendored
@ -1,15 +1,34 @@
|
||||
{
|
||||
"hash": "9acb87ed",
|
||||
"configHash": "2420ea4a",
|
||||
"lockfileHash": "5f9ad849",
|
||||
"browserHash": "13d3c601",
|
||||
"hash": "be749922",
|
||||
"configHash": "1568657a",
|
||||
"lockfileHash": "7685a2f8",
|
||||
"browserHash": "e669c1bb",
|
||||
"optimized": {
|
||||
"three": {
|
||||
"src": "../../three/build/three.module.js",
|
||||
"file": "three.js",
|
||||
"fileHash": "b6faecb3",
|
||||
"fileHash": "477065fa",
|
||||
"needsInterop": false
|
||||
},
|
||||
"three/addons/loaders/GLTFLoader.js": {
|
||||
"src": "../../three/examples/jsm/loaders/GLTFLoader.js",
|
||||
"file": "three_addons_loaders_GLTFLoader__js.js",
|
||||
"fileHash": "c1c83b3d",
|
||||
"needsInterop": false
|
||||
},
|
||||
"three/examples/jsm/Addons.js": {
|
||||
"src": "../../three/examples/jsm/Addons.js",
|
||||
"file": "three_examples_jsm_Addons__js.js",
|
||||
"fileHash": "fffba256",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {}
|
||||
"chunks": {
|
||||
"chunk-LBH6F3OL": {
|
||||
"file": "chunk-LBH6F3OL.js"
|
||||
},
|
||||
"chunk-33KXLYU5": {
|
||||
"file": "chunk-33KXLYU5.js"
|
||||
}
|
||||
}
|
||||
}
|
31142
site/interface/site/node_modules/.vite/deps/chunk-33KXLYU5.js
generated
vendored
Normal file
31142
site/interface/site/node_modules/.vite/deps/chunk-33KXLYU5.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
7
site/interface/site/node_modules/.vite/deps/chunk-33KXLYU5.js.map
generated
vendored
Normal file
7
site/interface/site/node_modules/.vite/deps/chunk-33KXLYU5.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3334
site/interface/site/node_modules/.vite/deps/chunk-LBH6F3OL.js
generated
vendored
Normal file
3334
site/interface/site/node_modules/.vite/deps/chunk-LBH6F3OL.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
site/interface/site/node_modules/.vite/deps/chunk-LBH6F3OL.js.map
generated
vendored
Normal file
7
site/interface/site/node_modules/.vite/deps/chunk-LBH6F3OL.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
31111
site/interface/site/node_modules/.vite/deps/three.js
generated
vendored
31111
site/interface/site/node_modules/.vite/deps/three.js
generated
vendored
File diff suppressed because one or more lines are too long
8
site/interface/site/node_modules/.vite/deps/three.js.map
generated
vendored
8
site/interface/site/node_modules/.vite/deps/three.js.map
generated
vendored
File diff suppressed because one or more lines are too long
8
site/interface/site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js
generated
vendored
Normal file
8
site/interface/site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import {
|
||||
GLTFLoader
|
||||
} from "./chunk-LBH6F3OL.js";
|
||||
import "./chunk-33KXLYU5.js";
|
||||
export {
|
||||
GLTFLoader
|
||||
};
|
||||
//# sourceMappingURL=three_addons_loaders_GLTFLoader__js.js.map
|
7
site/interface/site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js.map
generated
vendored
Normal file
7
site/interface/site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js.map
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
117702
site/interface/site/node_modules/.vite/deps/three_examples_jsm_Addons__js.js
generated
vendored
Normal file
117702
site/interface/site/node_modules/.vite/deps/three_examples_jsm_Addons__js.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
7
site/interface/site/node_modules/.vite/deps/three_examples_jsm_Addons__js.js.map
generated
vendored
Normal file
7
site/interface/site/node_modules/.vite/deps/three_examples_jsm_Addons__js.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3
site/interface/site/node_modules/.vite/deps_temp_94b4cdeb/package.json
generated
vendored
3
site/interface/site/node_modules/.vite/deps_temp_94b4cdeb/package.json
generated
vendored
@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
3
site/interface/site/node_modules/.vite/deps_temp_9dff8dc6/package.json
generated
vendored
3
site/interface/site/node_modules/.vite/deps_temp_9dff8dc6/package.json
generated
vendored
@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
3
site/interface/site/node_modules/.vite/deps_temp_c0cfbc28/package.json
generated
vendored
3
site/interface/site/node_modules/.vite/deps_temp_c0cfbc28/package.json
generated
vendored
@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
3
site/interface/site/node_modules/.vite/deps_temp_ca209d11/package.json
generated
vendored
3
site/interface/site/node_modules/.vite/deps_temp_ca209d11/package.json
generated
vendored
@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
3
site/interface/site/node_modules/@esbuild/darwin-arm64/README.md
generated
vendored
Normal file
3
site/interface/site/node_modules/@esbuild/darwin-arm64/README.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# esbuild
|
||||
|
||||
This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
|
BIN
site/interface/site/node_modules/@esbuild/darwin-arm64/bin/esbuild
generated
vendored
Executable file
BIN
site/interface/site/node_modules/@esbuild/darwin-arm64/bin/esbuild
generated
vendored
Executable file
Binary file not shown.
20
site/interface/site/node_modules/@esbuild/darwin-arm64/package.json
generated
vendored
Normal file
20
site/interface/site/node_modules/@esbuild/darwin-arm64/package.json
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "@esbuild/darwin-arm64",
|
||||
"version": "0.21.5",
|
||||
"description": "The macOS ARM 64-bit binary for esbuild, a JavaScript bundler.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/evanw/esbuild.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"preferUnplugged": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"cpu": [
|
||||
"arm64"
|
||||
]
|
||||
}
|
3
site/interface/site/node_modules/@rollup/rollup-darwin-arm64/README.md
generated
vendored
Normal file
3
site/interface/site/node_modules/@rollup/rollup-darwin-arm64/README.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# `@rollup/rollup-darwin-arm64`
|
||||
|
||||
This is the **aarch64-apple-darwin** binary for `rollup`
|
19
site/interface/site/node_modules/@rollup/rollup-darwin-arm64/package.json
generated
vendored
Normal file
19
site/interface/site/node_modules/@rollup/rollup-darwin-arm64/package.json
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "@rollup/rollup-darwin-arm64",
|
||||
"version": "4.21.0",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"files": [
|
||||
"rollup.darwin-arm64.node"
|
||||
],
|
||||
"description": "Native bindings for Rollup",
|
||||
"author": "Lukas Taegert-Atkinson",
|
||||
"homepage": "https://rollupjs.org/",
|
||||
"license": "MIT",
|
||||
"repository": "rollup/rollup",
|
||||
"main": "./rollup.darwin-arm64.node"
|
||||
}
|
BIN
site/interface/site/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node
generated
vendored
Normal file
BIN
site/interface/site/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node
generated
vendored
Normal file
Binary file not shown.
22
site/interface/site/node_modules/fsevents/LICENSE
generated
vendored
Normal file
22
site/interface/site/node_modules/fsevents/LICENSE
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
MIT License
|
||||
-----------
|
||||
|
||||
Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller
|
||||
|
||||
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.
|
89
site/interface/site/node_modules/fsevents/README.md
generated
vendored
Normal file
89
site/interface/site/node_modules/fsevents/README.md
generated
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
# fsevents
|
||||
|
||||
Native access to MacOS FSEvents in [Node.js](https://nodejs.org/)
|
||||
|
||||
The FSEvents API in MacOS allows applications to register for notifications of
|
||||
changes to a given directory tree. It is a very fast and lightweight alternative
|
||||
to kqueue.
|
||||
|
||||
This is a low-level library. For a cross-platform file watching module that
|
||||
uses fsevents, check out [Chokidar](https://github.com/paulmillr/chokidar).
|
||||
|
||||
## Usage
|
||||
|
||||
```sh
|
||||
npm install fsevents
|
||||
```
|
||||
|
||||
Supports only **Node.js v8.16 and higher**.
|
||||
|
||||
```js
|
||||
const fsevents = require('fsevents');
|
||||
|
||||
// To start observation
|
||||
const stop = fsevents.watch(__dirname, (path, flags, id) => {
|
||||
const info = fsevents.getInfo(path, flags);
|
||||
});
|
||||
|
||||
// To end observation
|
||||
stop();
|
||||
```
|
||||
|
||||
> **Important note:** The API behaviour is slightly different from typical JS APIs. The `stop` function **must** be
|
||||
> retrieved and stored somewhere, even if you don't plan to stop the watcher. If you forget it, the garbage collector
|
||||
> will eventually kick in, the watcher will be unregistered, and your callbacks won't be called anymore.
|
||||
|
||||
The callback passed as the second parameter to `.watch` get's called whenever the operating system detects a
|
||||
a change in the file system. It takes three arguments:
|
||||
|
||||
###### `fsevents.watch(dirname: string, (path: string, flags: number, id: string) => void): () => Promise<undefined>`
|
||||
|
||||
* `path: string` - the item in the filesystem that have been changed
|
||||
* `flags: number` - a numeric value describing what the change was
|
||||
* `id: string` - an unique-id identifying this specific event
|
||||
|
||||
Returns closer callback which when called returns a Promise resolving when the watcher process has been shut down.
|
||||
|
||||
###### `fsevents.getInfo(path: string, flags: number, id: string): FsEventInfo`
|
||||
|
||||
The `getInfo` function takes the `path`, `flags` and `id` arguments and converts those parameters into a structure
|
||||
that is easier to digest to determine what the change was.
|
||||
|
||||
The `FsEventsInfo` has the following shape:
|
||||
|
||||
```js
|
||||
/**
|
||||
* @typedef {'created'|'modified'|'deleted'|'moved'|'root-changed'|'cloned'|'unknown'} FsEventsEvent
|
||||
* @typedef {'file'|'directory'|'symlink'} FsEventsType
|
||||
*/
|
||||
{
|
||||
"event": "created", // {FsEventsEvent}
|
||||
"path": "file.txt",
|
||||
"type": "file", // {FsEventsType}
|
||||
"changes": {
|
||||
"inode": true, // Had iNode Meta-Information changed
|
||||
"finder": false, // Had Finder Meta-Data changed
|
||||
"access": false, // Had access permissions changed
|
||||
"xattrs": false // Had xAttributes changed
|
||||
},
|
||||
"flags": 0x100000000
|
||||
}
|
||||
```
|
||||
|
||||
## Changelog
|
||||
|
||||
- v2.3 supports Apple Silicon ARM CPUs
|
||||
- v2 supports node 8.16+ and reduces package size massively
|
||||
- v1.2.8 supports node 6+
|
||||
- v1.2.7 supports node 4+
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- I'm getting `EBADPLATFORM` `Unsupported platform for fsevents` error.
|
||||
- It's fine, nothing is broken. fsevents is macos-only. Other platforms are skipped. If you want to hide this warning, report a bug to NPM bugtracker asking them to hide ebadplatform warnings by default.
|
||||
|
||||
## License
|
||||
|
||||
The MIT License Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller — see LICENSE file.
|
||||
|
||||
Visit our [GitHub page](https://github.com/fsevents/fsevents) and [NPM Page](https://npmjs.org/package/fsevents)
|
46
site/interface/site/node_modules/fsevents/fsevents.d.ts
generated
vendored
Normal file
46
site/interface/site/node_modules/fsevents/fsevents.d.ts
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
declare type Event = "created" | "cloned" | "modified" | "deleted" | "moved" | "root-changed" | "unknown";
|
||||
declare type Type = "file" | "directory" | "symlink";
|
||||
declare type FileChanges = {
|
||||
inode: boolean;
|
||||
finder: boolean;
|
||||
access: boolean;
|
||||
xattrs: boolean;
|
||||
};
|
||||
declare type Info = {
|
||||
event: Event;
|
||||
path: string;
|
||||
type: Type;
|
||||
changes: FileChanges;
|
||||
flags: number;
|
||||
};
|
||||
declare type WatchHandler = (path: string, flags: number, id: string) => void;
|
||||
export declare function watch(path: string, handler: WatchHandler): () => Promise<void>;
|
||||
export declare function watch(path: string, since: number, handler: WatchHandler): () => Promise<void>;
|
||||
export declare function getInfo(path: string, flags: number): Info;
|
||||
export declare const constants: {
|
||||
None: 0x00000000;
|
||||
MustScanSubDirs: 0x00000001;
|
||||
UserDropped: 0x00000002;
|
||||
KernelDropped: 0x00000004;
|
||||
EventIdsWrapped: 0x00000008;
|
||||
HistoryDone: 0x00000010;
|
||||
RootChanged: 0x00000020;
|
||||
Mount: 0x00000040;
|
||||
Unmount: 0x00000080;
|
||||
ItemCreated: 0x00000100;
|
||||
ItemRemoved: 0x00000200;
|
||||
ItemInodeMetaMod: 0x00000400;
|
||||
ItemRenamed: 0x00000800;
|
||||
ItemModified: 0x00001000;
|
||||
ItemFinderInfoMod: 0x00002000;
|
||||
ItemChangeOwner: 0x00004000;
|
||||
ItemXattrMod: 0x00008000;
|
||||
ItemIsFile: 0x00010000;
|
||||
ItemIsDir: 0x00020000;
|
||||
ItemIsSymlink: 0x00040000;
|
||||
ItemIsHardlink: 0x00100000;
|
||||
ItemIsLastHardlink: 0x00200000;
|
||||
OwnEvent: 0x00080000;
|
||||
ItemCloned: 0x00400000;
|
||||
};
|
||||
export {};
|
83
site/interface/site/node_modules/fsevents/fsevents.js
generated
vendored
Normal file
83
site/interface/site/node_modules/fsevents/fsevents.js
generated
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
/*
|
||||
** © 2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller
|
||||
** Licensed under MIT License.
|
||||
*/
|
||||
|
||||
/* jshint node:true */
|
||||
"use strict";
|
||||
|
||||
if (process.platform !== "darwin") {
|
||||
throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`);
|
||||
}
|
||||
|
||||
const Native = require("./fsevents.node");
|
||||
const events = Native.constants;
|
||||
|
||||
function watch(path, since, handler) {
|
||||
if (typeof path !== "string") {
|
||||
throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`);
|
||||
}
|
||||
if ("function" === typeof since && "undefined" === typeof handler) {
|
||||
handler = since;
|
||||
since = Native.flags.SinceNow;
|
||||
}
|
||||
if (typeof since !== "number") {
|
||||
throw new TypeError(`fsevents argument 2 must be a number and not a ${typeof since}`);
|
||||
}
|
||||
if (typeof handler !== "function") {
|
||||
throw new TypeError(`fsevents argument 3 must be a function and not a ${typeof handler}`);
|
||||
}
|
||||
|
||||
let instance = Native.start(Native.global, path, since, handler);
|
||||
if (!instance) throw new Error(`could not watch: ${path}`);
|
||||
return () => {
|
||||
const result = instance ? Promise.resolve(instance).then(Native.stop) : Promise.resolve(undefined);
|
||||
instance = undefined;
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
function getInfo(path, flags) {
|
||||
return {
|
||||
path,
|
||||
flags,
|
||||
event: getEventType(flags),
|
||||
type: getFileType(flags),
|
||||
changes: getFileChanges(flags),
|
||||
};
|
||||
}
|
||||
|
||||
function getFileType(flags) {
|
||||
if (events.ItemIsFile & flags) return "file";
|
||||
if (events.ItemIsDir & flags) return "directory";
|
||||
if (events.MustScanSubDirs & flags) return "directory";
|
||||
if (events.ItemIsSymlink & flags) return "symlink";
|
||||
}
|
||||
function anyIsTrue(obj) {
|
||||
for (let key in obj) {
|
||||
if (obj[key]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function getEventType(flags) {
|
||||
if (events.ItemRemoved & flags) return "deleted";
|
||||
if (events.ItemRenamed & flags) return "moved";
|
||||
if (events.ItemCreated & flags) return "created";
|
||||
if (events.ItemModified & flags) return "modified";
|
||||
if (events.RootChanged & flags) return "root-changed";
|
||||
if (events.ItemCloned & flags) return "cloned";
|
||||
if (anyIsTrue(flags)) return "modified";
|
||||
return "unknown";
|
||||
}
|
||||
function getFileChanges(flags) {
|
||||
return {
|
||||
inode: !!(events.ItemInodeMetaMod & flags),
|
||||
finder: !!(events.ItemFinderInfoMod & flags),
|
||||
access: !!(events.ItemChangeOwner & flags),
|
||||
xattrs: !!(events.ItemXattrMod & flags),
|
||||
};
|
||||
}
|
||||
|
||||
exports.watch = watch;
|
||||
exports.getInfo = getInfo;
|
||||
exports.constants = events;
|
BIN
site/interface/site/node_modules/fsevents/fsevents.node
generated
vendored
Executable file
BIN
site/interface/site/node_modules/fsevents/fsevents.node
generated
vendored
Executable file
Binary file not shown.
62
site/interface/site/node_modules/fsevents/package.json
generated
vendored
Normal file
62
site/interface/site/node_modules/fsevents/package.json
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"name": "fsevents",
|
||||
"version": "2.3.3",
|
||||
"description": "Native Access to MacOS FSEvents",
|
||||
"main": "fsevents.js",
|
||||
"types": "fsevents.d.ts",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"files": [
|
||||
"fsevents.d.ts",
|
||||
"fsevents.js",
|
||||
"fsevents.node"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "node-gyp clean && rm -f fsevents.node",
|
||||
"build": "node-gyp clean && rm -f fsevents.node && node-gyp rebuild && node-gyp clean",
|
||||
"test": "/bin/bash ./test.sh 2>/dev/null",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fsevents/fsevents.git"
|
||||
},
|
||||
"keywords": [
|
||||
"fsevents",
|
||||
"mac"
|
||||
],
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Philipp Dunkel",
|
||||
"email": "pip@pipobscure.com"
|
||||
},
|
||||
{
|
||||
"name": "Ben Noordhuis",
|
||||
"email": "info@bnoordhuis.nl"
|
||||
},
|
||||
{
|
||||
"name": "Elan Shankar",
|
||||
"email": "elan.shanker@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Miroslav Bajtoš",
|
||||
"email": "mbajtoss@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Paul Miller",
|
||||
"url": "https://paulmillr.com"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/fsevents/fsevents/issues"
|
||||
},
|
||||
"homepage": "https://github.com/fsevents/fsevents",
|
||||
"devDependencies": {
|
||||
"node-gyp": "^9.4.0"
|
||||
}
|
||||
}
|
3
site/interface/site/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64/README.md
generated
vendored
Normal file
3
site/interface/site/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64/README.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# `@rollup/rollup-darwin-arm64`
|
||||
|
||||
This is the **aarch64-apple-darwin** binary for `rollup`
|
19
site/interface/site/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64/package.json
generated
vendored
Normal file
19
site/interface/site/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64/package.json
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "@rollup/rollup-darwin-arm64",
|
||||
"version": "4.19.1",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"files": [
|
||||
"rollup.darwin-arm64.node"
|
||||
],
|
||||
"description": "Native bindings for Rollup",
|
||||
"author": "Lukas Taegert-Atkinson",
|
||||
"homepage": "https://rollupjs.org/",
|
||||
"license": "MIT",
|
||||
"repository": "rollup/rollup",
|
||||
"main": "./rollup.darwin-arm64.node"
|
||||
}
|
BIN
site/interface/site/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node
generated
vendored
Normal file
BIN
site/interface/site/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node
generated
vendored
Normal file
Binary file not shown.
23
site/interface/site/package-lock.json
generated
23
site/interface/site/package-lock.json
generated
@ -5,6 +5,7 @@
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@rollup/rollup-darwin-arm64": "^4.21.0",
|
||||
"stats": "^1.0.0",
|
||||
"stats.js": "^0.17.0"
|
||||
},
|
||||
@ -433,15 +434,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.1.tgz",
|
||||
"integrity": "sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==",
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz",
|
||||
"integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
@ -788,6 +787,20 @@
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.1.tgz",
|
||||
"integrity": "sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
||||
|
@ -7,6 +7,7 @@
|
||||
"vite": "^5.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@rollup/rollup-darwin-arm64": "^4.21.0",
|
||||
"stats": "^1.0.0",
|
||||
"stats.js": "^0.17.0"
|
||||
}
|
||||
|
Binary file not shown.
BIN
site/real_game/blender/banner.blend1
Normal file
BIN
site/real_game/blender/banner.blend1
Normal file
Binary file not shown.
BIN
site/real_game/blender/exported/tv.glb
Normal file
BIN
site/real_game/blender/exported/tv.glb
Normal file
Binary file not shown.
BIN
site/real_game/blender/tv.blend
Normal file
BIN
site/real_game/blender/tv.blend
Normal file
Binary file not shown.
BIN
site/real_game/blender/tv.blend1
Normal file
BIN
site/real_game/blender/tv.blend1
Normal file
Binary file not shown.
Reference in New Issue
Block a user