39 lines
1.0 KiB
GDScript
39 lines
1.0 KiB
GDScript
class_name LevelMagec
|
|
extends Node3D
|
|
|
|
@export var level_scene: PackedScene
|
|
@export var widget_scene: PackedScene
|
|
@export var level_parent: Node3D
|
|
@export var widget_parent: Node3D
|
|
@export var camera: Camera3D
|
|
|
|
@export var transition: float :
|
|
get():
|
|
return transition
|
|
set(value):
|
|
transition = value
|
|
$CanvasLayer/TextureRect2.modulate = Color(1, 1, 1, 1.0 - value)
|
|
|
|
|
|
var wireframe: WireFrame
|
|
var level_config: LevelConfig = load("res://Levels/Level2/specs.tres")
|
|
|
|
|
|
func _ready() -> void:
|
|
create_widget(null)
|
|
camera.make_current()
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
if Input.is_action_just_pressed("Interact"):
|
|
$AnimationPlayer.play("level_select_camera")
|
|
|
|
|
|
func create_widget(mesh: Mesh) -> void:
|
|
wireframe = widget_scene.instantiate() as WireFrame
|
|
widget_parent.add_child(wireframe)
|
|
var flow_field_data: FlowFieldData = FlowFieldTool.load_flow_field_from_disc(level_config.zone.flow_field_data_path)
|
|
for node: FlowNodeData in flow_field_data.nodes:
|
|
if level_config.points_blocked.has(node.node_id):
|
|
wireframe.spawn_blocker(node.position)
|