Skip to content
This repository was archived by the owner on Aug 21, 2024. It is now read-only.

Commit b3232b0

Browse files
committed
merge 'dev' into fix/tests/network-authority
2 parents fb64ae0 + 86031a3 commit b3232b0

File tree

430 files changed

+4640
-4037
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

430 files changed

+4640
-4037
lines changed

.eslintrc.cjs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module.exports = {
2+
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
3+
parser: '@typescript-eslint/parser',
4+
plugins: ['@typescript-eslint'],
5+
root: true,
6+
rules: {
7+
'@typescript-eslint/no-empty-function': 'off',
8+
// "@typescript-eslint/no-non-null-assertion": "warn",
9+
"@typescript-eslint/no-non-null-asserted-optional-chain": "warn",
10+
"@typescript-eslint/ban-ts-comment": "warn"
11+
},
12+
env: {
13+
"browser": true,
14+
"node": true
15+
}
16+
}

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# These are supported funding model platforms
22

3-
github: # etherealengine
3+
github: etherealengine
44
patreon: etherealengine
55
open_collective: etherealengine
66
ko_fi: # Replace with a single Ko-fi username

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"dbaeumer.vscode-eslint"
4+
]
5+
}

README.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,24 @@
44
55
## Table of Contents
66

7+
- [Table of Contents](#table-of-contents)
78
- [Background](#background)
8-
- [Demos](#demos)
9-
- [Install](#advanced-development-install)
9+
- [Demos](#demos)
10+
- [Project API](#project-api)
11+
- [Library of EE Projects](#library-of-ee-projects)
12+
- [Create your own projects](#create-your-own-projects)
13+
- [Launch Ethereal Engine with Control Center Install - ***RECOMMENDED***](#launch-ethereal-engine-with-control-center-install---recommended)
14+
- [Use Metaverse Control Plane Managment GUI](#use-metaverse-control-plane-managment-gui)
15+
- [Advanced Development Install](#advanced-development-install)
1016
- [Pre-Requisites](#pre-requisites)
1117
- [Getting Started](#getting-started)
12-
- [XRE XRModule](#xre-xrmodule)
1318
- [Usage](#usage)
19+
- [Documentation](#documentation)
1420
- [Contributing](#contributing)
1521
- [Let's build it together](#lets-build-it-together)
22+
- [Join our Discord ](#join-our-discord--)
23+
- [Sponsorship ](#sponsorship-)
1624
- [License](#license)
17-
- [Releases](https://github.com/etherealengine/etherealengine/releases)
18-
- [Roadmap](/ROADMAP.md)
1925

2026
## Background
2127

@@ -53,21 +59,15 @@ Guest Demos
5359
Host Demos
5460

5561
- [Admin Console - Demo Cluster - Request Demo Access on our Discord](https://demo.etherealengine.com/admin)
56-
- [XRModule Asset Editor - Demo Cluster - Request Demo Access on our Discord](https://demo.etherealengine.com/editor)
62+
- [Ethereal Studio - Demo Cluster - Request Demo Access on our Discord](https://demo.etherealengine.com/studio)
5763

58-
## XRModule
64+
## Project API
5965

60-
### [Library of XRModules](https://github.com/etherealengine?q=project)
66+
### [Library of EE Projects](https://github.com/EtherealEngine/project-manifest)
6167

62-
Create composable plug-ins for Ethereal Engine scenes with XRModule Projects
68+
Create composable plug-ins for Ethereal Engine experiences with the Projects API
6369

64-
### [Create XRModule Projects](https://etherealengine.github.io/etherealengine-docs/docs/concepts/projects_api)
65-
66-
XRModules are folders that contain all your custom code, assets and scenes. They are version controlled using git & github, and can be installed to any deployment with a single click. (more on that in the next chapter)
67-
68-
Pictured below is an example of 4 projects installed. By default, only the default-project is installed, which in a production environment is read only. You can find the default project under /packages/projects/default-project/
69-
70-
In a production environment, the builder process will install all projects according to the project database table and will download files from the storage provider. In a local development environment, the local file system is always the source of truth. Any project folders added or removed from the file system will be automatically added or removed from the database. This is to ensure there is no accidental loss of data, as these project folders are all git repositories.
70+
### [Create your own projects](https://etherealengine.github.io/etherealengine-docs/docs/concepts/projects_api)
7171

7272
## Launch Ethereal Engine with Control Center Install - ***RECOMMENDED***
7373

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,11 @@
117117
"@types/cli": "0.11.21",
118118
"@types/mocha": "10.0.0",
119119
"@types/pino": "^7.0.5",
120+
"@typescript-eslint/eslint-plugin": "5.47.0",
121+
"@typescript-eslint/parser": "5.47.0",
120122
"concurrently": "7.1.0",
121123
"depcheck": "1.4.3",
124+
"eslint": "8.30.0",
122125
"jsdom": "^20.0.2",
123126
"kill-port": "1.6.1",
124127
"lint-staged": "12.3.7",
@@ -133,8 +136,7 @@
133136
"stylelint": "^14.6.1",
134137
"stylelint-config-standard-scss": "^3.0.0",
135138
"stylelint-scss": "^4.2.0",
136-
"supertest": "6.2.2",
137-
"trace-unhandled": "2.0.1"
139+
"supertest": "6.2.2"
138140
},
139141
"dependencies": {
140142
"@feathersjs/commons": "5.0.0-pre.29",

packages/client-core/i18n/en/editor.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@
258258
"lbl-receiveShadow": "Receive Shadow",
259259
"lbl-interactable": "Interactable",
260260
"lbl-generateBVH": "Generate BVH",
261+
"lbl-avoidCameraOcclusion": "Avoid Camera Occlusion",
261262
"lbl-matrixAutoUpdate": "MatrixAutoUpdate",
262263
"lbl-name": "Name",
263264
"lbl-url": "Model Url",

packages/client-core/src/admin/adminRoutes.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { t } from 'i18next'
22
import React, { lazy, Suspense, useEffect } from 'react'
3-
import { Navigate, Route, Routes } from 'react-router-dom'
3+
import { Navigate, Route, Routes, useLocation } from 'react-router-dom'
44

55
import { Engine } from '@etherealengine/engine/src/ecs/classes/Engine'
66
import { EngineActions } from '@etherealengine/engine/src/ecs/classes/EngineState'
@@ -21,7 +21,8 @@ const AdminSystemInjection = {
2121
systemLoader: () => Promise.resolve({ default: AdminSystem })
2222
} as const
2323

24-
const ProtectedRoutes = () => {
24+
const AdminRoutes = () => {
25+
const location = useLocation()
2526
const admin = useAuthState().user
2627

2728
let allowedRoutes = {
@@ -45,7 +46,8 @@ const ProtectedRoutes = () => {
4546
const scopes = admin?.scopes?.value || []
4647

4748
useEffect(() => {
48-
initSystems(Engine.instance.currentWorld, [AdminSystemInjection]).then(async () => {
49+
initSystems([AdminSystemInjection]).then(async () => {
50+
// @ts-ignore
4951
dispatchAction(EngineActions.initializeEngine({ initialised: true }))
5052
})
5153
}, [])
@@ -67,7 +69,7 @@ const ProtectedRoutes = () => {
6769

6870
return (
6971
<Dashboard>
70-
<Suspense fallback={<LoadingCircle message={t('common:loader.loadingAdmin')} />}>
72+
<Suspense fallback={<LoadingCircle message={`Loading ${location.pathname.split('/')[2]}...`} />}>
7173
<Routes>
7274
<Route path="/*" element={<$allowed allowedRoutes={allowedRoutes} />} />
7375
{<Route path="/" element={<Analytics />} />}
@@ -77,4 +79,4 @@ const ProtectedRoutes = () => {
7779
)
7880
}
7981

80-
export default ProtectedRoutes
82+
export default AdminRoutes

packages/client-core/src/admin/components/Avatars/index.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { useTranslation } from 'react-i18next'
44
import ConfirmDialog from '@etherealengine/client-core/src/common/components/ConfirmDialog'
55
import { AvatarClientModule } from '@etherealengine/engine/src/avatar/AvatarClientModule'
66
import { AvatarCommonModule } from '@etherealengine/engine/src/avatar/AvatarCommonModule'
7-
import { Engine } from '@etherealengine/engine/src/ecs/classes/Engine'
87
import { initSystems, unloadSystems } from '@etherealengine/engine/src/ecs/functions/SystemFunctions'
8+
import { RendererModule } from '@etherealengine/engine/src/renderer/RendererModule'
99
import { SceneClientModule } from '@etherealengine/engine/src/scene/SceneClientModule'
1010
import { SceneCommonModule } from '@etherealengine/engine/src/scene/SceneCommonModule'
1111
import { TransformModule } from '@etherealengine/engine/src/transform/TransformModule'
@@ -31,17 +31,15 @@ const Avatar = () => {
3131
useEffect(() => {
3232
const systems = [
3333
...TransformModule(),
34+
...RendererModule(),
3435
...SceneCommonModule(),
3536
...SceneClientModule(),
3637
...AvatarCommonModule(),
3738
...AvatarClientModule()
3839
]
39-
initSystems(Engine.instance.currentWorld, systems)
40+
initSystems(systems)
4041
return () => {
41-
unloadSystems(
42-
Engine.instance.currentWorld,
43-
systems.map((s) => s.uuid)
44-
)
42+
unloadSystems(systems.map((s) => s.uuid))
4543
}
4644
}, [])
4745

packages/client-core/src/admin/components/Project/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const Projects = () => {
4242
} as const
4343

4444
useEffect(() => {
45-
initSystems(Engine.instance.currentWorld, [ProjectUpdateSystemInjection])
45+
initSystems([ProjectUpdateSystemInjection])
4646
ProjectService.checkReloadStatus()
4747
}, [])
4848

packages/client-core/src/admin/services/ActiveRouteService.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ActiveRoutesInterface } from '@etherealengine/common/src/interfaces/Route'
22
import { matches, Validator } from '@etherealengine/engine/src/common/functions/MatchesUtils'
3-
import { defineAction, defineState, dispatchAction, getState, useState } from '@etherealengine/hyperflux'
3+
import { defineAction, defineState, dispatchAction, getMutableState, useState } from '@etherealengine/hyperflux'
44

55
import { API } from '../../API'
66
import { NotificationService } from '../../common/services/NotificationService'
@@ -24,15 +24,15 @@ const AdminActiveRouteState = defineState({
2424
})
2525

2626
const activeRoutesRetrievedReceptor = (action: typeof AdminActiveRouteActions.activeRoutesRetrieved.matches._TYPE) => {
27-
const state = getState(AdminActiveRouteState)
27+
const state = getMutableState(AdminActiveRouteState)
2828
return state.merge({ activeRoutes: action.data, total: action.data.length, updateNeeded: false })
2929
}
3030

3131
export const AdminActiveRouteReceptors = {
3232
activeRoutesRetrievedReceptor
3333
}
3434

35-
export const accessAdminActiveRouteState = () => getState(AdminActiveRouteState)
35+
export const accessAdminActiveRouteState = () => getMutableState(AdminActiveRouteState)
3636

3737
export const useAdminActiveRouteState = () => useState(accessAdminActiveRouteState())
3838

0 commit comments

Comments
 (0)