catCannon/src/Views/PredictedObjectView.ts
2021-01-12 21:52:52 -06:00

46 lines
1.4 KiB
TypeScript

import IPredictedObject from "../Interfaces/IPredictedObject"
class PredictedObjectView {
private xOrigin: number
private yOrigin: number
private width: number
private height: number
private class: string
public element: HTMLElement
constructor (props: IPredictedObject) {
this.xOrigin = props.xOrigin
this.yOrigin = props.yOrigin
this.width = props.width
this.height = props.height
this.class = props.class
this.element = this.createElement()
}
createElement (): HTMLElement {
let predictedObjectElement: HTMLElement = document.createElement('div')
predictedObjectElement.style.position = 'absolute'
predictedObjectElement.style.left = `${this.xOrigin}px`
predictedObjectElement.style.top = `${this.yOrigin}px`
predictedObjectElement.style.width = `${this.width}px`
predictedObjectElement.style.height = `${this.height}px`
predictedObjectElement.setAttribute('class', `PredictedObject ${this.class}`)
const predictedObjectLabel = this.createLabel()
predictedObjectElement.appendChild(predictedObjectLabel)
return predictedObjectElement
}
createLabel (): HTMLLabelElement {
const labelElement = document.createElement('label')
labelElement.setAttribute('class', 'predictedObjectLabel')
labelElement.innerText = this.class
return labelElement
}
}
export default PredictedObjectView