From 18eacb7b3436cbf133ee97ad3dd0a1f1f6e55aa8 Mon Sep 17 00:00:00 2001 From: kts of kettek Date: Sun, 30 Jan 2022 03:23:01 -0800 Subject: [PATCH] Add event/trigger and bounds getter --- Engine/src/live/Zone.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Engine/src/live/Zone.ts b/Engine/src/live/Zone.ts index 2da4a7b..e74e778 100644 --- a/Engine/src/live/Zone.ts +++ b/Engine/src/live/Zone.ts @@ -3,11 +3,27 @@ import { SegmentZone } from '../data/segment' export class Zone { fixture: planck.Fixture|undefined - type: 'solid'|'fluid' + type: 'solid'|'fluid'|'trigger' points: [number, number][] + event: string = '' constructor(z: SegmentZone) { this.type = z.type 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, + ] } }