Craftsman
🛠️ Craftsman Class
A merchant that crafts items.
Namespace:
Esper.Inventool.MerchantsAccess:publicType:classInherits:Merchant
📦 Fields
public
craftTargets
CraftTargets
The types of items this craftsman can craft.
public
supportedItemTypes
List<ItemType>
A list of item types this craftsman can craft.
public
supportedItems
List<Item>
A list of specific items this craftsman can craft.
🧰 Methods
public
CanCraft(Crafter crafter, bool invokeFailureReason)
bool
Checks if the item can be crafted by this craftsman.
public
TryCraft(Crafter crafter, bool applyCost = true)
bool
Attempts to craft an item. Returns true if successful.
public
Craft(Crafter crafter, bool applyCost = true)
void
Crafts an item directly.
public
Clean()
void
Cleans the object by removing deleted items and item types.
public
Save() (Editor only)
void
Saves the object.
🧩 Nested Types
public enum CraftTargets
public enum CraftTargetsDefines what this craftsman can craft.
Everything
Can craft any item.
SpecificItemTypes
Can only craft items of the item types listed in supportedItemTypes.
SpecificItems
Can only craft items listed in supportedItems.
Creating Craftsmen
It's not recommended to create craftsmen at runtime, but it is possible. Craftsman is a scriptable object which cannot be created as an asset at runtime for later use.
Craftsman myCraftsman = ScriptableObject.CreateInstance<Craftsman>();Crafting
A Craftsman requires a reference to a Crafter to help craft items.
You can check if it's possible to craft an item with the CanCraft method. The first parameter is the Crafter and the second is a bool that determines if the failure reason should be invoked. This method will return true if the item in the Crafter can be crafted by the Craftsman and if the Crafter's CanCraft method returns true. Otherwise, false will be returned.
bool result = myCraftsman.CanCraft(myCrafter, true);To officially craft an item, use the TryCraft method. This is similar to the CanCraft method, except it will add the item to the player's inventory if successful.
bool result = myCraftsman.TryCraft(myCrafter);Last updated