Add event/trigger and bounds getter
This commit is contained in:
parent
16caafa366
commit
18eacb7b34
|
@ -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,
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user