Show / Hide Table of Contents

Class CraftingComponent

Inheritance
System.Object
WorldObjectComponent
CraftingComponent
Implements
ILinkable
IOwned
IController
IViewController
IHasUniversalID
IHasSerializableID
IRPCAuthChecks
IThreadSafeSubscriptions
ISubscriptions<ThreadSafeSubscriptions>
ISubscriptions
IHasInteractions
IOperatingWorldObjectComponent
System.ComponentModel.INotifyPropertyChanged
IHasEnvVars
Inherited Members
WorldObjectComponent.IsRPCAuthorized(IWorldObserver, AccessType, Object[])
WorldObjectComponent.PostInitialize()
WorldObjectComponent.OnCreate()
WorldObjectComponent.LateTick()
WorldObjectComponent.OnPickup(Player)
WorldObjectComponent.OnBeforeObjectMoved()
WorldObjectComponent.OnAfterObjectMoved()
WorldObjectComponent.OnLinkClicked(TooltipOrigin, TooltipClickContext, User)
WorldObjectComponent.UILinkContent()
WorldObjectComponent.Parent
WorldObjectComponent.Name
WorldObjectComponent.IconName
WorldObjectComponent.ForceActiveTab
WorldObjectComponent.ComponentPrefabName
WorldObjectComponent.ComponentTabName
WorldObjectComponent.Enabled
WorldObjectComponent.IsDestroyed
WorldObjectComponent.ShouldRequestEverything
WorldObjectComponent.Owners
WorldObjectComponent.ControllerID
WorldObjectComponent.IOwned.Deed
WorldObjectComponent.Subscriptions
WorldObjectComponent.PropertyChanged
Namespace: Eco.Gameplay.Components
Assembly: Eco.Gameplay.dll
Syntax
[RequireComponent]
[RequireComponent]
[RequireComponent]
public class CraftingComponent : WorldObjectComponent, ILinkable, IOwned, IController, IViewController, IHasUniversalID, IHasSerializableID, IRPCAuthChecks, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IHasInteractions, IOperatingWorldObjectComponent, INotifyPropertyChanged, IHasEnvVars

Constructors

CraftingComponent()

Declaration
public CraftingComponent()

Fields

ActiveWorkOrder

Declaration
public WorkOrder ActiveWorkOrder
Field Value
Type Description
WorkOrder

OnActiveWorkOrderChanged

Declaration
public ThreadSafeAction OnActiveWorkOrderChanged
Field Value
Type Description
ThreadSafeAction

WorldObjectToSkillsUsed

Declaration
public static Dictionary<Type, HashSet<Type>> WorldObjectToSkillsUsed
Field Value
Type Description
System.Collections.Generic.Dictionary<System.Type, System.Collections.Generic.HashSet<System.Type>>

Properties

AllRecipes

Declaration
public static IEnumerable<RecipeFamily> AllRecipes { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<RecipeFamily>

Availability

Declaration
public override WorldObjectComponentClientAvailability Availability { get; }
Property Value
Type Description
WorldObjectComponentClientAvailability
Overrides
WorldObjectComponent.Availability

BottleNecked

Declaration
public bool BottleNecked { get; }
Property Value
Type Description
System.Boolean

CurrentUnfinishedWorkOrder

Declaration
public WorkOrder CurrentUnfinishedWorkOrder { get; }
Property Value
Type Description
WorkOrder

CurrentWorkOrder

Declaration
public WorkOrder CurrentWorkOrder { get; }
Property Value
Type Description
WorkOrder

DecayDescription

Declaration
public virtual LocString DecayDescription { get; }
Property Value
Type Description
LocString

DefaultDurabilityReduction

Declaration
public float DefaultDurabilityReduction { get; }
Property Value
Type Description
System.Single

LaborReservationModule

Declaration
public PluginModule LaborReservationModule { get; }
Property Value
Type Description
PluginModule

Link

Declaration
public LinkComponent Link { get; set; }
Property Value
Type Description
LinkComponent

LinkedInventoryContentChangeEvent

Declaration
public ThreadSafeAction LinkedInventoryContentChangeEvent { get; }
Property Value
Type Description
ThreadSafeAction

Operating

Declaration
public bool Operating { get; }
Property Value
Type Description
System.Boolean

OverrideMaxQueuedOrders

Declaration
public Nullable<int> OverrideMaxQueuedOrders { get; set; }
Property Value
Type Description
System.Nullable<System.Int32>

Recipes

Declaration
public IEnumerable<RecipeFamily> Recipes { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<RecipeFamily>

ResourceEfficiencyModule

Declaration
public PluginModule ResourceEfficiencyModule { get; }
Property Value
Type Description
PluginModule

SpeedEfficiencyModule

Declaration
public PluginModule SpeedEfficiencyModule { get; }
Property Value
Type Description
PluginModule

TimeLeft

Declaration
public double TimeLeft { get; }
Property Value
Type Description
System.Double

TotalCraftTime

Declaration
public ImmutableCountdown TotalCraftTime { get; }
Property Value
Type Description
ImmutableCountdown

ValidTalents

Declaration
public IEnumerable<string> ValidTalents { get; set; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<System.String>

WorkOrders

Declaration
public ControllerList<WorkOrder> WorkOrders { get; }
Property Value
Type Description
ControllerList<WorkOrder>

Methods

Add100Labor(Player, InteractionTriggerInfo, InteractionTarget)

Declaration
[Interaction]
public void Add100Labor(Player player, InteractionTriggerInfo trigger, InteractionTarget target)
Parameters
Type Name Description
Player player
InteractionTriggerInfo trigger
InteractionTarget target

AddAllLabor(Player, InteractionTriggerInfo, InteractionTarget)

Declaration
[Interaction]
public void AddAllLabor(Player player, InteractionTriggerInfo trigger, InteractionTarget target)
Parameters
Type Name Description
Player player
InteractionTriggerInfo trigger
InteractionTarget target

AddRecipe(Type, RecipeFamily)

Declaration
public static void AddRecipe(Type tableType, RecipeFamily recipeFamily)
Parameters
Type Name Description
System.Type tableType
RecipeFamily recipeFamily

AddTagProduct(Type, Type, Recipe)

Declaration
public static void AddTagProduct(Type tableType, Type recipeType, Recipe product)
Parameters
Type Name Description
System.Type tableType
System.Type recipeType
Recipe product

AddWorkOrderToBench(Player, WorkOrder, BankAccount)

Declaration
public bool AddWorkOrderToBench(Player player, WorkOrder workOrder, BankAccount account)
Parameters
Type Name Description
Player player
WorkOrder workOrder
BankAccount account
Returns
Type Description
System.Boolean

AddWorkOrderToBench(User, WorkOrder, BankAccount)

Declaration
public Result AddWorkOrderToBench(User user, WorkOrder workOrder, BankAccount account)
Parameters
Type Name Description
User user
WorkOrder workOrder
BankAccount account
Returns
Type Description
Result

CancelPendingWorkOrder(Player)

Declaration
public void CancelPendingWorkOrder(Player player)
Parameters
Type Name Description
Player player

CancelWorkOrder(Player, WorkOrder)

Declaration
public Task CancelWorkOrder(Player player, WorkOrder workOrder)
Parameters
Type Name Description
Player player
WorkOrder workOrder
Returns
Type Description
System.Threading.Tasks.Task

ContributeSelectedItem(Player, InteractionTriggerInfo, InteractionTarget)

Contributes carried or selected item to the workorder

Declaration
[Interaction]
public void ContributeSelectedItem(Player player, InteractionTriggerInfo trigger, InteractionTarget target)
Parameters
Type Name Description
Player player
InteractionTriggerInfo trigger
InteractionTarget target

CreateWorkOrder(Player, Recipe, Int32, BankAccount)

Declaration
public Task<bool> CreateWorkOrder(Player player, Recipe recipe, int quantity, BankAccount account)
Parameters
Type Name Description
Player player
Recipe recipe
System.Int32 quantity
BankAccount account
Returns
Type Description
System.Threading.Tasks.Task<System.Boolean>

CreateWorkOrderResult(User, Recipe, Int32, BankAccount)

Declaration
public Result CreateWorkOrderResult(User user, Recipe recipe, int quantity, BankAccount account)
Parameters
Type Name Description
User user
Recipe recipe
System.Int32 quantity
BankAccount account
Returns
Type Description
Result

CreateWorkOrderResult(User, RecipeFamily, Int32, BankAccount, Boolean)

Declaration
public Result CreateWorkOrderResult(User currentUser, RecipeFamily recipeFamily, int quantity, BankAccount bankAccount, bool automatic)
Parameters
Type Name Description
User currentUser
RecipeFamily recipeFamily
System.Int32 quantity
BankAccount bankAccount
System.Boolean automatic
Returns
Type Description
Result

Destroy()

Declaration
public override void Destroy()
Overrides
WorldObjectComponent.Destroy()

EvictPickup(User, Inventory)

Declaration
public void EvictPickup(User user, Inventory inv)
Parameters
Type Name Description
User user
Inventory inv

GetConnectedInventories(User, Boolean, Boolean)

gets all valid inventories we can take/put items

Declaration
public InventoryCollection GetConnectedInventories(User user, bool input, bool output)
Parameters
Type Name Description
User user
System.Boolean input

require take ability from inventories

System.Boolean output

require put ability from inventories

Returns
Type Description
InventoryCollection

GetValidTalents()

Declaration
public void GetValidTalents()

GetWorkOrder(Guid)

Declaration
public WorkOrder GetWorkOrder(Guid guid)
Parameters
Type Name Description
System.Guid guid
Returns
Type Description
WorkOrder

Initialize()

Declaration
public override void Initialize()
Overrides
WorldObjectComponent.Initialize()

ProcessWorkOrders()

Declaration
public WorkOrder ProcessWorkOrders()
Returns
Type Description
WorkOrder

RecipesForItem(Type)

Declaration
public static IEnumerable<RecipeFamily> RecipesForItem(Type itemType)
Parameters
Type Name Description
System.Type itemType
Returns
Type Description
System.Collections.Generic.IEnumerable<RecipeFamily>

RecipesOnWorldObject(Type)

Declaration
public static IEnumerable<RecipeFamily> RecipesOnWorldObject(Type worldObjectType)
Parameters
Type Name Description
System.Type worldObjectType
Returns
Type Description
System.Collections.Generic.IEnumerable<RecipeFamily>

ReducePartDurabilityPerHourOfUse(WorkOrder)

Determines how fast durability reduces, based on work order. By default, looks for a recipe durability override then locks to a default of 30

Declaration
public virtual double ReducePartDurabilityPerHourOfUse(WorkOrder order)
Parameters
Type Name Description
WorkOrder order
Returns
Type Description
System.Double

ReorderWorkOrders(Player, List<WorkOrder>)

Declaration
public void ReorderWorkOrders(Player player, List<WorkOrder> sortedWorkOrders)
Parameters
Type Name Description
Player player
System.Collections.Generic.List<WorkOrder> sortedWorkOrders

SortRecipes()

Declaration
public static void SortRecipes()

TablesForRecipe(Type)

Declaration
public static IEnumerable<Type> TablesForRecipe(Type recipeType)
Parameters
Type Name Description
System.Type recipeType
Returns
Type Description
System.Collections.Generic.IEnumerable<System.Type>

Tick()

Declaration
public override void Tick()
Overrides
WorldObjectComponent.Tick()

TryPickup(Player, InventoryChangeSet, Inventory, Boolean)

Declaration
public override InventoryMoveResult TryPickup(Player player, InventoryChangeSet playerInvChanges, Inventory targetInventory, bool force)
Parameters
Type Name Description
Player player
InventoryChangeSet playerInvChanges
Inventory targetInventory
System.Boolean force
Returns
Type Description
InventoryMoveResult
Overrides
WorldObjectComponent.TryPickup(Player, InventoryChangeSet, Inventory, Boolean)

WorkOrderNeedsLabor(User)

Declaration
[EnvVar]
public string WorkOrderNeedsLabor(User user)
Parameters
Type Name Description
User user
Returns
Type Description
System.String

WorkOrderNeedsSelectedItems(User)

Declaration
[EnvVar]
public string WorkOrderNeedsSelectedItems(User user)
Parameters
Type Name Description
User user
Returns
Type Description
System.String

Implements

ILinkable
IOwned
IController
IViewController
IHasUniversalID
IHasSerializableID
IRPCAuthChecks
IThreadSafeSubscriptions
ISubscriptions<TSubscriptionsList>
ISubscriptions
IHasInteractions
IOperatingWorldObjectComponent
System.ComponentModel.INotifyPropertyChanged
IHasEnvVars

Extension Methods

TagUtils.TagNames(Object, Boolean)
TagUtils.TagDisplayNames(Object, Boolean)
ClientSetViewExtensions.SetClassOfProperty(Object, Player, String, String, Int32)
TypeTooltipExtensions.UILinkGeneric(Object)
CraftingComponentTooltipLibrary.TooltipWorkOrders(CraftingComponent)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾