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
|
||||
@@ -0,0 +1 @@
|
||||
uid://c1r1ny6xdedil
|
||||
@@ -0,0 +1,10 @@
|
||||
[gd_scene format=3 uid="uid://dq3080605jqta"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c1r1ny6xdedil" path="res://game/objects/interactive/connection_cable.gd" id="1_43n88"]
|
||||
[ext_resource type="Material" uid="uid://dbcb2x1xbq37g" path="res://game/materials/connection_cable.tres" id="1_k2dc5"]
|
||||
|
||||
[node name="ConnectionCable" type="Line2D" unique_id=1234500644]
|
||||
material = ExtResource("1_k2dc5")
|
||||
width = 2.0
|
||||
texture_mode = 2
|
||||
script = ExtResource("1_43n88")
|
||||
Reference in New Issue
Block a user