hero-mark-2/objects/environment/turniwood/turning_platform.gd

42 lines
1.1 KiB
GDScript

extends Node2D
onready var anims = $AnimationPlayer
onready var flip_timer = $FlipTimer
onready var delay_timer = $DelayTimer
onready var collision_shape = $StaticBody2D/CollisionShape2D
export var time:float = 60
export var delay = 0.0
export(int, "Wood", "Yellow") var color
onready var time_ms = time * 0.0166666666666667 # Time is converted from frames @ 60fps to ms
func _ready():
#Auto start if delay variable is zero
if delay == 0.0:
anims.play("idle")
flip_timer.start(time_ms)
else:
delay_timer.start(delay)
func _on_AnimationPlayer_animation_finished(anim_name):
#Return to idle after turn animation
if anim_name == "turn":
anims.play("idle")
flip_timer.start(time_ms)
func _on_FlipTimer_timeout():
anims.play("turn")
func _on_DelayTimer_timeout():
anims.play("idle")
flip_timer.start(time_ms)
func _on_DetectPlayer_area_entered(area):
if area.is_in_group("player"):
Debug.print("player in")
collision_shape.set_deferred("one_way_collision", true)
func _on_DetectPlayer_area_exited(area):
if area.is_in_group("player"):
Debug.print("player out")
collision_shape.set_deferred("one_way_collision", false)