I-HATE-THE-FUCKING-HORSE-GAME/addons/godot-rapier2d/fluid_2d_renderer.gd
2025-07-23 17:01:02 -06:00

31 lines
881 B
GDScript

@tool
class_name Fluid2DRenderer
extends MultiMeshInstance2D
@export var fluid: Fluid2D
@export var color: Color = Color(0.8, 0.8, 0.8, 0.3)
@export var mesh_scale: Vector2 = Vector2(5, 5)
func _ready():
if multimesh == null:
multimesh = MultiMesh.new()
multimesh.mesh = load("res://addons/godot-rapier2d/circle_mesh.tres").duplicate()
multimesh.use_colors = true
if texture == null:
texture = load("res://addons/godot-rapier2d/Radial2D.svg")
func _process(_delta):
if fluid == null:
return
global_transform = fluid.global_transform
var index = 0
multimesh.instance_count = fluid.points.size()
var points = fluid.points
for i in points.size():
var point = points[i]
var new_transform: Transform2D = Transform2D(0, mesh_scale, 0, point)
multimesh.set_instance_transform_2d(index, new_transform)
multimesh.set_instance_color(index, color)
index += 1