27 lines
853 B
GDScript
27 lines
853 B
GDScript
class_name Faucet2D
|
|
extends Fluid2D
|
|
|
|
@export var interval := 0.06
|
|
@export var max_particles: int = 1000
|
|
@export var width: int = 4
|
|
@export var height: int = 2
|
|
|
|
var points_new: PackedVector2Array
|
|
var velocities_new: PackedVector2Array
|
|
|
|
|
|
func _ready():
|
|
points_new = create_rectangle_points(width, height)
|
|
velocities_new.resize(points_new.size())
|
|
var gravity_value = ProjectSettings.get("physics/2d/default_gravity")
|
|
var gravity_dir = ProjectSettings.get("physics/2d/default_gravity_vector")
|
|
var dir = global_transform.basis_xform(gravity_dir * gravity_value)
|
|
velocities_new.fill(dir)
|
|
get_tree().create_timer(interval).timeout.connect(_on_timer_timeout)
|
|
|
|
|
|
func _on_timer_timeout():
|
|
get_tree().create_timer(interval).timeout.connect(_on_timer_timeout)
|
|
if len(points) > max_particles:
|
|
return
|
|
add_points_and_velocities(points_new, velocities_new)
|