23 lines
884 B
JavaScript
23 lines
884 B
JavaScript
|
|
AFRAME.registerComponent('bind-element-to-finger', {
|
||
|
|
multiple: true,
|
||
|
|
schema: {
|
||
|
|
hand: {type: 'string', default: 'r_handMeshNode'},
|
||
|
|
finger: {type: 'string', default: 'index-finger-tip'},
|
||
|
|
target : {type: 'selector'},
|
||
|
|
},
|
||
|
|
tick: function (time, timeDelta) {
|
||
|
|
const joint = AFRAME.scenes[0].object3D.getObjectByName(this.data.hand)?.parent.getObjectByName(this.data.finger)
|
||
|
|
if ( joint && this.data.target.object3D.parent == AFRAME.scenes[0].object3D ) this.data.target.object3D.parent = joint
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
window.keyboardTarget = typinghud
|
||
|
|
let kbd = addDrumKeyboard()
|
||
|
|
kbd.addEventListener( "keypressed", e => {
|
||
|
|
document.querySelector("[isoterminal]").components.isoterminal.term.send(e.detail.key)
|
||
|
|
// consider executing the content on ENTER
|
||
|
|
// document.querySelector("[isoterminal]").components.isoterminal.term.exec("ls")
|
||
|
|
// raw keypress, this getting SHFT, ENT, etc
|
||
|
|
})
|
||
|
|
|