Exemplo n.º 1
0
    // 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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
                }
            }
        }
    }