From 7d7541a7c01b3540d52cdd819502f9c9d22c7fba Mon Sep 17 00:00:00 2001 From: Luna Date: Sun, 18 Feb 2018 17:05:44 -0500 Subject: [PATCH] Reset view and AI when spawning --- scripts/ai.gd | 14 ++++++++++++-- scripts/player.gd | 5 +++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/ai.gd b/scripts/ai.gd index ad6ae10..2b54a34 100644 --- a/scripts/ai.gd +++ b/scripts/ai.gd @@ -6,6 +6,7 @@ var set_spawn = true func _ready(): if is_network_master(): + get_node("..").connect("spawn", self, "read_recording") read_recording() set_spawn = true time = 0 @@ -14,14 +15,18 @@ func _ready(): func _physics_process(delta): if is_network_master(): if set_spawn: - get_node("..").set_translation(str2var(recording.spawn)) - get_node("..").switch_charge = str2var(recording.switch_charge) + set_spawn() set_spawn = false play_keys() # It's actually better to do this 2nd # Since input is, on average, called 1/2way through a frame time += delta +func set_spawn(): + get_node("..").set_translation(str2var(recording.spawn)) + print(recording.switch_charge) + get_node("..").switch_charge = str2var(recording.switch_charge) + func read_recording(): # Gather all existing recordings @@ -43,12 +48,16 @@ func read_recording(): # Now pick a random one var fname = possible[randi() % possible.size()] + print("Reading recording: " + fname) + # Read the file into recording.events for later use var frec = File.new() frec.open(path + fname, File.READ) recording = parse_json(frec.get_as_text()) frec.close() + set_spawn() + func apply_dict(from, to): if typeof(from) != TYPE_DICTIONARY: return from @@ -80,3 +89,4 @@ func play_keys(): Input.parse_input_event(event) #._input(event) #get_node("TPCamera")._input(event) + diff --git a/scripts/player.gd b/scripts/player.gd index 338962e..a06d144 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -37,6 +37,8 @@ var enemy_color = Color("#f04273") # Red var ai_instanced = false +signal spawn + func _ready(): set_process_input(true) @@ -53,6 +55,7 @@ func _ready(): remove_child(get_node(master_only)) sync func spawn(): + emit_signal("spawn") if "record" in player_info: write_recording() # Write each spawn as a separate recording var placement = Vector3() @@ -72,6 +75,8 @@ sync func spawn(): set_transform(Basis()) set_translation(placement) set_linear_velocity(Vector3()) + get_node(tp_camera).cam_yaw = 0 + get_node(tp_camera).cam_pitch = 0 func event_to_obj(event): var d = {}