Added ConnectionCable
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
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
|
||||
Reference in New Issue
Block a user