summaryrefslogtreecommitdiff
path: root/src/engine/vector2.js
blob: 2bd52f7a888a376bec3d3a626d7c24622131bd44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
export class Vector2 {
    constructor(x, y) {
        this.x = x
        this.y = y
    }

    static sum(vector_a, vector_b) {
        return new Vector2(
            vector_a.x + vector_b.x,
            vector_a.y + vector_b.y,
        )
    }

    static equals(vector_a, vector_b) {
        if (
            vector_a.x == vector_b.x &&
            vector_a.y == vector_b.y
        ) {
            return true
        }

        return false
    }


    static removeIfInArray(value, array) {
        return array.filter(x => !Vector2.equals(value, x))
    }
    
    static isInArray(position, array) {
        return Array.from(array)
            .some(p => Vector2.equals(p, position))
    }
    
    static pushIfNotInArray(position, array) {
        if (!Vector2.isInArray(position, array)) {
            array.push(position)
        }
    }
}