Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ir 1652 interactable input refactor #10219

Merged
merged 52 commits into from
May 22, 2024
Merged

Conversation

SamMazerIR
Copy link
Contributor

Summary

code suggestions and file location fixes for merged branch from PR:
#10212

SamMazerIR and others added 30 commits May 14, 2024 13:18
…ponent, ElementList and ComponentEditors for InputComponent, wip MountPointComponent updates for input, InputSinkComponent, InputComponent collision group for raycasting
…n index out of range initialization on the saved options in the jsx
TODO - set collider type based on child entities or whether there is a mesh
updates to inputcomponent node editor
removing stray console.log
… per a todo from last month)

adding logic to find InputComponent in ancestors from ClientInputSystem heuristic results (raycast or capturingEntity)
TODO - delete lots of WIP comment notes in InputComponent
…etMergedButtons) in AvatarInputSystem and AvatarCameraInputSystem
…realEngine/etherealengine into IR-1652-interactable-input-refactor

# Conflicts:
#	packages/client-core/src/systems/AvatarUISystem.tsx
# Conflicts:
#	packages/editor/src/functions/ComponentEditors.tsx
#	packages/spatial/src/input/systems/ClientInputSystem.tsx
#	packages/spatial/src/physics/components/ColliderComponent.tsx
#	packages/spatial/src/physics/systems/PhysicsSystem.ts
… for dynamically instantiated InputComponents without InputSink values)
@@ -291,7 +285,7 @@ const execute = () => {
let closestDistanceSquared = Infinity

//use sourceEid if controller (one InputSource per controller), otherwise use avatar rather than InputSource-emulated-pointer
const selfAvatarEntity = AvatarComponent.getSelfAvatarEntity()
const selfAvatarEntity = UUIDComponent.getEntityByUUID((Engine.instance.userID + '_avatar') as EntityUUID) //would prefer a better way to do this
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For a future reference, one strategy (which I think @HexaField suggested at some point), would be to inject these heuristics from higher level packages, so perhaps the world (currently engine) package injects the additional proximity heuristic.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would love to learn more, not sure from the description what that would look like

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does this system care about the avatar? what is the early scape in the for loop doing?

Copy link
Member

@speigg speigg May 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because one of the heuristics for focusing non-spatial input sources on entities that can receive input is some notion of proximity to those entities (esp when not pointing w/ the mouse cursor)

@HexaField HexaField merged commit b3d7013 into dev May 22, 2024
13 checks passed
@HexaField HexaField deleted the IR-1652-interactable-input-refactor branch May 22, 2024 21:54
MbfloydIR added a commit that referenced this pull request May 24, 2024
* dev: (63 commits)
  hotfix vrm0 data not being where we expect it (#10236)
  Update tween.js version (#10241)
  Added ProjectPermissionDatabaseType
  physics bug fix (#10221)
  updated the background to use the color with when in wireframe render mode (#10231)
  vrm expressionmanager was being thrown away it is actually needed for viseme support to work (#10230)
  IR-1887-Asset-Preview-breaking-if-you-click-gltf-that-is-in-the-scene (#10208)
  query function fix (#10229)
  IR-2102 Material/Plugin Parameters (#10180)
  Fixed webcam light not turning off when camera paused. (#10224)
  Made client's server.js not bound to a specific host (#10223)
  Update FeathersHooks.tsx (#10228)
  Updated app name
  feat(setup): update logo and components props (#10204)
  Changes for feature flag schema to be string enum (#10225)
  Cleaned location hooks (#10216)
  Ir 1652 interactable input refactor (#10219)
  IR-2018 Refactor the Select component to disable search functionality for the dropdown only (#10206)
  refactor: Update Primus initialization to include pathname in server URL (#10205)
  Move physics enter/exit back to reactors (#10193)
  ...

# Conflicts:
#	packages/editor/src/components/element/ElementList.tsx
#	packages/editor/src/components/properties/PostProcessingSettingsEditor.tsx
#	packages/engine/src/scene/SceneModule.ts
#	packages/spatial/src/renderer/components/PostProcessingComponent.tsx
#	packages/spatial/src/renderer/functions/configureEffectComposer.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants