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); }
/// <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); }
/// <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); }