// Start is called before the first frame update void Start() { tc = GetComponent <TimePoint_Corrector>(); tm_jump_effect = GetComponent <Time_Jump_Effect>(); for (int i = 0; i < 9; i++) { time_point_list.Add(new Time_Point()); } time_point_list.Add(new Time_Point()); // 9 Past (0) time_point_list.Add(new Time_Point()); // 10 Future (furthest point forward) foreach (var obj_type in object_type_list) { GameObject[] object_array = GameObject.FindGameObjectsWithTag(obj_type.tag); foreach (var obj in object_array) { moveable_object_spawn_transforms.Add(obj.transform); Object_Spawns new_spawn = new Object_Spawns(); new_spawn.position = obj.transform.position; new_spawn.obj = obj_type.obj; moveable_object_spawns.Add(new_spawn); } } GameObject[] doors = GameObject.FindGameObjectsWithTag("Door"); foreach (var door in doors) { door_list.Add(door.GetComponentInChildren <Door_Activation>()); door.GetComponentInChildren <Visible_Check>().Add_Camera(player_cam); } foreach (var obj in dupe_objs) { obj.vis = obj.obj.GetComponentInChildren <Visible_Check>(); obj.vis.Add_Camera(player_cam); } current_time = 0.0f; //Add_To_Buffer(hidden_start_pos, player_look_pivot.localRotation, current_time); List <Door_Data> door_data_list = new List <Door_Data>(); List <Object_Type> obj_array = new List <Object_Type>(); Add_To_Buffer(hidden_start_pos, player_look_pivot.localRotation, door_data_list.ToArray(), obj_array.ToArray(), current_time, false, is_grabbing); Log_Current_Timestamp(); // To set the initial jump timestamp for the first dupe to be skipped Add_To_Buffer(hidden_start_pos, player_look_pivot.localRotation, door_data_list.ToArray(), obj_array.ToArray(), current_time, false, is_grabbing); Add_To_Buffer(hidden_start_pos, player_look_pivot.localRotation, door_data_list.ToArray(), obj_array.ToArray(), current_time, false, is_grabbing); Add_To_Buffer(hidden_start_pos, player_look_pivot.localRotation, door_data_list.ToArray(), obj_array.ToArray(), current_time, false, is_grabbing); }
void Save_Global_Time_Point() { Time_Point temp_point = new Time_Point(); temp_point.timestamp = current_time; temp_point.timestamp_index = timeline_memory.Count; temp_point.normalized_timestamp = current_time - (iteration_delay * (iteration_num - 1)); temp_point.dupe_timestamp_indexes.Clear(); temp_point.dupe_timestamp_indexes.Add(temp_point.timestamp_index); foreach (var dupe_player in duplicate_player_list) { temp_point.dupe_timestamp_indexes.Add(dupe_player.timestamp); //jump_time_point.dupe_held_objects.Add() } // Objects temp_point.object_locations.Clear(); foreach (var obj_type in object_type_list) { GameObject[] object_array = GameObject.FindGameObjectsWithTag(obj_type.tag); foreach (var obj in object_array) { if (obj.GetComponent <Pickup_Loop>().is_picked_up == false) { temp_point.object_location_transforms.Add(obj.transform); Object_Spawns new_spawn = new Object_Spawns(); new_spawn.position = obj.transform.position; new_spawn.obj = obj_type.obj; temp_point.object_locations.Add(new_spawn); } } } // Doors temp_point.door_data_states.Clear(); foreach (var door_activation in door_list) { Door_Data input_door = new Door_Data(); input_door.door_activation = door_activation; input_door.door_obj = door_activation.gameObject; input_door.last_state = door_activation.is_open; temp_point.door_data_states.Add(input_door); } time_point_global_list.Add(temp_point); }
void Log_Object_Positions(int i_index) { time_point_list[i_index].object_locations.Clear(); foreach (var obj_type in object_type_list) { GameObject[] object_array = GameObject.FindGameObjectsWithTag(obj_type.tag); foreach (var obj in object_array) { if (obj.GetComponent <Pickup_Loop>().is_picked_up == false) { time_point_list[i_index].object_location_transforms.Add(obj.transform); Object_Spawns new_spawn = new Object_Spawns(); new_spawn.position = obj.transform.position; new_spawn.obj = obj_type.obj; time_point_list[i_index].object_locations.Add(new_spawn); } } } }