complete project reorganization
This commit is contained in:
42
scenes/lift/lift.gd
Normal file
42
scenes/lift/lift.gd
Normal file
@@ -0,0 +1,42 @@
|
||||
extends Node3D
|
||||
|
||||
var lift_already_used : bool = false
|
||||
|
||||
@export var end_location : Vector3 = Vector3.ZERO
|
||||
@export var lift_time : float = 1.0
|
||||
|
||||
@onready var button: MeshInstance3D = $Cylinder_001
|
||||
|
||||
var player : CharacterBody3D
|
||||
|
||||
func finished_climbing() -> void:
|
||||
player.SetAllowedInputsAll()
|
||||
|
||||
func start_climbing() -> void:
|
||||
var player_start_location = player.global_position
|
||||
var height_difference = end_location - global_position
|
||||
|
||||
var elevator_tween = get_tree().create_tween()
|
||||
elevator_tween.set_parallel(true)
|
||||
elevator_tween.set_ease(Tween.EASE_IN_OUT)
|
||||
elevator_tween.set_trans(Tween.TRANS_CUBIC)
|
||||
elevator_tween.tween_property(self, "global_position", end_location, lift_time)
|
||||
elevator_tween.tween_property(player, "global_position", player_start_location + height_difference, lift_time)
|
||||
elevator_tween.tween_callback(finished_climbing)
|
||||
|
||||
|
||||
func _on_area_3d_body_entered(body: Node3D) -> void:
|
||||
if lift_already_used:
|
||||
return
|
||||
|
||||
if is_instance_of(body, CharacterBody3D):
|
||||
player = body
|
||||
player.SetAllowedInputsMoveCamera()
|
||||
|
||||
lift_already_used = true
|
||||
|
||||
var button_tween = get_tree().create_tween()
|
||||
var button_final_pos = button.global_position + Vector3.DOWN * 0.35
|
||||
button_tween.tween_property(button, "global_position", button_final_pos, 0.3)
|
||||
button_tween.tween_callback(start_climbing)
|
||||
|
||||
Reference in New Issue
Block a user