diff --git a/games/nukes/package-lock.json b/games/nukes/package-lock.json
index 0193391b..c82a23f1 100644
--- a/games/nukes/package-lock.json
+++ b/games/nukes/package-lock.json
@@ -8,11 +8,8 @@
"name": "nukes",
"version": "0.0.0",
"devDependencies": {
- "@react-three/drei": "^9.93.0",
- "@react-three/fiber": "^8.15.13",
"@types/react": "^18.2.37",
"@types/react-dom": "^18.2.15",
- "@types/three": "^0.160.0",
"@typescript-eslint/eslint-plugin": "^6.12.0",
"@typescript-eslint/parser": "^6.12.0",
"@vitejs/plugin-react": "^4.2.0",
@@ -29,7 +26,6 @@
"react-router": "^6.21.1",
"react-router-dom": "^6.21.1",
"styled-components": "^6.1.6",
- "three": "^0.160.0",
"typescript": "^5.2.2",
"vite": "^5.0.0"
}
@@ -938,12 +934,6 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@mediapipe/tasks-vision": {
- "version": "0.10.8",
- "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.8.tgz",
- "integrity": "sha512-Rp7ll8BHrKB3wXaRFKhrltwZl1CiXGdibPxuWXvqGnKTnv8fqa/nvftYNuSbf+pbJWKYCXdBtYTITdAUTGGh0Q==",
- "dev": true
- },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -979,181 +969,6 @@
"node": ">= 8"
}
},
- "node_modules/@react-spring/animated": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz",
- "integrity": "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==",
- "dev": true,
- "dependencies": {
- "@react-spring/shared": "~9.6.1",
- "@react-spring/types": "~9.6.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/core": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz",
- "integrity": "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==",
- "dev": true,
- "dependencies": {
- "@react-spring/animated": "~9.6.1",
- "@react-spring/rafz": "~9.6.1",
- "@react-spring/shared": "~9.6.1",
- "@react-spring/types": "~9.6.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/react-spring/donate"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/rafz": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz",
- "integrity": "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==",
- "dev": true
- },
- "node_modules/@react-spring/shared": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz",
- "integrity": "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==",
- "dev": true,
- "dependencies": {
- "@react-spring/rafz": "~9.6.1",
- "@react-spring/types": "~9.6.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/three": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz",
- "integrity": "sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==",
- "dev": true,
- "dependencies": {
- "@react-spring/animated": "~9.6.1",
- "@react-spring/core": "~9.6.1",
- "@react-spring/shared": "~9.6.1",
- "@react-spring/types": "~9.6.1"
- },
- "peerDependencies": {
- "@react-three/fiber": ">=6.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "three": ">=0.126"
- }
- },
- "node_modules/@react-spring/types": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz",
- "integrity": "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==",
- "dev": true
- },
- "node_modules/@react-three/drei": {
- "version": "9.93.0",
- "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.93.0.tgz",
- "integrity": "sha512-G59IZqPzpIZPvVLmzdCITXJQB+mnKMtFv7FvSRFogeelLzOFkyfnkED9QiY0WQCBMFOFLnSx6vb5xzmbQjHyQA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.11.2",
- "@mediapipe/tasks-vision": "0.10.8",
- "@react-spring/three": "~9.6.1",
- "@use-gesture/react": "^10.2.24",
- "camera-controls": "^2.4.2",
- "cross-env": "^7.0.3",
- "detect-gpu": "^5.0.28",
- "glsl-noise": "^0.0.0",
- "lodash.clamp": "^4.0.3",
- "lodash.omit": "^4.5.0",
- "lodash.pick": "^4.4.0",
- "maath": "^0.10.7",
- "meshline": "^3.1.6",
- "react-composer": "^5.0.3",
- "react-merge-refs": "^1.1.0",
- "stats-gl": "^2.0.0",
- "stats.js": "^0.17.0",
- "suspend-react": "^0.1.3",
- "three-mesh-bvh": "^0.6.7",
- "three-stdlib": "^2.28.0",
- "troika-three-text": "^0.47.2",
- "utility-types": "^3.10.0",
- "uuid": "^9.0.1",
- "zustand": "^3.5.13"
- },
- "peerDependencies": {
- "@react-three/fiber": ">=8.0",
- "react": ">=18.0",
- "react-dom": ">=18.0",
- "three": ">=0.137"
- },
- "peerDependenciesMeta": {
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@react-three/fiber": {
- "version": "8.15.13",
- "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.15.13.tgz",
- "integrity": "sha512-FS6F/k69q2KEf7nxdce1Rzd5qyp6VHtTgjouTMfiotWNiNwlhfQQeAxfcnDg0i2XVaOUGkLaD9BK8LBVnpfzUA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.17.8",
- "@types/react-reconciler": "^0.26.7",
- "@types/webxr": "*",
- "base64-js": "^1.5.1",
- "buffer": "^6.0.3",
- "its-fine": "^1.0.6",
- "react-reconciler": "^0.27.0",
- "react-use-measure": "^2.1.1",
- "scheduler": "^0.21.0",
- "suspend-react": "^0.1.3",
- "zustand": "^3.7.1"
- },
- "peerDependencies": {
- "expo": ">=43.0",
- "expo-asset": ">=8.4",
- "expo-file-system": ">=11.0",
- "expo-gl": ">=11.0",
- "react": ">=18.0",
- "react-dom": ">=18.0",
- "react-native": ">=0.64",
- "three": ">=0.133"
- },
- "peerDependenciesMeta": {
- "expo": {
- "optional": true
- },
- "expo-asset": {
- "optional": true
- },
- "expo-file-system": {
- "optional": true
- },
- "expo-gl": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "react-native": {
- "optional": true
- }
- }
- },
- "node_modules/@react-three/fiber/node_modules/scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
- "dev": true,
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
"node_modules/@remix-run/router": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz",
@@ -1360,12 +1175,6 @@
"@babel/types": "^7.20.7"
}
},
- "node_modules/@types/draco3d": {
- "version": "1.4.9",
- "resolved": "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.9.tgz",
- "integrity": "sha512-4MMUjMQb4yA5fJ4osXx+QxGHt0/ZSy4spT6jL1HM7Tn8OJEC35siqdnpOo+HxPhYjqEFumKfGVF9hJfdyKBIBA==",
- "dev": true
- },
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
@@ -1378,12 +1187,6 @@
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true
},
- "node_modules/@types/offscreencanvas": {
- "version": "2019.7.3",
- "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
- "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
- "dev": true
- },
"node_modules/@types/prop-types": {
"version": "15.7.11",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
@@ -1410,15 +1213,6 @@
"@types/react": "*"
}
},
- "node_modules/@types/react-reconciler": {
- "version": "0.26.7",
- "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz",
- "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==",
- "dev": true,
- "dependencies": {
- "@types/react": "*"
- }
- },
"node_modules/@types/scheduler": {
"version": "0.16.8",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
@@ -1431,36 +1225,12 @@
"integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
"dev": true
},
- "node_modules/@types/stats.js": {
- "version": "0.17.3",
- "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz",
- "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==",
- "dev": true
- },
"node_modules/@types/stylis": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz",
"integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==",
"dev": true
},
- "node_modules/@types/three": {
- "version": "0.160.0",
- "resolved": "https://registry.npmjs.org/@types/three/-/three-0.160.0.tgz",
- "integrity": "sha512-jWlbUBovicUKaOYxzgkLlhkiEQJkhCVvg4W2IYD2trqD2om3VK4DGLpHH5zQHNr7RweZK/5re/4IVhbhvxbV9w==",
- "dev": true,
- "dependencies": {
- "@types/stats.js": "*",
- "@types/webxr": "*",
- "fflate": "~0.6.10",
- "meshoptimizer": "~0.18.1"
- }
- },
- "node_modules/@types/webxr": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.10.tgz",
- "integrity": "sha512-n3u5sqXQJhf1CS68mw3Wf16FQ4cRPNBBwdYLFzq3UddiADOim1Pn3Y6PBdDilz1vOJF3ybLxJ8ZEDlLIzrOQZg==",
- "dev": true
- },
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.12.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz",
@@ -1656,24 +1426,6 @@
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
- "node_modules/@use-gesture/core": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.0.tgz",
- "integrity": "sha512-rh+6MND31zfHcy9VU3dOZCqGY511lvGcfyJenN4cWZe0u1BH6brBpBddLVXhF2r4BMqWbvxfsbL7D287thJU2A==",
- "dev": true
- },
- "node_modules/@use-gesture/react": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.0.tgz",
- "integrity": "sha512-3zc+Ve99z4usVP6l9knYVbVnZgfqhKah7sIG+PS2w+vpig2v2OLct05vs+ZXMzwxdNCMka8B+8WlOo0z6Pn6DA==",
- "dev": true,
- "dependencies": {
- "@use-gesture/core": "10.3.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0"
- }
- },
"node_modules/@vitejs/plugin-react": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.0.tgz",
@@ -1947,35 +1699,6 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/bidi-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
- "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
- "dev": true,
- "dependencies": {
- "require-from-string": "^2.0.2"
- }
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2030,30 +1753,6 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
"node_modules/call-bind": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
@@ -2086,15 +1785,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/camera-controls": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-2.7.3.tgz",
- "integrity": "sha512-L4mxjBd3u8qiOLozdWrH2P8ZybSsDXBF7iyNyqNEFJhPUkovmuARWR8JTc1B/qlclOIg6FvZZA/0uAZMMim0mw==",
- "dev": true,
- "peerDependencies": {
- "three": ">=0.126.1"
- }
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001564",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz",
@@ -2156,24 +1846,6 @@
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true
},
- "node_modules/cross-env": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
- "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.1"
- },
- "bin": {
- "cross-env": "src/bin/cross-env.js",
- "cross-env-shell": "src/bin/cross-env-shell.js"
- },
- "engines": {
- "node": ">=10.14",
- "npm": ">=6",
- "yarn": ">=1"
- }
- },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -2220,12 +1892,6 @@
"integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
"dev": true
},
- "node_modules/debounce": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
- "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==",
- "dev": true
- },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -2289,15 +1955,6 @@
"node": ">=6"
}
},
- "node_modules/detect-gpu": {
- "version": "5.0.37",
- "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.37.tgz",
- "integrity": "sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw==",
- "dev": true,
- "dependencies": {
- "webgl-constants": "^1.1.1"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -2322,12 +1979,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/draco3d": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.6.tgz",
- "integrity": "sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ==",
- "dev": true
- },
"node_modules/electron-to-chromium": {
"version": "1.4.594",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz",
@@ -3042,12 +2693,6 @@
"reusify": "^1.0.4"
}
},
- "node_modules/fflate": {
- "version": "0.6.10",
- "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz",
- "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==",
- "dev": true
- },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -3289,12 +2934,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/glsl-noise": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz",
- "integrity": "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==",
- "dev": true
- },
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -3394,26 +3033,6 @@
"node": ">= 0.4"
}
},
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/ignore": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
@@ -3817,27 +3436,6 @@
"set-function-name": "^2.0.1"
}
},
- "node_modules/its-fine": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.1.1.tgz",
- "integrity": "sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw==",
- "dev": true,
- "dependencies": {
- "@types/react-reconciler": "^0.28.0"
- },
- "peerDependencies": {
- "react": ">=18.0"
- }
- },
- "node_modules/its-fine/node_modules/@types/react-reconciler": {
- "version": "0.28.8",
- "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz",
- "integrity": "sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==",
- "dev": true,
- "dependencies": {
- "@types/react": "*"
- }
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -3968,30 +3566,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lodash.clamp": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz",
- "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==",
- "dev": true
- },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
- "node_modules/lodash.omit": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
- "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
- "dev": true
- },
- "node_modules/lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -4013,16 +3593,6 @@
"yallist": "^3.0.2"
}
},
- "node_modules/maath": {
- "version": "0.10.7",
- "resolved": "https://registry.npmjs.org/maath/-/maath-0.10.7.tgz",
- "integrity": "sha512-zQ2xd7dNOIVTjAS+hj22fyj1EFYmOJX6tzKjZ92r6WDoq8hyFxjuGA2q950tmR4iC/EKXoMQdSipkaJVuUHDTg==",
- "dev": true,
- "peerDependencies": {
- "@types/three": ">=0.144.0",
- "three": ">=0.144.0"
- }
- },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -4032,21 +3602,6 @@
"node": ">= 8"
}
},
- "node_modules/meshline": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.1.7.tgz",
- "integrity": "sha512-uf9fPI9wy0Ie0kZjvKuIkf2n7gi3ih0wdTeb/kmSvmzpPyEL5d9lFohg9+JV9VC4sQUBOZDgxu6fnjn57goSHg==",
- "dev": true,
- "peerDependencies": {
- "three": ">=0.137"
- }
- },
- "node_modules/meshoptimizer": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz",
- "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==",
- "dev": true
- },
"node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -4397,12 +3952,6 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
- "node_modules/potpack": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
- "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==",
- "dev": true
- },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -4479,18 +4028,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/react-composer": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz",
- "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==",
- "dev": true,
- "dependencies": {
- "prop-types": "^15.6.0"
- },
- "peerDependencies": {
- "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
- }
- },
"node_modules/react-dom": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
@@ -4510,41 +4047,6 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
- "node_modules/react-merge-refs": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
- "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- }
- },
- "node_modules/react-reconciler": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz",
- "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==",
- "dev": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.21.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/react-reconciler/node_modules/scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
- "dev": true,
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
"node_modules/react-refresh": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
@@ -4585,19 +4087,6 @@
"react-dom": ">=16.8"
}
},
- "node_modules/react-use-measure": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
- "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
- "dev": true,
- "dependencies": {
- "debounce": "^1.2.1"
- },
- "peerDependencies": {
- "react": ">=16.13",
- "react-dom": ">=16.13"
- }
- },
"node_modules/reflect.getprototypeof": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz",
@@ -4641,15 +4130,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -4914,18 +4394,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/stats-gl": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.0.1.tgz",
- "integrity": "sha512-EhFm1AxoSBK3MflkFawZ4jmOX1dWu0nBAtCpvGxGsondEvCpsohbpRpM8pi8UAcxG5eRsDsCiRcxdH20j3Rp9A==",
- "dev": true
- },
- "node_modules/stats.js": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
- "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==",
- "dev": true
- },
"node_modules/string.prototype.matchall": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
@@ -5082,53 +4550,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/suspend-react": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz",
- "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==",
- "dev": true,
- "peerDependencies": {
- "react": ">=17.0"
- }
- },
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "node_modules/three": {
- "version": "0.160.0",
- "resolved": "https://registry.npmjs.org/three/-/three-0.160.0.tgz",
- "integrity": "sha512-DLU8lc0zNIPkM7rH5/e1Ks1Z8tWCGRq6g8mPowdDJpw1CFBJMU7UoJjC6PefXW7z//SSl0b2+GCw14LB+uDhng==",
- "dev": true
- },
- "node_modules/three-mesh-bvh": {
- "version": "0.6.8",
- "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.6.8.tgz",
- "integrity": "sha512-EGebF9DZx1S8+7OZYNNTT80GXJZVf+UYXD/HyTg/e2kR/ApofIFfUS4ZzIHNnUVIadpnLSzM4n96wX+l7GMbnQ==",
- "dev": true,
- "peerDependencies": {
- "three": ">= 0.151.0"
- }
- },
- "node_modules/three-stdlib": {
- "version": "2.28.12",
- "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.28.12.tgz",
- "integrity": "sha512-6ZAomFjrtDVNxI56F3QNgV7uVn8JlEZVgzZP+UE9h/zpKmeD3pIZvmWymw9sYPoteof0hLDFom3cETRhErQh3g==",
- "dev": true,
- "dependencies": {
- "@types/draco3d": "^1.4.0",
- "@types/offscreencanvas": "^2019.6.4",
- "@types/webxr": "^0.5.2",
- "draco3d": "^1.4.1",
- "fflate": "^0.6.9",
- "potpack": "^1.0.1"
- },
- "peerDependencies": {
- "three": ">=0.128.0"
- }
- },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -5150,36 +4577,6 @@
"node": ">=8.0"
}
},
- "node_modules/troika-three-text": {
- "version": "0.47.2",
- "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.47.2.tgz",
- "integrity": "sha512-qylT0F+U7xGs+/PEf3ujBdJMYWbn0Qci0kLqI5BJG2kW1wdg4T1XSxneypnF05DxFqJhEzuaOR9S2SjiyknMng==",
- "dev": true,
- "dependencies": {
- "bidi-js": "^1.0.2",
- "troika-three-utils": "^0.47.2",
- "troika-worker-utils": "^0.47.2",
- "webgl-sdf-generator": "1.1.1"
- },
- "peerDependencies": {
- "three": ">=0.125.0"
- }
- },
- "node_modules/troika-three-utils": {
- "version": "0.47.2",
- "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.47.2.tgz",
- "integrity": "sha512-/28plhCxfKtH7MSxEGx8e3b/OXU5A0xlwl+Sbdp0H8FXUHKZDoksduEKmjQayXYtxAyuUiCRunYIv/8Vi7aiyg==",
- "dev": true,
- "peerDependencies": {
- "three": ">=0.125.0"
- }
- },
- "node_modules/troika-worker-utils": {
- "version": "0.47.2",
- "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.47.2.tgz",
- "integrity": "sha512-mzss4MeyzUkYBppn4x5cdAqrhBHFEuVmMMgLMTyFV23x6GvQMyo+/R5E5Lsbrt7WSt5RfvewjcwD1DChRTA9lA==",
- "dev": true
- },
"node_modules/ts-api-utils": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
@@ -5378,28 +4775,6 @@
"punycode": "^2.1.0"
}
},
- "node_modules/utility-types": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
- "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/vite": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.0.2.tgz",
@@ -5455,18 +4830,6 @@
}
}
},
- "node_modules/webgl-constants": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz",
- "integrity": "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==",
- "dev": true
- },
- "node_modules/webgl-sdf-generator": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz",
- "integrity": "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==",
- "dev": true
- },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -5581,23 +4944,6 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
- },
- "node_modules/zustand": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
- "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
- "dev": true,
- "engines": {
- "node": ">=12.7.0"
- },
- "peerDependencies": {
- "react": ">=16.8"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- }
- }
}
}
}
diff --git a/games/nukes/package.json b/games/nukes/package.json
index d2f8fd8a..92ff6b68 100644
--- a/games/nukes/package.json
+++ b/games/nukes/package.json
@@ -10,11 +10,8 @@
"preview": "vite preview"
},
"devDependencies": {
- "@react-three/drei": "^9.93.0",
- "@react-three/fiber": "^8.15.13",
"@types/react": "^18.2.37",
"@types/react-dom": "^18.2.15",
- "@types/three": "^0.160.0",
"@typescript-eslint/eslint-plugin": "^6.12.0",
"@typescript-eslint/parser": "^6.12.0",
"@vitejs/plugin-react": "^4.2.0",
@@ -31,7 +28,6 @@
"react-router": "^6.21.1",
"react-router-dom": "^6.21.1",
"styled-components": "^6.1.6",
- "three": "^0.160.0",
"typescript": "^5.2.2",
"vite": "^5.0.0"
}
diff --git a/games/nukes/src/game-states/state-intro.tsx b/games/nukes/src/game-states/state-intro.tsx
index cb5fe5e0..90136b58 100644
--- a/games/nukes/src/game-states/state-intro.tsx
+++ b/games/nukes/src/game-states/state-intro.tsx
@@ -1,6 +1,4 @@
import { GameState, GameStateComponent } from './types';
-import { GameStateTechMap } from './state-tech-map';
-import { GameStateTechNuke } from './state-tech-nuke';
import { GameStateTechWorld } from './state-tech-world';
const Intro: GameStateComponent = ({ setGameState }) => {
diff --git a/games/nukes/src/game-states/state-tech-map.tsx b/games/nukes/src/game-states/state-tech-map.tsx
deleted file mode 100644
index a11732f0..00000000
--- a/games/nukes/src/game-states/state-tech-map.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-import React, { useRef, useState } from 'react';
-import styled from 'styled-components';
-import { Canvas, useFrame } from '@react-three/fiber';
-import { CameraShake, OrbitControls } from '@react-three/drei';
-import * as THREE from 'three';
-import { GameState, GameStateComponent } from './types';
-
-const MAP_WIDTH_TILES = 100;
-const MAP_HEIGHT_TILES = 100;
-
-const TILE_SIZE = 0.25;
-
-const TILES = Array.from({ length: MAP_WIDTH_TILES })
- .map((v, x) => Array.from({ length: MAP_HEIGHT_TILES }).map((v, y) => ({ x: x * TILE_SIZE, y: y * TILE_SIZE })))
- .flat();
-
-const TechMapComponent: GameStateComponent = ({ setGameState }) => {
- return (
-
-
-
- );
-};
-
-function MapTiles() {
- const [positions] = useState(
- () =>
- new Float32Array(
- TILES.map((tile, index) => {
- const z = Math.cos((index / TILES.length) * Math.PI) * TILE_SIZE * 10;
-
- return [
- [tile.x, tile.y, z], // v0
- [tile.x + TILE_SIZE, tile.y, z], // v1
- [tile.x + TILE_SIZE, tile.y + TILE_SIZE, z], // v2
-
- [tile.x + TILE_SIZE, tile.y + TILE_SIZE, z], // v3
- [tile.x, tile.y + TILE_SIZE, z], // v4
- [tile.x, tile.y, z], // v5
- ];
- })
- .flat()
- .flat(),
- ),
- );
-
- new THREE.Color();
-
- const [colors] = useState(
- () =>
- new Float32Array(
- TILES.map((tile, index) => [
- [0, 1, 0],
- new THREE.Color(0xff0000).toArray(),
- new THREE.Color(0xff0000).toArray(),
- new THREE.Color(0xff0000).toArray(),
- new THREE.Color(0xff0000).toArray(),
- new THREE.Color(0xff0000).toArray(),
- ])
- .flat()
- .flat(),
- ),
- );
-
- return (
-
-
-
-
-
-
-
- );
-}
-
-const MapContainer = styled.div`
- position: absolute;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
-`;
-
-export const GameStateTechMap: GameState = {
- Component: TechMapComponent,
- path: '/tech-map',
-};
diff --git a/games/nukes/src/game-states/state-tech-nuke.tsx b/games/nukes/src/game-states/state-tech-nuke.tsx
deleted file mode 100644
index 1513842c..00000000
--- a/games/nukes/src/game-states/state-tech-nuke.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { useEffect, useMemo, useRef, useState } from 'react';
-import { GameState, GameStateComponent } from './types';
-import styled from 'styled-components';
-import { Canvas, useThree } from '@react-three/fiber';
-import * as THREE from 'three';
-
-const TechNukeComponent: GameStateComponent = ({ setGameState }) => {
- const [time, setTime] = useState(1);
-
- return (
-
-
- setTime(Number(event.target.value))}
- />
-
- Time: {time.toFixed(3)}
-
-
-
- );
-};
-
-function Explosion({ time }: { time: number }) {
- const points = useMemo(() => {
- const points = new THREE.EllipseCurve(0, 0, 1 * time, 1.15 * time, 0, 2 * Math.PI, false, 0).getPoints(50);
- return new Float32Array(points.map((v) => [v.x, v.y, 0]).flat());
- }, [time]);
-
- const { invalidate } = useThree();
- const ref = useRef(null);
-
- useEffect(() => {
- invalidate();
- ref.current!.geometry.attributes.position.needsUpdate = true;
- }, [time]);
-
- return (
-
-
-
-
- {/* */}
-
-
- );
-}
-
-const Container = styled.div`
- position: absolute;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
-`;
-
-const Controls = styled.div`
- text-align: left;
- background: #eee;
- padding: 5px 10px;
-`;
-
-export const GameStateTechNuke: GameState = {
- Component: TechNukeComponent,
- path: '/tech-nuke',
-};