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) } } }