Add event/trigger and bounds getter

This commit is contained in:
Ketchetwahmeegwun T. Southall 2022-01-30 03:23:01 -08:00
parent 16caafa366
commit 18eacb7b34

View File

@ -3,11 +3,27 @@ import { SegmentZone } from '../data/segment'
export class Zone { export class Zone {
fixture: planck.Fixture|undefined fixture: planck.Fixture|undefined
type: 'solid'|'fluid' type: 'solid'|'fluid'|'trigger'
points: [number, number][] points: [number, number][]
event: string = ''
constructor(z: SegmentZone) { constructor(z: SegmentZone) {
this.type = z.type this.type = z.type
this.points = z.points.map(v=>[v[0], v[1]]) this.points = z.points.map(v=>[v[0], v[1]])
this.event = z.event
}
get bounds(): [number, number, number, number] {
let xs = this.points.map(v=>v[0])
let ys = this.points.map(v=>v[1])
let minX = Math.min(...xs)
let minY = Math.min(...ys)
let maxX = Math.max(...xs)
let maxY = Math.max(...ys)
return [
minX,
minY,
maxX-minX,
maxY-maxY,
]
} }
} }