Flow Field in Godot

Probably nothing new, but it was what I spent all day figuring out.

Here's the code:

extends Node2D

class_name Flow_Field_e6_02

onready var viewport_size = get_viewport().get_visible_rect().size

var field

var cols

var rows

export var resolution = 32

func _ready():

`cols = viewport_size.x/resolution`

`rows = viewport_size.y/resolution`

`field =[]`

`for i in range(cols):`

    `var f = PoolVector2Array([])`

    `for j in range(rows):`

        `var v = Vector2(i*resolution, j*resolution).direction_to(viewport_size/2)`

        `f.append(v)`

    `field.append(f)`

`print(field[0][0])`

func _process(delta):

`for i in range(cols):`

    `for j in range(rows):`

        `field[i][j] = Vector2(i*resolution, j*resolution).direction_to(get_global_mouse_position())`

`update()`

func _draw():

`var r = resolution/2-1`

`for i in range(cols):`

    `for j in range(rows):`

        `var v0 =` [`Vector2.ZERO`](https://Vector2.ZERO) `+ Vector2(i*resolution, j*resolution) + Vector2(resolution/2,resolution/2)`

        `var v1 = v0 - (field[i][j] * r)`

        `var v3 = v0 + (field[i][j] * r)`

        `var v2 = v0 + (Vector2(field[i][j].y, -field[i][j].x) *r/2)`

        `var v4 = v0 - (Vector2(field[i][j].y, -field[i][j].x) *r/2)`

        `draw_line(v1, v3, Color(1,1,1,0.5))`

        `draw_colored_polygon(PoolVector2Array([v2, v3, v4]),Color(1,1,1,0.5))`
/r/godot Thread Link - v.redd.it