Ejemplo n.º 1
0
    private void CreateFoodItem(FoodItemData foodData)
    {
        FoodItem itemAsset = ScriptableObject.CreateInstance <FoodItem>();
        string   itemSlug  = ConvertToSlug(foodData.itemName);

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

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

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

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

        AssetDatabase.CreateAsset(itemAsset, assetPathAndName);
        AddNewItemToDatabase <FoodItem>(itemAsset);
        AssetDatabase.Refresh();
        Selection.activeObject = itemAsset;
    }
Ejemplo n.º 2
0
    private void ShowFoodItemEditor()
    {
        rootVisualElement.Clear();

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

        visualTree.CloneTree(rootVisualElement);

        // Setup food 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 += () =>
            {
                FoodItemData itemData = new FoodItemData(itemNameField.value, itemDescField.value, itemValueField.value, workingItemType, (RarityType)itemRarityField.value, (Sprite)itemIconField.value);
                CreateFoodItem(itemData);
            };
        }
    }