Scriptum/Assets/Scripts/REFACTORING/Models/Item/EquippableItem/EquippableItemPrefabAsset.cs
2022-11-07 23:06:06 +01:00

56 lines
1.7 KiB
C#

using UnityEditor;
using UnityEngine;
[System.Serializable]
public class EquippableItemPrefabAsset : PrefabAssetModel
{
[SerializeField]
public EquippableItem EquippableItem = null;
public EquippableItemPrefabAsset() { }
public EquippableItemPrefabAsset(string _name, string _prefabAssetName, Vector3 _position, EquippableItem _equippableItem = null)
: base(_name, _prefabAssetName, _position)
{
EquippableItem = _equippableItem;
}
/// <summary>
///
/// </summary>
/// <param name="_name"></param>
/// <param name="_prefabAssetName"></param>
/// <param name="_position"></param>
/// <param name="_equippableItemName">the name by which the system will search for the item</param>
public EquippableItemPrefabAsset(string _name, string _prefabAssetName, Vector3 _position, string _equippableItemName)
: base(_name, _prefabAssetName, _position)
{
// TODO during build product process, objects are not found - refactor this
string[] assetNames = AssetDatabase.FindAssets("t:EquippableItem", new[] { "Assets/Items/" });
foreach (string SOName in assetNames)
{
var SoPath = AssetDatabase.GUIDToAssetPath(SOName);
if(SoPath.Contains(_equippableItemName + ".asset"))
{
// 3.2 set EquippableItem object
EquippableItem = AssetDatabase.LoadAssetAtPath<EquippableItem>(SoPath);
break;
}
}
}
/// <summary>
/// Function to convert Prefab Asset model to data object
/// </summary>
/// <returns></returns>
public EquippableItemPrefabAssetData MapPrefabAssetModelToData()
{
return new EquippableItemPrefabAssetData(this);
}
}