diff --git a/package-lock.json b/package-lock.json index 267469e6..603f71e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,6 +68,23 @@ } } }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "@nodelib/fs.scandir": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", @@ -95,451 +112,493 @@ } }, "@pixi/accessibility": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.3.8.tgz", - "integrity": "sha512-DBkUUPIDfaw1hXFLTOsmZ401JSyu286rS2UB79ClxvVtDfGI7pR+Hgq1PuNeoQSiO9Db32W4grvuxYTulO2jkQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.0.4.tgz", + "integrity": "sha512-S0Co6M+BIx+Yk3INCwGp5Xif0jIv/uj5JPMbctpMV7fSsE3x0nYvcOOAfBjkGhYcXG7fNOGrYLgs5XQOBIWGtA==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/canvas-renderer": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/app": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/app/-/app-5.3.8.tgz", - "integrity": "sha512-eekP/tIPlERZOiWOCVKgOCc66JoAHDP7yT9DBw2LtCKswvP83iwN0PX5YR/u6Z05kUW5y8t4bigfLqEqc4uChw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.0.4.tgz", + "integrity": "sha512-+BiuaQtnOBR5/Q8+nXnHE2tuZyuBnqy/cwbIR1ImPnKAs7UaCcRLf1R0RvnRFu4KMP4ozTd810p0k84TzIguTA==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4" + } + }, + "@pixi/canvas-renderer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/canvas-renderer/-/canvas-renderer-6.0.4.tgz", + "integrity": "sha512-z2r1nzYsAp9+gipvlFCj0rd0yfjVq1hTQkyWuMbo5TrePdEo3NLRrCUGo1dHJNbeSERpgGNN05OAiGQbAI+AUg==", + "requires": { + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/utils": "6.0.4" + } + }, + "@pixi/compressed-textures": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.0.4.tgz", + "integrity": "sha512-AqQPuuXcNrR28YT69SZhRxRRwzqQcQ/QrlexAR9Fohpe+jfDnvlNaIvQQoXU7HxD7huRiQ/dm3nwsLiKPqVoTg==", + "requires": { + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/loaders": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/constants": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.3.8.tgz", - "integrity": "sha512-vTkgBgiox2pLj2ZK/X37O6rFjsLic6CYa+rSCCMo8lCwipG/dgizYoAVIsmZy30tFgg1xYzI6qOw3MSVXupp8Q==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.0.4.tgz", + "integrity": "sha512-khwRMfuHVdFk93L+bf0mmCwtSloYlfBfjdseIAbJL+VSpeMG1S2DzCYlMCPdp4mvDLU9LvkH2U2leZGEIx5j7g==" }, "@pixi/core": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.3.8.tgz", - "integrity": "sha512-mbl7//UbNaIZJbS8R8g5o6cHAMW7xaJWW/dNazSJ9057Fpq5g3e3E2rreNTEILfC29cxm2sXDmgK5a9agoqJaA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.0.4.tgz", + "integrity": "sha512-r1ceyAz0z3usUs0uj4u2986vVT2tQixGNin2o9FNhPFDXbN5EaoKHLtrjGBt1iylK/EUH/nfL5zq0SGa/loW0A==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/runner": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/ticker": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/runner": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/ticker": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/display": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.3.8.tgz", - "integrity": "sha512-ch7g63ox3iow/NEGbrArLfUMJVLVF+FpdFAp72uEweIzlcyzOQV6AcQTHtiRy4+tM6LdlcLSJXJISqGKt2R0Dg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.0.4.tgz", + "integrity": "sha512-v6hjx5Gm5aIlLQ7xrsZ2lstI1cv/MtbWXJOhU8LXckkrHHUvAuJgml3+0pcHw8YLuOlepZngUuiqy/XjceVk8A==", "requires": { - "@pixi/math": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/math": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/extract": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-5.3.8.tgz", - "integrity": "sha512-z09D+5qmGQilbBXhR3xlZCixkTb6+1bSo6jGsbQxpu3xaF0ogh1HB76SJ2Wi1vwba9Q/PMb6RlawdEAg+sRFMg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.0.4.tgz", + "integrity": "sha512-xf/pnc5od7YJ8zCVIrv1km7i+P+rxYcSrrBI/hqX+qoVsI5EySKInf2GhCKHz4UjOHdSL5aPDnNYvzssNdIpdQ==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/filter-adjustment": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@pixi/filter-adjustment/-/filter-adjustment-3.1.1.tgz", - "integrity": "sha512-N+qbkofBn5tiGn2Ubg52AEoPOM69VIO5TEHsBtm5oh2S4m/rb6FnnqPji/FzwK89iLvtYmJdbwWAYi87PWnE3Q==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-adjustment/-/filter-adjustment-4.1.3.tgz", + "integrity": "sha512-W+NhPiZRYKoRToa5+tkU95eOw8gnS5dfIp3ZP+pLv2mdER9RI+4xHxp1uLHMqUYZViTaMdZIIoVOuCgHFPYCbQ==" }, "@pixi/filter-alpha": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.3.8.tgz", - "integrity": "sha512-4vOmuWDLBiMbdQ2S3PmxzrzpPOrlzZVZ8iPEkQrBCYZ4dIuZY7NaV+9tneIK66dDfVI6OA8Ai304LH22nhC81Q==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.0.4.tgz", + "integrity": "sha512-MZEfvNPfH2NfrwgqKhwwzurnbLujphx4KNQmS63MEZTvXuQJy16DEOs459APYF6PmeGAGuDPKd5Onk/VbLRUwQ==", "requires": { - "@pixi/core": "5.3.8" + "@pixi/core": "6.0.4" } }, "@pixi/filter-blur": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.3.8.tgz", - "integrity": "sha512-biNqbfFIDbvOJJ+NiE9G0XojnuMQqtbcaDIiOScRoY3o3yCMjjcUxUMYrZ4xnTGGtEH23OKGUTZVf53qTQ4wiw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.0.4.tgz", + "integrity": "sha512-Hb14geh8ZKc8jZ4lfKyeWThLMqIvha6DdRUTfiSdKe3L7Q6qwqsb7LPtIrZHAPEQCyFLWbcOvRMy6ZFy0YkpLA==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/settings": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/settings": "6.0.4" } }, "@pixi/filter-color-matrix": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.8.tgz", - "integrity": "sha512-0Ag08uPKVoHWQSAIhS27Bs/b50NVMZ+3fUdNg9jgyrRthD/Uc2ljfkIJRa95Mj31YJBS15Giu4BGfefpe1i3zw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.0.4.tgz", + "integrity": "sha512-31Rf9VBo2gqoxiAbD/Z1i+mu1C7uehecoelYQqCIzLjsWisICDTZZjUkMB5GrGzjeSpSqLfB34tlutBSh/r1wg==", "requires": { - "@pixi/core": "5.3.8" + "@pixi/core": "6.0.4" } }, "@pixi/filter-displacement": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.3.8.tgz", - "integrity": "sha512-OQYBK3oOId8VZV7KRYYdt196EYsG0cjAmQQT7P3/IETLIP6Mba+Bd/GtyxGEIBHcb7R5DebuvN4sVQtNgkRKlw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.0.4.tgz", + "integrity": "sha512-Oyk/WbzxlN46d/uB5NtPLfEW2G6ob5XRP+mPVd8yhK38m9Y9rKlcH4jJoWB2niQ+ewkdRfZhuIB+JRdhc9eevg==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/math": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/math": "6.0.4" } }, "@pixi/filter-fxaa": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.3.8.tgz", - "integrity": "sha512-eOfrp46AEjkAM1U+6k9Ga/5ezEwr1+7yGS3VijZBHntZTYKFhmGGOXrQxxL4KuslrfTV/smAflEr22U+A2H98A==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.0.4.tgz", + "integrity": "sha512-cO5XuEIq//Wsk4MjrCYuXff+1/Gfc4bkFkMTO5JKvUaDlZzHNykZd5CeAouD2fz7/6/1z0gdWKbBY9IoameBew==", "requires": { - "@pixi/core": "5.3.8" + "@pixi/core": "6.0.4" } }, "@pixi/filter-noise": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.3.8.tgz", - "integrity": "sha512-+MOz3GpB9XpH7d0B/HAz8zOp164UMKnE64Q9QI094X4KjXWj24RKZea8xFcOaOy9xKi57qqyo+3pLwqFB8ffsw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.0.4.tgz", + "integrity": "sha512-Fpex0tpKCwZIsN03zAmN7hAOCocFF/w4XVVIkuNgYR5A90OkK+omR6p/fDtlJtlAjWarsWq0y+c5wvvUMfqsmg==", "requires": { - "@pixi/core": "5.3.8" + "@pixi/core": "6.0.4" } }, "@pixi/graphics": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.3.8.tgz", - "integrity": "sha512-auqwS6ZnDlNoerddLCoMpEzgq0o09WHH7XxwfTK75hJwBaFX1RO/nasfvCx2wAtWZxAYCaABfR8WnWZfrsBSqA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.0.4.tgz", + "integrity": "sha512-CybR+DBkGB5llypPeib2A0J13mnPQwlQDqLRhlhXKkYxXQKXlPk5MWA7ZEg+4wKeqUUlrC+k70e5ZFYLC3AgEQ==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/sprite": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/sprite": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/interaction": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.3.8.tgz", - "integrity": "sha512-i9KS9TNVK/PEwyjZH2iqui9xroy0R48u/QL4Q8+VQpwbeDlz+WlPWoW5R7rpUwtHd9H6mLWpGR3sdWOmS7fMsA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.0.4.tgz", + "integrity": "sha512-4+FOKDpiF/+F9r3+y81xTBElcLqI3OpeeI9bkIw9pPHA41riXRQv+m0HWz76bGQK7zDAimAV9K2xff7Wa5nSeg==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/ticker": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/ticker": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/loaders": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.3.8.tgz", - "integrity": "sha512-0M2e/gkBBqJW695wz9DcsYN7IY992FKqb9uOEhFFjCn2bkK9WsR6M/JBvTlTk4LOvEg81b1/J51bkucpXWx1Cg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.0.4.tgz", + "integrity": "sha512-cw8QSkn8l8P06fINfwCZW+vUdhtOJ5G+T2qQm3HIDgI/J1tAsiRj3ufHop8xkHwYXrUeTf1LTqw+QdlZEVpJfg==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/utils": "5.3.8", + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/utils": "6.0.4", "resource-loader": "^3.0.1" + }, + "dependencies": { + "resource-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz", + "integrity": "sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA==", + "requires": { + "mini-signals": "^1.2.0", + "parse-uri": "^1.0.0" + } + } } }, "@pixi/math": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.3.8.tgz", - "integrity": "sha512-MZekzC9W391KU2NyzbRHrgYfjPKguzU5cRLbaEw9dgDabLh3/Yzob1KVg8dngIITPbi5yBmoX7zh7ZHEA1NRPQ==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.0.4.tgz", + "integrity": "sha512-UwZ72CeZ2KsS4IlcEXgNiuD88omPk42Dct74+1G+R2+yPI+XRZq+hGQRTle/BbFYjxh9ccdQVyX9ToGv1XTd6Q==" }, "@pixi/mesh": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.3.8.tgz", - "integrity": "sha512-/CQdTypiLgSZqKx9z89cJlLQ8/FaUrc8M3HjmL8Vy5F320ERCR1YLDc6gOzyohK71wDxkUud5VbNz5woQVSBxw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.0.4.tgz", + "integrity": "sha512-uE1Qs4mXy0QVV3yjxlNeqthkXGS6Hkt5uR1fwrvdqxlQRkX69nRq+GZfInuRYDWqwAsl8eZWs7f+pLRDT+HFbA==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/mesh-extras": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.3.8.tgz", - "integrity": "sha512-+lHcmvslKsmlixiJW87/t5diRy7p+tvqQbXMG4/3Vzv3dBEGq453hMIknlLr2xLGyzBtboCHObzwKfeE4tvHTw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.0.4.tgz", + "integrity": "sha512-2fGM8j2NBwPV71SSmMfke1N1oEQ34+J19rdaAb+p1fXex0FafqtXVO49Q8rPMvungKDplMKElzQoaC1G6JGKqA==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/mesh": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/mesh": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/mixin-cache-as-bitmap": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.8.tgz", - "integrity": "sha512-Y4z3yvMldRUU99I+FBOl+j+TCq7CXN2ysNED/vMD2YpfilS2/8dQcAqRNEOBXCdSixd6+QHBuc0+PWR6M7irKg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.0.4.tgz", + "integrity": "sha512-b1G5AWsxnw3CxNyaxCWJ1cWPnRECknJQ9B4D8Dy7u/gI2gABVjqz17nNFYnVpcggLlgMTkjX8+/HWnD/vZQkTg==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/sprite": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/canvas-renderer": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/sprite": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/mixin-get-child-by-name": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.8.tgz", - "integrity": "sha512-6Z4C2SucwC1w2xa260VxU+uIkP8FhwnZWDfY0rxyxecWxvkM7ULsIU9szoUYUJvLJnpxRi4Xb6rXNPxXyzis9Q==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.0.4.tgz", + "integrity": "sha512-scUMBHlOmW0hpjltn4UCihJZvz3ysDYIW35ma9p9Lso2D9qKjsZpojQ6mc75FVWz53T0BjUmLW8LHA86Jic6MQ==", "requires": { - "@pixi/display": "5.3.8" + "@pixi/display": "6.0.4" } }, "@pixi/mixin-get-global-position": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.8.tgz", - "integrity": "sha512-o2ZKmTxDvoibGBZ8LP3qJZ3cHe7L447qsuHPPLYOPmA5hqG49YchwmKMwV6tn96C8yDECaVn429Hu5hZEI7UlA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.0.4.tgz", + "integrity": "sha512-HzaFTMZEZTr6+WYuT9crTjjBYl7/Y/VDB7pWmjnntEdQsa1m0+by7Mnl67L6OSUPsAgW3MMlWirb5tL2zGFC7g==", "requires": { - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8" + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4" } }, "@pixi/particles": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.3.8.tgz", - "integrity": "sha512-XAehJJ9SsLwlZF1Qkkir0ejPZ0YgCg8MbxzmrxBUbhH1NyHJLFm+K2S7Bp12FdR/hZwTENF7GMGVRH+o86u3hw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-6.0.4.tgz", + "integrity": "sha512-/57nd+icuPFMNc+SxeUqGoO8ZXEKu9u8h+UI856XF1Rc1jlXzGanGAbp43Llq2LphYqBI8YVftP0QXhewCVjjA==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/polyfill": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.3.8.tgz", - "integrity": "sha512-AIXfAjYD7dfP2C+TX3482YterwGE876amqmk6EzMZCI3vvsvDJUGT/Dx6lSOU5zbcUbJ9t3Ybz81xQYpaEhv/Q==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.0.4.tgz", + "integrity": "sha512-HM27pSl8iduFqUC4Waa9mt/gRKHi8Pr679it84+U4CwXmJ2lw9DL5dZuyU+QzCp2nPEVGMqx8Ig8c7WLUMvnWA==", "requires": { - "es6-promise-polyfill": "^1.2.0", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "promise-polyfill": "^8.2.0" } }, "@pixi/prepare": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.3.8.tgz", - "integrity": "sha512-DbYxQdziypsdQJaRKwdmODkIy2mQHETEFlVWou0XwVy+WB8VBlSnHZ57cVEY8l6Z0hJ93Vo4K6j5qIRi9MRjJA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.0.4.tgz", + "integrity": "sha512-BrOeKC6eZ+sdiqpefUMGXIt/VDiYDqPDP7XUCRmaI8rGTFT6ZAg/XJQENb9TsVen/4dUp+9/1u7HCFO1TEhaWQ==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/graphics": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/text": "5.3.8", - "@pixi/ticker": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/graphics": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/text": "6.0.4", + "@pixi/ticker": "6.0.4" } }, "@pixi/runner": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.3.8.tgz", - "integrity": "sha512-6Y9v9OHd5FFv6s0M4AGHnG3qvLiTBM5T5RnlEqMNMsqH6CWSDq0mNJA5HQD65q5ViK8HM6MYPm2nwwkYq5AICQ==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.0.4.tgz", + "integrity": "sha512-ta6r36r2vC+fPB27URpSacPGQDtbJbdUoeGCJWAEwX+QI4vx4C9NYAcB0bIg8TLXiigCfA6by/RMnJ0dBiemFA==" }, "@pixi/settings": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.3.8.tgz", - "integrity": "sha512-/NSd9v6+IbG3GjzIoNwy7rgPg6kwwWy54pcaiM3Wv3zjkwhkVySK4m3h892Wa2z5lFvrHEH9zewGJwEpUH/FMA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.0.4.tgz", + "integrity": "sha512-djiIsmULDwcHWNmEiZKm4zyVopu1NL+fClnbBmtDkGZw7nm37y6dOcdpYawJcxvE4/KLm6pspBiRTnrzdlqW7Q==", "requires": { "ismobilejs": "^1.1.0" } }, "@pixi/sprite": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.3.8.tgz", - "integrity": "sha512-r+WeX5cti3VKu6U+hZeSiY4UC8912FjNU7M5bA/gev9CfUKv3fNwKYshPfzOkTPua8dFwI1U6tplYu5rSPMBmw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.0.4.tgz", + "integrity": "sha512-6yMoHmfFhSRERLM1PUXceq9e6e1UH0YJkLoPVLv6gxMunfk6jPXeO8p9dDS2FQ8ZMSkO/16BKq27HIMKvF6Cvg==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/sprite-animated": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.3.8.tgz", - "integrity": "sha512-zLnzmCJJ++Hyyy1LPh5Lt4icPuy8C+vL59yVj3nAYzqq/G26rFuHELexB0iwKBPE9yQYuaUQhFgOPgW4vFqLAw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.0.4.tgz", + "integrity": "sha512-uzNeJiZqcnuRc7HH/HdWxrkU7S3/D57rEGK+AuoaWEE2e2HlBWILGkf78mtqmeIrEChxe2qkOVkf4y3BZkzJVw==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/sprite": "5.3.8", - "@pixi/ticker": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/sprite": "6.0.4", + "@pixi/ticker": "6.0.4" } }, "@pixi/sprite-tiling": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.3.8.tgz", - "integrity": "sha512-SvCAvajihsaNx/xX4s6waEqPLVkI5W86h31kpoqdPj3zXhoLbpZh6t2TWbcRJmgjM1GvBNy14gWtelBq8UF7Mg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.0.4.tgz", + "integrity": "sha512-4TBsKMeGhwmfsVELorSs+zWWBih37Kd0lPQu0uhcHVV1RKtZxZpkgNoyzKS4d+WInNek5F0E592bYsXkbE6Gag==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/sprite": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/sprite": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/spritesheet": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.3.8.tgz", - "integrity": "sha512-KqTsW2LViI1UjZTycfI0x3m+yZqV8zfIm/CiDAmtujUPAu8sU78jzByc8ke7FaFC6waDsfAKTKu4fBqSu7aH1w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.0.4.tgz", + "integrity": "sha512-WgOBoi9KvLkHtfSyKSEzjIq6BkLwC+Ckllh+vWgfjfFDhtm7NdOfxW5WVIoCLfyfv5/NSwEMEEffZrcw4zYA/A==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/loaders": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/loaders": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/text": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/text/-/text-5.3.8.tgz", - "integrity": "sha512-qarv4kXSrtroJy5dbmF0Vld7L8teeQxsV5N1g1Fjhi4uUCb43ioR9euBHIjju33kOLDYYXXw6L78XIe/cW6nIw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.0.4.tgz", + "integrity": "sha512-r9UJg8ivWvvS7nNyBaZBKX5zg5UCU37dIYbKXcHyiXnOvXO22tiQBfkPBrZCueeLXRouC9sHmDFya8rb5TE9HA==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/sprite": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/sprite": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/text-bitmap": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.3.8.tgz", - "integrity": "sha512-jJVAc/y7Mo/DLw8n14A1AFmhQe8rw5d+vCg/1k4hw0Oru4l2QU/8AA940kPeuky4Sj0hMLf9UWAS6A3gOo5ZTA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.0.4.tgz", + "integrity": "sha512-Nh2PXixqF0LFJ0xwmTib2HVWdhgsHn+dSYMVIec8LndDFQMTBw+X2XP1iHjVm0xhqOVdZI+Qfb2Trc0j2lINrw==", "requires": { - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/loaders": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/mesh": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/text": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/loaders": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/mesh": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/text": "6.0.4", + "@pixi/utils": "6.0.4" } }, "@pixi/ticker": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.8.tgz", - "integrity": "sha512-WoVi8btR0X2/fXJgt/oRy2gm32ECnibqUkxl0MOcLuxg7cHDZKFA5PwNK/eIx5hZZ2xM/ztoPtEohWV6LqLryw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.0.4.tgz", + "integrity": "sha512-PkFfPP5vHlgnApLks0Ia0okmFu6KPqBdIyquDqHJAcBdgljedm32KS6K2EH37xelBOzYHScjZ2SQGiiebVfClw==", "requires": { - "@pixi/settings": "5.3.8" + "@pixi/settings": "6.0.4" } }, "@pixi/utils": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.8.tgz", - "integrity": "sha512-LljIFFOFcXLyLzXqIYwcXUqz6NsAUbwxb7Som9Gm3i1usGIqPRX4R08Iaf4L6OKA7417gSrRmbYdT0Hje/0ikA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.0.4.tgz", + "integrity": "sha512-35JTWsAJ8Va0vvtUSQvyOr3kGedGKVuJnHDO89B8C8tSFtMpJYrR44vp1b1p1vOjNak+ulGehZc8LzlCqymViQ==", "requires": { - "@pixi/constants": "5.3.8", - "@pixi/settings": "5.3.8", - "earcut": "^2.1.5", + "@pixi/constants": "6.0.4", + "@pixi/settings": "6.0.4", + "@types/earcut": "^2.1.0", + "earcut": "^2.2.2", "eventemitter3": "^3.1.0", "url": "^0.11.0" } }, + "@types/earcut": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.1.tgz", + "integrity": "sha512-w8oigUCDjElRHRRrMvn/spybSMyX8MTkKA5Dv+tS1IE/TgmNZPqUYtvYBXGY8cieSE66gm+szeK+bnbxC2xHTQ==" + }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", "dev": true }, "@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", + "version": "14.17.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz", + "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA==", "dev": true }, "@types/pako": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.1.tgz", - "integrity": "sha512-GdZbRSJ3Cv5fiwT6I0SQ3ckeN2PWNqxd26W9Z2fCK1tGrrasGy4puvNFtnddqH9UJFMQYXxEuuB7B8UK+LLwSg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.2.tgz", + "integrity": "sha512-8UJl2MjkqqS6ncpLZqRZ5LmGiFBkbYxocD4e4jmBqGvfRG1RS23gKsBQbdtV9O9GvRyjFTiRHRByjSlKCLlmZw==", "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz", - "integrity": "sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.3.tgz", + "integrity": "sha512-jW8sEFu1ZeaV8xzwsfi6Vgtty2jf7/lJmQmDkDruBjYAbx5DA8JtbcMnP0rNPUG+oH5GoQBTSp+9613BzuIpYg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.18.0", - "@typescript-eslint/scope-manager": "4.18.0", - "debug": "^4.1.1", + "@typescript-eslint/experimental-utils": "4.28.3", + "@typescript-eslint/scope-manager": "4.28.3", + "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.15", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, "@typescript-eslint/experimental-utils": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz", - "integrity": "sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz", + "integrity": "sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.18.0", - "@typescript-eslint/types": "4.18.0", - "@typescript-eslint/typescript-estree": "4.18.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.3", + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/typescript-estree": "4.28.3", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz", - "integrity": "sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.3.tgz", + "integrity": "sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.18.0", - "@typescript-eslint/types": "4.18.0", - "@typescript-eslint/typescript-estree": "4.18.0", - "debug": "^4.1.1" + "@typescript-eslint/scope-manager": "4.28.3", + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/typescript-estree": "4.28.3", + "debug": "^4.3.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz", - "integrity": "sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz", + "integrity": "sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.18.0", - "@typescript-eslint/visitor-keys": "4.18.0" + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/visitor-keys": "4.28.3" } }, "@typescript-eslint/types": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz", - "integrity": "sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.3.tgz", + "integrity": "sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz", - "integrity": "sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz", + "integrity": "sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.18.0", - "@typescript-eslint/visitor-keys": "4.18.0", - "debug": "^4.1.1", - "globby": "^11.0.1", + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/visitor-keys": "4.28.3", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, "@typescript-eslint/visitor-keys": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz", - "integrity": "sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==", + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz", + "integrity": "sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/types": "4.28.3", "eslint-visitor-keys": "^2.0.0" } }, @@ -550,9 +609,9 @@ "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, "ajv": { @@ -838,9 +897,9 @@ } }, "earcut": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", - "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz", + "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" }, "emoji-regex": { "version": "8.0.0", @@ -857,11 +916,6 @@ "ansi-colors": "^4.1.1" } }, - "es6-promise-polyfill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz", - "integrity": "sha1-84kl8jyz4+jObNqP93T867sJDN4=" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -869,13 +923,14 @@ "dev": true }, "eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz", + "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -921,6 +976,23 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -940,26 +1012,18 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "eslint-visitor-keys": "^2.0.0" } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { @@ -1123,9 +1187,9 @@ } }, "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", "dev": true }, "fs.realpath": { @@ -1170,18 +1234,18 @@ } }, "globals": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", - "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -1330,12 +1394,6 @@ "p-locate": "^4.1.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -1537,44 +1595,45 @@ "dev": true }, "pixi.js": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.3.8.tgz", - "integrity": "sha512-kDqkWhuAkc42lD+ldVTaS439q7D7uo9FM/wCP26jUNAFlYAp75IcALEgXuBh6HEjp51enGkRvwX9+fIiA5F9ug==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-6.0.4.tgz", + "integrity": "sha512-zAlwr5x9xytaflmZiZWl/ZhlSf+lZzeJG+Hexa7Buf7cvEhHPfSITy4NNk0+qnMXKooQidikBmypShDsj2jAdg==", "requires": { - "@pixi/accessibility": "5.3.8", - "@pixi/app": "5.3.8", - "@pixi/constants": "5.3.8", - "@pixi/core": "5.3.8", - "@pixi/display": "5.3.8", - "@pixi/extract": "5.3.8", - "@pixi/filter-alpha": "5.3.8", - "@pixi/filter-blur": "5.3.8", - "@pixi/filter-color-matrix": "5.3.8", - "@pixi/filter-displacement": "5.3.8", - "@pixi/filter-fxaa": "5.3.8", - "@pixi/filter-noise": "5.3.8", - "@pixi/graphics": "5.3.8", - "@pixi/interaction": "5.3.8", - "@pixi/loaders": "5.3.8", - "@pixi/math": "5.3.8", - "@pixi/mesh": "5.3.8", - "@pixi/mesh-extras": "5.3.8", - "@pixi/mixin-cache-as-bitmap": "5.3.8", - "@pixi/mixin-get-child-by-name": "5.3.8", - "@pixi/mixin-get-global-position": "5.3.8", - "@pixi/particles": "5.3.8", - "@pixi/polyfill": "5.3.8", - "@pixi/prepare": "5.3.8", - "@pixi/runner": "5.3.8", - "@pixi/settings": "5.3.8", - "@pixi/sprite": "5.3.8", - "@pixi/sprite-animated": "5.3.8", - "@pixi/sprite-tiling": "5.3.8", - "@pixi/spritesheet": "5.3.8", - "@pixi/text": "5.3.8", - "@pixi/text-bitmap": "5.3.8", - "@pixi/ticker": "5.3.8", - "@pixi/utils": "5.3.8" + "@pixi/accessibility": "6.0.4", + "@pixi/app": "6.0.4", + "@pixi/compressed-textures": "6.0.4", + "@pixi/constants": "6.0.4", + "@pixi/core": "6.0.4", + "@pixi/display": "6.0.4", + "@pixi/extract": "6.0.4", + "@pixi/filter-alpha": "6.0.4", + "@pixi/filter-blur": "6.0.4", + "@pixi/filter-color-matrix": "6.0.4", + "@pixi/filter-displacement": "6.0.4", + "@pixi/filter-fxaa": "6.0.4", + "@pixi/filter-noise": "6.0.4", + "@pixi/graphics": "6.0.4", + "@pixi/interaction": "6.0.4", + "@pixi/loaders": "6.0.4", + "@pixi/math": "6.0.4", + "@pixi/mesh": "6.0.4", + "@pixi/mesh-extras": "6.0.4", + "@pixi/mixin-cache-as-bitmap": "6.0.4", + "@pixi/mixin-get-child-by-name": "6.0.4", + "@pixi/mixin-get-global-position": "6.0.4", + "@pixi/particles": "6.0.4", + "@pixi/polyfill": "6.0.4", + "@pixi/prepare": "6.0.4", + "@pixi/runner": "6.0.4", + "@pixi/settings": "6.0.4", + "@pixi/sprite": "6.0.4", + "@pixi/sprite-animated": "6.0.4", + "@pixi/sprite-tiling": "6.0.4", + "@pixi/spritesheet": "6.0.4", + "@pixi/text": "6.0.4", + "@pixi/text-bitmap": "6.0.4", + "@pixi/ticker": "6.0.4", + "@pixi/utils": "6.0.4" } }, "prelude-ls": { @@ -1589,6 +1648,11 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "promise-polyfill": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz", + "integrity": "sha512-k/TC0mIcPVF6yHhUvwAp7cvL6I2fFV7TzF1DuGPI8mBh4QQazf36xCKEHKTZKRysEoTQoQdKyP25J8MPJp7j5g==" + }, "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", @@ -1606,9 +1670,9 @@ "dev": true }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "require-directory": { @@ -1635,15 +1699,6 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resource-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz", - "integrity": "sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA==", - "requires": { - "mini-signals": "^1.2.0", - "parse-uri": "^1.0.0" - } - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -1674,9 +1729,9 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -1802,9 +1857,9 @@ }, "dependencies": { "ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz", + "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1837,9 +1892,9 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "tsutils": { "version": "3.21.0", @@ -1874,9 +1929,9 @@ "dev": true }, "typescript": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", - "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true }, "uri-js": { diff --git a/package.json b/package.json index a2d7a73a..b1c54dde 100644 --- a/package.json +++ b/package.json @@ -6,20 +6,20 @@ }, "private": true, "dependencies": { - "@pixi/filter-adjustment": "^3.1.1", + "@pixi/filter-adjustment": "^4.1.3", "events": "^3.3.0", "pako": "^2.0.3", - "pixi.js": "^5.3.3", - "tslib": "^2.0.0", + "pixi.js": "^6.0.4", + "tslib": "^2.3.0", "xml2js": "^0.4.23" }, "devDependencies": { - "@types/node": "^14.14.35", - "@types/pako": "^1.0.1", - "@typescript-eslint/eslint-plugin": "^4.15.0", - "@typescript-eslint/parser": "^4.15.0", + "@types/node": "^14.17.5", + "@types/pako": "^1.0.2", + "@typescript-eslint/eslint-plugin": "^4.28.3", + "@typescript-eslint/parser": "^4.28.3", "create-ts-index": "^1.13.6", - "eslint": "^7.29.0", - "typescript": "~4.2.3" + "eslint": "^7.30.0", + "typescript": "^4.3.5" } } diff --git a/src/core/asset/AssetManager.ts b/src/core/asset/AssetManager.ts index 8b0ec9cb..7bf6d22d 100644 --- a/src/core/asset/AssetManager.ts +++ b/src/core/asset/AssetManager.ts @@ -1,4 +1,4 @@ -import { BaseTexture, ILoaderOptions, Loader, LoaderResource, Spritesheet, Texture } from 'pixi.js'; +import { BaseTexture, ILoaderResource, Loader, LoaderResource, Spritesheet, Texture } from 'pixi.js'; import { GraphicAssetCollection } from '../../room/object/visualization/utils/GraphicAssetCollection'; import { IGraphicAsset } from '../../room/object/visualization/utils/IGraphicAsset'; import { IGraphicAssetCollection } from '../../room/object/visualization/utils/IGraphicAssetCollection'; @@ -13,8 +13,7 @@ export class AssetManager extends Disposable implements IAssetManager { private _logger: INitroLogger; private _textures: Map; - private _collections: Map; - private _pendingUrls: Map; + private _collections: Map; constructor() { @@ -23,7 +22,6 @@ export class AssetManager extends Disposable implements IAssetManager this._logger = new NitroLogger(this.constructor.name); this._textures = new Map(); this._collections = new Map(); - this._pendingUrls = new Map(); } public static removeFileExtension(name: string): string @@ -90,6 +88,8 @@ export class AssetManager extends Disposable implements IAssetManager this._collections.set(collection.name, collection); } + + return collection; } public downloadAsset(assetUrl: string, cb: Function): boolean @@ -110,7 +110,7 @@ export class AssetManager extends Disposable implements IAssetManager let totalDownloaded = 0; - const onDownloaded = (loader: Loader, resource: LoaderResource, flag: boolean) => + const onDownloaded = (loader: Loader, resource: ILoaderResource, flag: boolean) => { if(loader) loader.destroy(); @@ -134,21 +134,25 @@ export class AssetManager extends Disposable implements IAssetManager const loader = new Loader(); - const options: ILoaderOptions = { - crossOrigin: false, - xhrType: url.endsWith('.nitro') ? 'arraybuffer' : 'json' - }; - loader - .use((resource: LoaderResource, next: Function) => this.assetLoader(loader, resource, next, onDownloaded)) - .add(url, options) + .add({ + url, + crossOrigin: 'anonymous', + xhrType: url.endsWith('.nitro') ? LoaderResource.XHR_RESPONSE_TYPE.BUFFER : LoaderResource.XHR_RESPONSE_TYPE.JSON + }) + .use((resource: ILoaderResource, next: Function) => + { + this.assetLoader(loader, resource, onDownloaded); + + next(); + }) .load(); } return true; } - private assetLoader(loader: Loader, resource: LoaderResource, next: Function, onDownloaded: Function): void + private assetLoader(loader: Loader, resource: ILoaderResource, onDownloaded: Function): void { if(!resource || resource.error) { @@ -186,7 +190,7 @@ export class AssetManager extends Disposable implements IAssetManager { const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -201,7 +205,7 @@ export class AssetManager extends Disposable implements IAssetManager const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -254,7 +258,7 @@ export class AssetManager extends Disposable implements IAssetManager { const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -269,7 +273,7 @@ export class AssetManager extends Disposable implements IAssetManager const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -312,7 +316,7 @@ export class AssetManager extends Disposable implements IAssetManager } } - public get collections(): Map + public get collections(): Map { return this._collections; } diff --git a/src/core/asset/IAssetManager.ts b/src/core/asset/IAssetManager.ts index 7745c71d..4bd63332 100644 --- a/src/core/asset/IAssetManager.ts +++ b/src/core/asset/IAssetManager.ts @@ -1,6 +1,5 @@ import { Spritesheet, Texture } from 'pixi.js'; -import { GraphicAssetCollection } from '../../room/object/visualization/utils/GraphicAssetCollection'; import { IGraphicAsset } from '../../room/object/visualization/utils/IGraphicAsset'; import { IGraphicAssetCollection } from '../../room/object/visualization/utils/IGraphicAssetCollection'; import { IAssetData } from './interfaces'; @@ -15,5 +14,5 @@ export interface IAssetManager createCollection(data: IAssetData, spritesheet: Spritesheet): IGraphicAssetCollection; downloadAssets(urls: string[], cb: Function): void; downloadAsset(url: string, cb: Function): void; - collections: Map; -} \ No newline at end of file + collections: Map; +} diff --git a/src/core/asset/interfaces/IAssetData.ts b/src/core/asset/interfaces/IAssetData.ts index 2af33ca5..0e5003ec 100644 --- a/src/core/asset/interfaces/IAssetData.ts +++ b/src/core/asset/interfaces/IAssetData.ts @@ -3,7 +3,7 @@ import { IAsset } from './IAsset'; import { IAssetAlias } from './IAssetAlias'; import { IAssetDimension } from './IAssetDimension'; import { IAssetPalette } from './IAssetPalette'; -import { ISpritesheetData } from './spritesheet'; +import { ISpritesheet } from './spritesheet'; import { IAssetVisualizationData } from './visualization'; export interface IAssetData { @@ -15,7 +15,7 @@ export interface IAssetData { credits?: string; soundSample?: number; action?: { link?: string, startState?: number }; - spritesheet?: ISpritesheetData; + spritesheet?: ISpritesheet; dimensions?: IAssetDimension; directions?: number[]; assets?: { [index: string]: IAsset }; diff --git a/src/core/asset/interfaces/spritesheet/ISpritesheet.ts b/src/core/asset/interfaces/spritesheet/ISpritesheet.ts new file mode 100644 index 00000000..ff1900a8 --- /dev/null +++ b/src/core/asset/interfaces/spritesheet/ISpritesheet.ts @@ -0,0 +1,7 @@ +import { ISpritesheetData } from '@pixi/spritesheet'; +import { ISpritesheetMeta } from './ISpritesheetMeta'; + +export interface ISpritesheet extends ISpritesheetData +{ + meta: ISpritesheetMeta; +} diff --git a/src/core/asset/interfaces/spritesheet/ISpritesheetData.ts b/src/core/asset/interfaces/spritesheet/ISpritesheetData.ts deleted file mode 100644 index 24389cc7..00000000 --- a/src/core/asset/interfaces/spritesheet/ISpritesheetData.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ISpritesheetFrame } from './ISpritesheetFrame'; -import { ISpritesheetMeta } from './ISpritesheetMeta'; - -export interface ISpritesheetData -{ - meta?: ISpritesheetMeta; - frames?: { [index: string]: ISpritesheetFrame }; -} diff --git a/src/core/asset/interfaces/spritesheet/ISpritesheetFrame.ts b/src/core/asset/interfaces/spritesheet/ISpritesheetFrame.ts deleted file mode 100644 index 0833b502..00000000 --- a/src/core/asset/interfaces/spritesheet/ISpritesheetFrame.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface ISpritesheetFrame -{ - frame: { - x: number; - y: number; - w: number; - h: number; - }; - rotated: boolean; - trimmed: boolean; - spriteSourceSize: { - x: number; - y: number; - w: number; - h: number; - }; - sourceSize: { - w: number; - h: number; - }; - pivot: { - x: number; - y: number; - }; -} diff --git a/src/core/asset/interfaces/spritesheet/index.ts b/src/core/asset/interfaces/spritesheet/index.ts index 9c94e8ba..e3f8d384 100644 --- a/src/core/asset/interfaces/spritesheet/index.ts +++ b/src/core/asset/interfaces/spritesheet/index.ts @@ -1,3 +1,2 @@ -export * from './ISpritesheetData'; -export * from './ISpritesheetFrame'; +export * from './ISpritesheet'; export * from './ISpritesheetMeta'; diff --git a/src/nitro/Nitro.ts b/src/nitro/Nitro.ts index 3b0f6119..4715385d 100644 --- a/src/nitro/Nitro.ts +++ b/src/nitro/Nitro.ts @@ -1,4 +1,4 @@ -import { Application, SCALE_MODES, settings } from 'pixi.js'; +import { Application, IApplicationOptions, SCALE_MODES, settings } from 'pixi.js'; import { INitroManager } from '..'; import { ConfigurationEvent } from '../core/configuration/ConfigurationEvent'; import { EventDispatcher } from '../core/events/EventDispatcher'; @@ -34,7 +34,6 @@ import { HabboWebTools } from './utils/HabboWebTools'; LegacyExternalInterface.available; -settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT = false; settings.SCALE_MODE = SCALE_MODES.NEAREST; settings.ROUND_PIXELS = true; @@ -42,10 +41,10 @@ export class Nitro extends Application implements INitro { public static WEBGL_CONTEXT_LOST: string = 'NE_WEBGL_CONTEXT_LOST'; public static WEBGL_UNAVAILABLE: string = 'NE_WEBGL_UNAVAILABLE'; - public static RELEASE_VERSION: string = 'NITRO-0-4-0'; + public static RELEASE_VERSION: string = 'NITRO-2-0-0'; public static READY: string = 'NE_READY'; - private static INSTANCE: INitro = null; + private static INSTANCE: INitro = null; private _nitroTimer: NitroTimer; private _worker: Worker; @@ -66,24 +65,7 @@ export class Nitro extends Application implements INitro private _isReady: boolean; private _isDisposed: boolean; - constructor(core: INitroCore, options?: { - autoStart?: boolean; - width?: number; - height?: number; - view?: HTMLCanvasElement; - transparent?: boolean; - autoDensity?: boolean; - antialias?: boolean; - preserveDrawingBuffer?: boolean; - resolution?: number; - forceCanvas?: boolean; - backgroundColor?: number; - clearBeforeRender?: boolean; - powerPreference?: string; - sharedTicker?: boolean; - sharedLoader?: boolean; - resizeTo?: Window | HTMLElement; - }) + constructor(core: INitroCore, options?: IApplicationOptions) { super(options); @@ -129,7 +111,6 @@ export class Nitro extends Application implements INitro canvas.className = 'client-canvas'; const instance = new this(new NitroCore(), { - transparent: true, autoDensity: true, resolution: window.devicePixelRatio, width: window.innerWidth, diff --git a/src/nitro/avatar/AvatarImage.ts b/src/nitro/avatar/AvatarImage.ts index 79f12228..96e695fd 100644 --- a/src/nitro/avatar/AvatarImage.ts +++ b/src/nitro/avatar/AvatarImage.ts @@ -395,7 +395,10 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener if(this._reusableTexture) { - Nitro.instance.renderer.render(container, this._reusableTexture, true); + Nitro.instance.renderer.render(container, { + renderTexture: this._reusableTexture, + clear: true + }); } else { @@ -568,7 +571,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener partCount--; } - const image = Nitro.instance.renderer.extract.image(container); + const image = TextureUtils.generateImage(container); if(!image) return null; diff --git a/src/nitro/camera/IRoomCameraWidgetEffect.ts b/src/nitro/camera/IRoomCameraWidgetEffect.ts index e408a24a..c6c37afc 100644 --- a/src/nitro/camera/IRoomCameraWidgetEffect.ts +++ b/src/nitro/camera/IRoomCameraWidgetEffect.ts @@ -1,3 +1,4 @@ +import { ColorMatrix } from '@pixi/filter-color-matrix'; import { Texture } from 'pixi.js'; export interface IRoomCameraWidgetEffect @@ -5,6 +6,6 @@ export interface IRoomCameraWidgetEffect name: string; minLevel: number; texture: Texture; - colorMatrix: number[]; + colorMatrix: ColorMatrix; blendMode: number; } diff --git a/src/nitro/camera/RoomCameraWidgetEffect.ts b/src/nitro/camera/RoomCameraWidgetEffect.ts index e081b689..2209a619 100644 --- a/src/nitro/camera/RoomCameraWidgetEffect.ts +++ b/src/nitro/camera/RoomCameraWidgetEffect.ts @@ -1,3 +1,4 @@ +import { ColorMatrix } from '@pixi/filter-color-matrix'; import { Texture } from 'pixi.js'; import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect'; @@ -6,10 +7,10 @@ export class RoomCameraWidgetEffect implements IRoomCameraWidgetEffect private _name: string; private _minLevel: number = -1; private _texture: Texture = null; - private _colorMatrix: number[] = null; + private _colorMatrix: ColorMatrix = null; private _blendMode: number = null; - constructor(name: string, minLevel: number = -1, texture: Texture = null, colorMatrix: number[] = null, blendMode: number = null) + constructor(name: string, minLevel: number = -1, texture: Texture = null, colorMatrix: ColorMatrix = null, blendMode: number = null) { this._name = name; this._minLevel = minLevel; @@ -33,12 +34,12 @@ export class RoomCameraWidgetEffect implements IRoomCameraWidgetEffect this._texture = texture; } - public get colorMatrix(): number[] + public get colorMatrix(): ColorMatrix { return this._colorMatrix; } - public set colorMatrix(colorMatrix: number[]) + public set colorMatrix(colorMatrix: ColorMatrix) { this._colorMatrix = colorMatrix; } diff --git a/src/nitro/camera/RoomCameraWidgetManager.ts b/src/nitro/camera/RoomCameraWidgetManager.ts index 92b938c4..ce95bf58 100644 --- a/src/nitro/camera/RoomCameraWidgetManager.ts +++ b/src/nitro/camera/RoomCameraWidgetManager.ts @@ -1,3 +1,4 @@ +import { ColorMatrix } from '@pixi/filter-color-matrix'; import { Container, filters, Sprite, Texture } from 'pixi.js'; import { EventDispatcher, IEventDispatcher } from '../../core'; import { TextureUtils } from '../../room'; @@ -28,7 +29,7 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager this._isLoaded = true; const imagesUrl = Nitro.instance.getConfiguration('image.library.url') + 'Habbo-Stories/'; - const effects = Nitro.instance.getConfiguration<{ name: string, colorMatrix?: number[], minLevel: number, blendMode?: number, enabled: boolean }[]>('camera.available.effects'); + const effects = Nitro.instance.getConfiguration<{ name: string, colorMatrix?: ColorMatrix, minLevel: number, blendMode?: number, enabled: boolean }[]>('camera.available.effects'); for(const effect of effects) { diff --git a/src/nitro/room/RoomContentLoader.ts b/src/nitro/room/RoomContentLoader.ts index 96893aec..dde2c370 100644 --- a/src/nitro/room/RoomContentLoader.ts +++ b/src/nitro/room/RoomContentLoader.ts @@ -1,4 +1,4 @@ -import { BaseTexture, ILoaderOptions, Loader, LoaderResource, Spritesheet, Texture } from 'pixi.js'; +import { BaseTexture, ILoaderResource, Loader, LoaderResource, Spritesheet, Texture } from 'pixi.js'; import { IAssetData } from '../../core/asset/interfaces'; import { NitroBundle } from '../../core/asset/NitroBundle'; import { INitroLogger } from '../../core/common/logger/INitroLogger'; @@ -483,7 +483,7 @@ export class RoomContentLoader implements IFurnitureDataListener const totalToDownload = assetUrls.length; let totalDownloaded = 0; - const onDownloaded = (loader: Loader, resource: LoaderResource, flag: boolean) => + const onDownloaded = (loader: Loader, resource: ILoaderResource, flag: boolean) => { if(loader) loader.destroy(); @@ -514,21 +514,25 @@ export class RoomContentLoader implements IFurnitureDataListener const loader = new Loader(); - const options: ILoaderOptions = { - crossOrigin: false, - xhrType: url.endsWith('.nitro') ? 'arraybuffer' : 'json' - }; - loader - .use((resource: LoaderResource, next: Function) => this.assetLoader(loader, resource, next, onDownloaded)) - .add(url, options) + .add({ + url, + crossOrigin: 'anonymous', + xhrType: url.endsWith('.nitro') ? LoaderResource.XHR_RESPONSE_TYPE.BUFFER : LoaderResource.XHR_RESPONSE_TYPE.JSON + }) + .use((resource: ILoaderResource, next: Function) => + { + this.assetLoader(loader, resource, onDownloaded); + + next(); + }) .load(); } return true; } - private assetLoader(loader: Loader, resource: LoaderResource, next: Function, onDownloaded: Function): void + private assetLoader(loader: Loader, resource: ILoaderResource, onDownloaded: Function): void { if(!resource || resource.error) { @@ -566,7 +570,7 @@ export class RoomContentLoader implements IFurnitureDataListener { const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -581,7 +585,7 @@ export class RoomContentLoader implements IFurnitureDataListener const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -634,7 +638,7 @@ export class RoomContentLoader implements IFurnitureDataListener { const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); @@ -649,7 +653,7 @@ export class RoomContentLoader implements IFurnitureDataListener const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet); - spritesheet.parse(textures => + spritesheet.parse(() => { this.createCollection(assetData, spritesheet); diff --git a/src/nitro/room/RoomEngine.ts b/src/nitro/room/RoomEngine.ts index 92192309..40ac3c0b 100644 --- a/src/nitro/room/RoomEngine.ts +++ b/src/nitro/room/RoomEngine.ts @@ -1829,7 +1829,7 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato if(icon) { - const image = Nitro.instance.renderer.extract.image(icon); + const image = TextureUtils.generateImage(icon); if(this.events) { @@ -1874,7 +1874,7 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato if(icon) { - const image = Nitro.instance.renderer.extract.image(icon); + const image = TextureUtils.generateImage(icon); if(this.events) { diff --git a/src/nitro/room/object/visualization/room/RoomPlane.ts b/src/nitro/room/object/visualization/room/RoomPlane.ts index 0ec9413a..e66e15ed 100644 --- a/src/nitro/room/object/visualization/room/RoomPlane.ts +++ b/src/nitro/room/object/visualization/room/RoomPlane.ts @@ -4,7 +4,6 @@ import { IRoomGeometry } from '../../../../../room/utils/IRoomGeometry'; import { IVector3D } from '../../../../../room/utils/IVector3D'; import { TextureUtils } from '../../../../../room/utils/TextureUtils'; import { Vector3d } from '../../../../../room/utils/Vector3d'; -import { Nitro } from '../../../../Nitro'; import { PlaneMaskManager } from './mask/PlaneMaskManager'; import { PlaneDrawingData } from './PlaneDrawingData'; import { PlaneVisualizationLayer } from './rasterizer/basic/PlaneVisualizationLayer'; @@ -987,8 +986,8 @@ export class RoomPlane implements IRoomPlane { if(!texture || !mask) return; - const maskCanvas = Nitro.instance.renderer.extract.canvas(mask); - const textureCanvas = Nitro.instance.renderer.extract.canvas(texture); + const maskCanvas = TextureUtils.generateCanvas(mask); + const textureCanvas = TextureUtils.generateCanvas(texture); const textureCtx = textureCanvas.getContext('2d'); textureCtx.drawImage(maskCanvas, 0, 0); diff --git a/src/room/floorplan/pixi-tilemap/CanvasTileRenderer.ts b/src/room/floorplan/pixi-tilemap/CanvasTileRenderer.ts index 031940a5..8d490134 100644 --- a/src/room/floorplan/pixi-tilemap/CanvasTileRenderer.ts +++ b/src/room/floorplan/pixi-tilemap/CanvasTileRenderer.ts @@ -1,21 +1,22 @@ -import * as PIXI from 'pixi.js'; -window.PIXI = PIXI; +import { CanvasRenderer } from '@pixi/canvas-renderer'; +import { IRendererPlugin } from '@pixi/core'; -export class CanvasTileRenderer +export class CanvasTileRenderer implements IRendererPlugin { - renderer: PIXI.Renderer; + renderer: CanvasRenderer; tileAnim = [0, 0]; dontUseTransform = false; - constructor(renderer: PIXI.Renderer) + constructor(renderer: CanvasRenderer, options: any = null) { this.renderer = renderer; this.tileAnim = [0, 0]; } + + public destroy(): void + { + + } } -const cr = (window.PIXI as any).CanvasRenderer; -if(cr) -{ - console.warn('REGISTER'); - cr.registerPlugin('tilemap', CanvasTileRenderer); -} + +CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer); diff --git a/src/room/floorplan/pixi-tilemap/CompositeRectTileLayer.ts b/src/room/floorplan/pixi-tilemap/CompositeRectTileLayer.ts index 163741c6..19a6146c 100644 --- a/src/room/floorplan/pixi-tilemap/CompositeRectTileLayer.ts +++ b/src/room/floorplan/pixi-tilemap/CompositeRectTileLayer.ts @@ -12,7 +12,6 @@ export class CompositeRectTileLayer extends Container } z: number; - zIndex: number; modificationMarker = 0; shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]); _globalMat: Matrix = null; diff --git a/src/room/floorplan/pixi-tilemap/MultiTextureResource.ts b/src/room/floorplan/pixi-tilemap/MultiTextureResource.ts index 19e26afb..b35e2165 100644 --- a/src/room/floorplan/pixi-tilemap/MultiTextureResource.ts +++ b/src/room/floorplan/pixi-tilemap/MultiTextureResource.ts @@ -1,5 +1,4 @@ -import { resources } from '@pixi/core'; -import { BaseTexture, Sprite, Texture } from 'pixi.js'; +import { BaseTexture, GLTexture, IAutoDetectOptions, Renderer, Resource, Sprite, Texture } from 'pixi.js'; export interface IMultiTextureOptions { boundCountPerBuffer: number; @@ -8,7 +7,7 @@ export interface IMultiTextureOptions { DO_CLEAR?: boolean; } -export class MultiTextureResource extends resources.Resource +export class MultiTextureResource extends Resource { constructor(options: IMultiTextureOptions) { @@ -58,4 +57,10 @@ export class MultiTextureResource extends resources.Resource this.dirties[ind] = (this.baseTex as any).dirtyId; } + // required ??? + public upload(renderer: Renderer, baseTexture: BaseTexture, glTexture: GLTexture): boolean + { + return false; + } + } diff --git a/src/room/floorplan/pixi-tilemap/RectTileLayer.ts b/src/room/floorplan/pixi-tilemap/RectTileLayer.ts index ad6e2bda..da61e7b9 100644 --- a/src/room/floorplan/pixi-tilemap/RectTileLayer.ts +++ b/src/room/floorplan/pixi-tilemap/RectTileLayer.ts @@ -1,4 +1,4 @@ -import { Container, DRAW_MODES, groupD8, Matrix, Renderer, Texture } from 'pixi.js'; +import { Bounds, Container, DRAW_MODES, groupD8, Matrix, Rectangle, Renderer, Texture } from 'pixi.js'; import { Constant } from './Constant'; import { RectTileGeom } from './RectTileShader'; import { TileRenderer } from './TileRenderer'; @@ -30,9 +30,9 @@ export class RectTileLayer extends Container this.initialize(zIndex, texture); } - zIndex = 0; + //zIndex = 0; modificationMarker = 0; - _$_localBounds = new PIXI.Bounds(); + _$_localBounds = new Bounds(); shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]); _globalMat: Matrix = null; @@ -472,7 +472,7 @@ export class RectTileLayer extends Container this._bounds.addFrame(this.transform, minX, minY, maxX, maxY); } - public getLocalBounds(rect?: PIXI.Rectangle): PIXI.Rectangle + public getLocalBounds(rect?: Rectangle): Rectangle { // we can do a fast local bounds if the sprite has no children! if(this.children.length === 0) diff --git a/src/room/floorplan/pixi-tilemap/RectTileShader.ts b/src/room/floorplan/pixi-tilemap/RectTileShader.ts index 8dcf5123..2fd04a8c 100644 --- a/src/room/floorplan/pixi-tilemap/RectTileShader.ts +++ b/src/room/floorplan/pixi-tilemap/RectTileShader.ts @@ -1,4 +1,4 @@ -import { Buffer, Geometry, Matrix, Shader } from 'pixi.js'; +import { Buffer, Geometry, Matrix, Program, Shader } from 'pixi.js'; import * as shaderGenerator from './shaderGenerator'; const rectShaderFrag = ` @@ -58,7 +58,7 @@ export abstract class TilemapShader extends Shader constructor(maxTextures: number, shaderVert: string, shaderFrag: string) { super( - new PIXI.Program( + new Program( shaderVert, shaderFrag), { @@ -92,6 +92,7 @@ export class RectTileGeom extends Geometry vertPerQuad = 4; stride = this.vertSize * 4; lastTimeAccess = 0; + buf: Buffer; constructor() { @@ -105,6 +106,4 @@ export class RectTileGeom extends Geometry .addAttribute('aTextureId', buf, 0, false, 0, this.stride, 10 * 4) .addAttribute('aAlpha', buf, 0, false, 0, this.stride, 11 * 4); } - - buf: PIXI.Buffer; } diff --git a/src/room/floorplan/pixi-tilemap/TileRenderer.ts b/src/room/floorplan/pixi-tilemap/TileRenderer.ts index cb961e3e..5383e598 100644 --- a/src/room/floorplan/pixi-tilemap/TileRenderer.ts +++ b/src/room/floorplan/pixi-tilemap/TileRenderer.ts @@ -1,3 +1,4 @@ +import { createIndicesForQuads } from '@pixi/utils'; import { BaseTexture, Buffer, ObjectRenderer, Renderer, Texture, WRAP_MODES } from 'pixi.js'; import { Constant } from './Constant'; import { MultiTextureResource } from './MultiTextureResource'; @@ -12,7 +13,7 @@ export class TileRenderer extends ObjectRenderer renderer: Renderer; gl: WebGLRenderingContext; sn: number = -1; - indexBuffer: PIXI.Buffer = null; + indexBuffer: Buffer = null; ibLen: number = 0; tileAnim = [0, 0]; texLoc: Array = []; @@ -127,8 +128,7 @@ export class TileRenderer extends ObjectRenderer } this.ibLen = totalIndices; - this.indexBuffer.update((PIXI as any).utils.createIndicesForQuads(size, - Constant.use32bitIndex ? new Uint32Array(size * 6) : undefined)); + this.indexBuffer.update(createIndicesForQuads(size, Constant.use32bitIndex ? new Uint32Array(size * 6) : undefined)); // TODO: create new index buffer instead? // if (vb) { diff --git a/src/room/object/visualization/utils/GraphicAssetCollection.ts b/src/room/object/visualization/utils/GraphicAssetCollection.ts index 0b582a0b..7f0a4f19 100644 --- a/src/room/object/visualization/utils/GraphicAssetCollection.ts +++ b/src/room/object/visualization/utils/GraphicAssetCollection.ts @@ -1,4 +1,5 @@ -import { Spritesheet, Texture } from 'pixi.js'; +import { Dict } from '@pixi/utils'; +import { Resource, Spritesheet, Texture } from 'pixi.js'; import { AssetManager } from '../../../../core/asset/AssetManager'; import { IAsset, IAssetData, IAssetPalette } from '../../../../core/asset/interfaces'; import { Nitro } from '../../../../nitro/Nitro'; @@ -313,7 +314,7 @@ export class GraphicAssetCollection implements IGraphicAssetCollection return texture; } - private addLibraryAsset(textures: Texture[]): void + private addLibraryAsset(textures: Dict>): void { if(!textures) return; diff --git a/src/room/object/visualization/utils/GraphicAssetPalette.ts b/src/room/object/visualization/utils/GraphicAssetPalette.ts index 101d3001..29a1cc70 100644 --- a/src/room/object/visualization/utils/GraphicAssetPalette.ts +++ b/src/room/object/visualization/utils/GraphicAssetPalette.ts @@ -1,5 +1,5 @@ import { Sprite, Texture } from 'pixi.js'; -import { Nitro } from '../../../../nitro/Nitro'; +import { TextureUtils } from '../../../utils'; export class GraphicAssetPalette { @@ -25,7 +25,7 @@ export class GraphicAssetPalette public applyPalette(texture: Texture): Texture { const sprite = Sprite.from(texture); - const textureCanvas = Nitro.instance.renderer.extract.canvas(sprite); + const textureCanvas = TextureUtils.generateCanvas(sprite); const textureCtx = textureCanvas.getContext('2d'); const textureImageData = textureCtx.getImageData(0, 0, textureCanvas.width, textureCanvas.height); const data = textureImageData.data; diff --git a/src/room/renderer/RoomSpriteCanvas.ts b/src/room/renderer/RoomSpriteCanvas.ts index 79a1987a..5ca61f46 100644 --- a/src/room/renderer/RoomSpriteCanvas.ts +++ b/src/room/renderer/RoomSpriteCanvas.ts @@ -1014,7 +1014,11 @@ export class RoomSpriteCanvas implements IRoomRenderingCanvas height: this._display.height }); - Nitro.instance.renderer.render(this._display, renderTexture, true, new Matrix(1, 0, 0, 1, -(bounds.x), -(bounds.y))); + Nitro.instance.renderer.render(this._display, { + renderTexture, + clear: true, + transform: new Matrix(1, 0, 0, 1, -(bounds.x), -(bounds.y)) + }); this._noSpriteVisibilityChecking = false; this.setScale(k, null, null, true); diff --git a/src/room/renderer/utils/ExtendedSprite.ts b/src/room/renderer/utils/ExtendedSprite.ts index 658bba94..fd86fe9a 100644 --- a/src/room/renderer/utils/ExtendedSprite.ts +++ b/src/room/renderer/utils/ExtendedSprite.ts @@ -1,5 +1,5 @@ import { BaseTexture, BLEND_MODES, Point, RenderTexture, Sprite, Texture } from 'pixi.js'; -import { Nitro } from '../../../nitro/Nitro'; +import { TextureUtils } from '../../utils'; export class ExtendedSprite extends Sprite { @@ -95,13 +95,13 @@ export class ExtendedSprite extends Sprite { const tempSprite = Sprite.from(texture); - canvas = Nitro.instance.renderer.extract.canvas(tempSprite); + canvas = TextureUtils.generateCanvas(tempSprite); tempSprite.destroy(); } else { - canvas = Nitro.instance.renderer.extract.canvas(texture as RenderTexture); + canvas = TextureUtils.generateCanvas(texture as RenderTexture); } } diff --git a/src/room/utils/TextureUtils.ts b/src/room/utils/TextureUtils.ts index 08c1f940..9a86c11b 100644 --- a/src/room/utils/TextureUtils.ts +++ b/src/room/utils/TextureUtils.ts @@ -1,4 +1,5 @@ -import { DisplayObject, Rectangle, Renderer, RenderTexture, SCALE_MODES, Texture } from 'pixi.js'; +import { Extract } from '@pixi/extract'; +import { AbstractRenderer, DisplayObject, Rectangle, Renderer, RenderTexture, SCALE_MODES, Texture } from 'pixi.js'; import { Nitro } from '../../nitro/Nitro'; export class TextureUtils @@ -23,17 +24,30 @@ export class TextureUtils { if(!target) return null; - return TextureUtils.getRenderer().extract.image(target); + const extract = (TextureUtils.getRenderer().plugins.extract as Extract); + + return extract.image(target); } public static generateImageUrl(target: DisplayObject | RenderTexture): string { if(!target) return null; - return TextureUtils.getRenderer().extract.base64(target); + const extract = (TextureUtils.getRenderer().plugins.extract as Extract); + + return extract.base64(target); } - public static getRenderer(): Renderer + public static generateCanvas(target: DisplayObject | RenderTexture): HTMLCanvasElement + { + if(!target) return null; + + const extract = (TextureUtils.getRenderer().plugins.extract as Extract); + + return extract.canvas(target); + } + + public static getRenderer(): Renderer | AbstractRenderer { if(!TextureUtils._renderer) return Nitro.instance.renderer; diff --git a/tsconfig.json b/tsconfig.json index 71ddb774..38e3129e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "declaration": true, "experimentalDecorators": true, "moduleResolution": "node", + "esModuleInterop": true, "importHelpers": true, "resolveJsonModule": true, "allowSyntheticDefaultImports": true, @@ -15,6 +16,11 @@ "lib": [ "es2018", "dom" - ] + ], + "paths": { + "mini-signals": [ + "node_modules/resource-loader/typings/mini-signals.d.ts" + ] + }, } }