tool extends Sprite export var liquid_body_color:Color setget _set_liquid_body_color export var liquid_surface_color:Color setget _set_liquid_surface_color func _set_liquid_body_color(c): liquid_body_color = c material.set_shader_param("liquid_color_main", c) func _set_liquid_surface_color(c): liquid_surface_color = c material.set_shader_param("liquid_color_surface", c) $Splash.process_material.color = c func _ready(): material.set_shader_param("sprite_scale", scale) #$Splash.process_material.color = material.get_shader_param("liquid_color_surface") if scale.x != 0 and scale.y != 0: $Splash.scale = Vector2(1/scale.x, 1/scale.y) set_process(true) func _process(delta): pass func _on_Trigger_body_entered(body): if scale.x != 0: var bpos = body.get_global_transform().origin var spos = get_global_transform().origin var delta = bpos.x - spos.x $Splash.position.x = (delta * (1/scale.x)) $Splash.emitting = true $Audio.play() if (body.has_method("set_colors")): body.set_colors( material.get_shader_param("liquid_color_main"), material.get_shader_param("liquid_color_surface") )