@benev/nubs
Version:
user-input system for web games
32 lines (24 loc) • 827 B
text/typescript
import {property} from "lit/decorators.js"
import {MagicElement, mixinCss} from "@chasemoskal/magical"
import {hiddenCss} from "../../framework/styles/hidden.css.js"
import {setup_pointer_move_listening} from "./utils/setup_pointer_move_listening.js"
import {setup_pointer_button_listening} from "./utils/setup_pointer_button_listening.js"
(hiddenCss)
export class NubPointer extends MagicElement {
({type: String, reflect: true})
cause: string = "Pointer"
#listenPointerMove = setup_pointer_move_listening({
listenTo: window,
dispatchTo: this,
getCause: () => this.cause,
})
#listenPointerButton = setup_pointer_button_listening({
listenTo: window,
dispatchTo: this,
})
realize() {
const {use} = this
use.setup(this.#listenPointerMove)
use.setup(this.#listenPointerButton)
}
}