using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public interface ISaveLoad
{
    // Returns the name the class gives to the data. This name should be unique to the class
    // instance and should not be held by other classes implementing this inteface to avoid save collisions.
    string GetDataName();

    // Classes that implement this function should save their data in file with a path
    // that incorporates the save name. If an error is encountered during the save process
    // this function should return a string about the error. Otherwise it returns a null / empty string.
    string Save(string saveName);

    // Classes that implement this function should load their data from file with a path
    // that incorporates the save name. If an error is encountered during the load process
    // this function should return a string about the error. Otherwise it returns a null / empty string.
    string Load(string saveName);

    // Resets the class to a default state. Used when the player starts a new game.
    // If an error is encountered during the reset process
    // this function should return a string about the error. Otherwise it returns a null / empty string.
    string Reset();
}
