Files
CultManor/game/objects/interactive/connection_cable.gd
T
2026-06-15 22:54:03 +03:00

32 lines
803 B
GDScript

class_name ConnectionCable
extends Line2D
const SHADER_GLOW_INTERVAL = "glow_interval"
const SHADER_GLOW_RADIUS = "glow_radius"
const SHADER_TRAVEL_TIME = "travel_time"
const TRAVEL_SPEED = 100.0
const GLOW_INTERVAL = 100.0
func _ready() -> void:
var length := _get_length()
var glow_interval := 1.0 / maxi(1, round(length/GLOW_INTERVAL))
var glow_radius := 0.5/length
var travel_time := length/TRAVEL_SPEED
material.set_shader_parameter(SHADER_GLOW_INTERVAL, glow_interval)
material.set_shader_parameter(SHADER_GLOW_RADIUS, glow_radius)
material.set_shader_parameter(SHADER_TRAVEL_TIME, travel_time)
func _get_length() -> float:
if points.size() < 2:
return 0.0
var length := 0.0
for i in range(points.size() - 1):
length += points[i].distance_to(points[i + 1])
return length