Beispiel #1
0
 //recreate simple objects state
 private void Recreate(List <string> list, RecreateType recreateType)
 {
     foreach (var item in list)
     {
         RecreateObjectState(item, 0, recreateType);
     }
 }
Beispiel #2
0
    public void SaveState <T>(string name, T value, RecreateType recreateType, string sceneName = "")
    {
        var state = GetState(sceneName);

        switch (recreateType)
        {
        case RecreateType.Object:

            if (!state.IsExistInBool(name))
            {
                state.ObjectsState.Add(name);
            }
            break;

        case RecreateType.Dialogue:

            state.DialogueIsComplete.Add(name);

            break;

        case RecreateType.Task:

            state.Tasks.Add(name);

            break;

        case RecreateType.ChestItem:

            state.ChestItems.Add((string)(object)value, name);

            break;

        case RecreateType.Position:

            name = ClearName(name);

            if (!state.IsExistInPosition(name))
            {
                state.ObjectsPosition.Add(name, (ObjectPosition)(object)value);
            }
            else
            {
                state.ObjectsPosition[name] = (ObjectPosition)(object)value;
            }

            break;

        case RecreateType.Camera:
            state.Camera.Add(name);
            break;
        }
    }
Beispiel #3
0
 //recreate complex objects state
 private void Recreate <T>(Dictionary <string, T> list, RecreateType recreateType)
 {
     if (recreateType == RecreateType.Position)
     {
         foreach (var item in list)
         {
             RecreateObjectState(item.Key, item.Value, recreateType);
         }
     }
     else if (recreateType == RecreateType.ChestItem)
     {
         foreach (var item in list)
         {
             RecreateObjectState((string)(object)item.Value, item.Key, recreateType);
         }
     }
 }
Beispiel #4
0
    //general recriation
    private void RecreateObjectState <T>(string objectToFind, T value, RecreateType recreateType)
    {
        var searchGameObjectResult = GameObject.Find(objectToFind);

        if (searchGameObjectResult != null)
        {
            switch (recreateType)
            {
            case RecreateType.Object:
                Destroy(searchGameObjectResult);
                break;

            case RecreateType.Dialogue:
                searchGameObjectResult.GetComponent <DialogueTrigger>().dialogue.IsDialogueFinished = true;
                break;

            case RecreateType.Task:
                if (searchGameObjectResult.GetComponent <TaskManager>() != null)
                {
                    searchGameObjectResult.GetComponent <TaskManager>().DestroyObject();
                }
                break;

            case RecreateType.Position:
                var position = (ObjectPosition)(object)value;
                searchGameObjectResult.transform.position = new Vector2(position.x, position.y);
                break;

            case RecreateType.ChestItem:
                searchGameObjectResult.GetComponent <Chest>().RemoveFromChest((string)(object)value);
                break;

            case RecreateType.Camera:
                searchGameObjectResult.GetComponent <DoorButton>().SetCameraState(false);
                break;
            }
        }
    }