/// <summary> /// Get a new copy of an item based on the factory template. This is necessary so items can be deleted without deleting the entire item from the database /// </summary> /// <param name="resourceName"></param> /// <returns></returns> public Item GetNewResource(string resourceName, ItemQuality usedItemQuality = null) { //Debug.Log(this.GetType().Name + ".GetNewResource(" + resourceName + ")"); if (!SystemDataFactory.RequestIsEmpty(resourceName)) { string keyName = SystemDataFactory.PrepareStringForMatch(resourceName); Item itemTemplate = systemDataFactory.GetResource <Item>(keyName); if (itemTemplate != null) { Item returnValue = ScriptableObject.Instantiate(itemTemplate) as Item; returnValue.SetupScriptableObjects(systemGameManager); returnValue.InitializeNewItem(usedItemQuality); return(returnValue); } } return(null); }
public TDataType GetResource <TDataType>(string resourceName) where TDataType : ResourceProfile { //Debug.Log(this.GetType().Name + ".GetResource(" + resourceName + ")"); if (!SystemDataFactory.RequestIsEmpty(resourceName)) { string keyName = SystemDataFactory.PrepareStringForMatch(resourceName); /* * foreach (string dictKeyName in factoryData.Keys) { * Debug.Log("count: " + factoryData.Count + "; " + dictKeyName); * } */ if (factoryData.ContainsKey(keyName)) { return(factoryData[keyName] as TDataType); } } return(default(TDataType)); }