示例#1
0
    public void SaveLoadItem()
    {
        Item testItem = new Hammer();

        SaveData.ItemSaveData savedItem = PlayerData.instance.data.ItemToSerializable(testItem);
        Item restoredItem = PlayerData.instance.data.SerializableToItem(savedItem);

        Assert.IsInstanceOf <Hammer>(restoredItem);
        Assert.AreEqual(testItem.Name, restoredItem.Name);
        Assert.AreEqual(testItem.Desc, restoredItem.Desc);
    }
示例#2
0
    /// <summary>
    /// Takes a <see cref="Item"/> and converts it to a <see cref="SaveData.ItemSaveData"/> format for serialization.
    /// </summary>
    /// <param name="item"> <see cref="Item"/> instance to serialize.</param>
    /// <returns> Serializable <see cref="SaveData.ItemSaveData"/> for saving.</returns>
    public SaveData.ItemSaveData ItemToSerializable(Item item)
    {
        if (item != null)
        {
            SaveData.ItemSaveData itemToSave = new SaveData.ItemSaveData
            {
                typeOfItem = item.GetType().FullName,
                name       = item.Name,
                desc       = item.Desc
            };

            return(itemToSave);
        }
        return(null);
    }
示例#3
0
    /// <summary>
    /// Takes a <see cref="SaveData.ItemSaveData"/> and converts it to an <see cref="Item"/> for use in game.
    /// </summary>
    /// <param name="serializedItem">The serilaizable <see cref="SaveData.ItemSaveData"/> item. </param>
    /// <returns> Real <see cref="Item"/> instance, or null if passed null. </returns>
    public Item SerializableToItem(SaveData.ItemSaveData serializedItem)
    {
        if (serializedItem != null)
        {
            Type type       = Type.GetType(serializedItem.typeOfItem);
            Item itemToLoad = (Item)Activator.CreateInstance(type);
            itemToLoad.Desc = serializedItem.desc;
            itemToLoad.Name = serializedItem.name;

            Debug.Log(itemToLoad.GetType().ToString());
            Debug.Log(itemToLoad.Desc);
            Debug.Log(itemToLoad.Name);

            return(itemToLoad);
        }
        return(null);
    }