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