extends "res://scripts/player.gd"
var _oldpos = Vector3(0, -200, 0)
var _oldpos_fine = Vector3(0, -200, 0)
func _ready():
_oldpos = translation
_oldpos.y = 0
_oldpos_fine = translation
_oldpos_fine.y = 0
var apclient = global.get_node("Archipelago")
if apclient.track_player:
var tracking_timer = Timer.new()
tracking_timer.name = "TrackingTimer"
tracking_timer.wait_time = 5.0
add_child(tracking_timer)
tracking_timer.connect("timeout", self, "_tick_tracking")
tracking_timer.start()
var tracking_timer_fine = Timer.new()
tracking_timer_fine.name = "TrackingTimerFine"
tracking_timer_fine.wait_time = 0.5
add_child(tracking_timer_fine)
tracking_timer_fine.connect("timeout", self, "_tick_tracking_fine")
tracking_timer_fine.start()
func _tick_tracking():
var tracker = get_tree().get_root().get_node("Spatial/AP_Tracker")
if tracker.has_connection():
return
var newpos = translation
newpos.y = 0
if newpos != _oldpos && newpos.distance_to(_oldpos) > 10:
_oldpos = newpos
var apclient = global.get_node("Archipelago")
apclient.setValue("PlayerPos", {"x": int(_oldpos.x), "z": int(_oldpos.z)})
func _tick_tracking_fine():
var tracker = get_tree().get_root().get_node("Spatial/AP_Tracker")
if !tracker.has_connection():
return
var newpos = translation
newpos.y = 0
if newpos != _oldpos_fine && newpos.distance_to(_oldpos_fine) > 0.5:
_oldpos_fine = newpos
tracker.update_position(int(_oldpos_fine.x), int(_oldpos_fine.z))
func _solving():
._solving()
var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
effects_node.enter_solve_mode()
func _solvingEnd():
._solvingEnd()
var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
effects_node.exit_solve_mode()
func _unhandled_input(event):
if event is InputEventKey:
if event.pressed and event.scancode == KEY_P:
var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
effects_node.skip_puzzle()