private void CreateEquipmentItem(EquipmentItemData equipmentData)
    {
        EquipmentItem itemAsset = ScriptableObject.CreateInstance <EquipmentItem>();
        string        itemSlug  = ConvertToSlug(equipmentData.itemName);

        // Configure new scriptable object
        itemAsset.itemName        = equipmentData.itemName;
        itemAsset.itemSlug        = itemSlug;
        itemAsset.itemDescription = equipmentData.itemDescription;
        itemAsset.itemValue       = equipmentData.itemValue;
        itemAsset.itemType        = equipmentData.itemType;
        itemAsset.rarityType      = equipmentData.rarityType;
        itemAsset.itemIcon        = equipmentData.itemIcon;

        // Save new asset.
        string formattedName = equipmentData.itemName;

        if (equipmentData.itemName.Contains(" "))
        {
            formattedName = equipmentData.itemName.Replace(' ', '_');
        }

        string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath($"{assetStoragePath}/Item{formattedName}.asset");

        AssetDatabase.CreateAsset(itemAsset, assetPathAndName);
        AddNewItemToDatabase <EquipmentItem>(itemAsset);
        AssetDatabase.Refresh();
        Selection.activeObject = itemAsset;
    }
    private void ShowEquipmentItemEditor()
    {
        rootVisualElement.Clear();

        var visualTree = Resources.Load <VisualTreeAsset>(equipmentItemTreePath);

        visualTree.CloneTree(rootVisualElement);

        // Setup equipment item editor screen
        Button       createItemButton = rootVisualElement.Q(name: "base-item-data-create-button") as Button;
        TextField    itemNameField    = rootVisualElement.Q(name: "item-data-name") as TextField;
        IntegerField itemValueField   = rootVisualElement.Q(name: "item-data-value") as IntegerField;
        TextField    itemDescField    = rootVisualElement.Q(name: "item-data-desc") as TextField;

        EnumField itemTypeField = rootVisualElement.Q(name: "item-data-type") as EnumField;

        itemTypeField.Init(workingItemType);

        EnumField itemRarityField = rootVisualElement.Q(name: "item-data-rarity") as EnumField;

        itemRarityField.Init(RarityType.Common);

        ObjectField itemIconField = rootVisualElement.Q(name: "item-data-icon") as ObjectField;

        itemIconField.objectType = typeof(Sprite); // Set the object fields type.

        if (createItemButton != null)
        {
            createItemButton.clickable.clicked += () =>
            {
                EquipmentItemData itemData = new EquipmentItemData(itemNameField.value, itemDescField.value, itemValueField.value, workingItemType, (RarityType)itemRarityField.value, (Sprite)itemIconField.value);
                CreateEquipmentItem(itemData);
            };
        }
    }
Example #3
0
 public void Init(EquipmentItemData item)
 {
     GetComponent<Image> ().sprite = Resources.Load<Sprite> ("Texture/Item/"+item.info.id);
     equipment = item;
 }
Example #4
0
    public int imageNumber;             // 0에서 시작

    /// <summary>
    /// 데이터를 복사한다.
    /// </summary>
    /// <param name="data">복사할 데이터</param>
    public void CopyData(EquipmentItemData data)
    {
        name        = data.name;
        type        = data.type;
        imageNumber = data.imageNumber;
    }
Example #5
0
 public void EquipItem(EquipmentItemData item, EquipPart part)
 {
     if (item.info.category != Character.ItemPartMap [part]) {
         throw new System.Exception("can not equip " + item.info.name + " on " + part.ToString() + ", not proper item part");
     }
     item.part = part;
     equipments [(int)part] = item;
 }